What have you found for these years?

2009-12-31

ReaderT Env Maybe Val (0)

大抵上來說順利,不過現在卡關了,想不到好辦法 :(
問題在於 lambda abstraction 的部份...

eval lambda 出來,目前是寫成 Cls (Val -> Val)
然而這樣做使得 application 時,一定會有結果,
因為我等於是把 application 做到 Cls 裡面了 @@
變成只能這樣寫:

return (Cls (\arg ->
fromJust $ runReaderT (eval expr) ((name, arg) : env)))

那個 fromJust 抽不出來 :/

或許要修正這邊,得修改 data model 的方式...

==
說是到這裡順利,其實一堆都是亂試才試出來的。
也罷,練熟悉度也好。至少我現在寫得比之前快很多 @@
就像數字有敏感度問題,大概 haskell 也有吧。
畢竟 monad 真的把很多東西都隱藏起來了...

0 retries:

Post a Comment

All texts are licensed under CC Attribution 3.0