我正在使用Om,我没有完全理解以下表达式:
(.. e -target -checked)
Run Code Online (Sandbox Code Playgroud)
这里,"e"是一个javascript事件,如果我理解的话,"-target -checked"是一种访问属性的方法.但是一开始的两个点怎么样?
我正在玩Purescript中的Reader monad,我遇到了一个奇怪的行为.我不知道是不是因为我对这个monad缺乏理解,或者我错过了其他的东西.
这是我的代码:
type Level = Number
type Doc = Reader Level String
renderLine :: String -> Level -> String
renderLine s 0 = s
renderLine s l = "\t" ++ (renderLine s (l - 1))
line :: String -> Doc
line s = do
level <- ask
return (renderLine s level)
Run Code Online (Sandbox Code Playgroud)
这没关系,会编译.不过,在此之前我在我的功能行中尝试了一些更简单的方法:
line :: String -> Doc
line s = do
level <- ask
return "Hello Reader monad"
Run Code Online (Sandbox Code Playgroud)
尽管(renderLine s level)和"Hello Reader monad"具有相同的类型,但它不会编译.它会抛出这个错误:"找不到Control.Monad.Reader.Class.MonadReader u14555(Control.Monad.Reader.Trans.ReaderT Prim.Number Control.Monad.Identity.Identity)的实例"
我确定我错过了什么,但我不知道是什么.