2014-12-27 2 views
1

티타늄 API의 일부를 PureScripts 외부 함수 인터페이스로 랩핑하려하지만 함수의 유형 정의가 무엇인지 알아 내려고 노력하고 있습니다.Purescript 생성자 함수의 FFI 유형 정의

module Ti where 

    foreign import data Window :: * 

    foreign import window 
    """ function (config) { 
     return function() { 
     return Ti.UI.createWindow(config); 
     } 
    } """ :: ??? -> Window 

    foreign import open 
    """ function (window) { 
     return function() { 
     window.open(); 
     return window; 
     } 
    } """ :: Window -> Window 

    main = do 
     w <- window ??? 
     open w 
+0

'config'로'import'를 호출하여 함수를 만들지 않는 한, 인자가없는 함수를 반환하는 이유를 모르겠습니다. 아니면 부작용이 있습니까? – elclanrs

+0

@elclanrs 하나의 인수로 함수를 반환하고 싶었지만, 그 인수의 형식이 무엇인지 확실하지 않았습니다. 나는 필 프리맨 즈 (Phil Freemans)의 대답을 pursescript-options을 사용하여 실험 할 것입니다. –

답변

2

당신은 적절한 옵션 개체를 구성하는 purescript-options 라이브러리와 함께 인수 유형으로 purescript-foreign 라이브러리에서 Foreign 유형을 사용하는 것이 좋습니다.

purescript-options 라이브러리 here에 대한 간단한 안내서를 작성했으며 프로젝트 저장소에 다른 예가 있습니다.