【发布时间】:2015-10-02 13:54:33
【问题描述】:
让我们想象一个 Brainf*ck 的虚拟子集:
+ 递增计数器
- 递减计数器
一个简单的程序:
program = "++++--" -- should evaluate to 2
还有一个有状态的评估函数:
eval :: Char -> State Int Char
eval '+' = do x <- get
put (x + 1)
return 'I'
eval '-' = do x <- get
put (x - 1)
return 'D'
您如何评价该计划?
(在我看来像fold,但我无法理解它,而且感觉这不是正确的方法......)
【问题讨论】:
标签: haskell state-monad