GHCJS:如何使用FFI导入高阶javascript函数?

GHCJS:如何使用FFI导入高阶javascript函数?,javascript,haskell,reactive-extensions-js,rxjs,ghcjs,Javascript,Haskell,Reactive Extensions Js,Rxjs,Ghcjs,如何在GHCJS中导入如下Javascript函数 xs.subscribe(function(x) { console.log(x) }) 我尝试了以下各种组合,但没有成功: data Observable_ data Disposable_ type Observable a = JSRef Observable_ type Disposable = JSRef () foreign import javascript unsafe "$1.subscribe($2)" rx_su

如何在GHCJS中导入如下Javascript函数

xs.subscribe(function(x) { console.log(x) })
我尝试了以下各种组合,但没有成功:

data Observable_
data Disposable_

type Observable a = JSRef Observable_
type Disposable = JSRef ()

foreign import javascript unsafe "$1.subscribe($2)"
  rx_subscribe :: Observable a -> JSRef (a -> IO()) -> IO Disposable
欢迎提供任何帮助,并链接到GHCJS FFI的文档


谢谢

感谢GHCJS IRC频道的家伙们,我得到了答案:

foreign import javascript safe "$1.subscribe($2)"
  rx_subscribe :: Observable a -> JSFun (a -> IO()) -> IO Disposable

subscribe :: FromJSRef a => (a -> IO()) -> Observable a -> IO Disposable
subscribe f xs = syncCallback1 True True f' >>= rx_subscribe xs
                 where f' x = fromJSRef x >>= f . fromJust

谢谢你

你读了吗?我读了,但我还没有找到一个例子,说明如何导入一个以Haskell lambda为参数的javascript函数,并将其转换为如上所述的javascript函数。这是一个著名的代码库吗?