2
我刚开始学习关于PureScript效果的知识,并且我试图制作一个具有EXCEPTION效果的函数。如何使用EXCEPTION效果从PureScript函数返回值?
lengthGt5 :: forall eff. String -> Eff (err :: EXCEPTION | eff) String
lengthGt5 a = if (length a <= 5)
then throwException $ error "Word is not the right length!"
else a
main = do
word <- catchException handleShortWord (lengthGt5 "test")
log word
where
handleShortWord err = do
log (message err)
return "Defaut::casserole"
当我尝试和运行此我得到以下错误
无法比拟型
String
with type
Eff
(err :: EXCEPTION
| eff0
)
String
我明白lengthGt5需要返回包裹在一个Eff为在非字符串异常的情况下,但我不知道如何创建一个值为a
的“空效果包装”。我在想这个权利吗?
注意'pure'是代替'return'现在HTTPS使用: //github.com/purescript/purescript/wiki/Differences-from-Haskell#return –