ReaderT Env Maybe Val (3)
真的該睡了... 不過 liftIO 差不多試完了 @@"
大概有實際例子之後,試兩下就能抓到感覺了。
我想 liftIO 的感覺大概就是把 IO a 丟到 mt 裡面?
類似 return, 只是不是吃 a, 而是吃 IO a ?
eval 的 type 改成:
eval :: Expr -> ReaderT Env (ErrorT String IO) Val
全文。
下一步是加入 StateT, 至於用什麼 state, 隨便塞個數字就好。
==
btw, IO monad 好像抽不出來 XD
像是 Maybe 可以用 fromJust 抽,
可沒有 fromIO ... 使得最後的:
test = [test0, test1, test2, test3, test4, test5]
變得毫無意義,因為抽不出來 :(
就算把裡面的值依序印出來好了,由於 lazy 特性,也無效.. XD
不知道要用什麼方法強迫 haskell 去計算?
0 retries:
Post a Comment
Note: Only a member of this blog may post a comment.