Wadler的论文:一个元组如何成为一个函数?

时间:2014-09-19 22:35:26

标签: haskell

在阅读Wadler的原始论文Monads for Functional Programming(1992)时,我感觉好像我已经得到了它,但是,在非monadic描述中状态处理程序,他显示了状态的原始monadic描述:

type M a = State -> (a, State)
eval :: Term -> M Int
eval (Con a) x = (a, x)

它再次停止了。我怎么读这个?据我所知,这表示eval接受一个int和一个状态并返回一个接受状态并返回一对新函数的函数(Int,State)

但是......(a,x),如果我读这个权利是一个值和状态的元组,是-a "获取状态并返回新对(Int,State)"?

的函数

1 个答案:

答案 0 :(得分:14)

展开类型同义词:Term -> M Int相当于Term -> State -> (Int, State)

或者,将函数定义视为eval (Con a) = \x -> (a, x)