我正在阅读 Chris Okasaki 的纯函数式数据结构,我遇到了一个问题。它位于这里。特别是,我不明白rotate
andexec
函数是如何工作的:
fun rotate($Nil, y::_, a) = $Cons (y, a)
| rotate ($Cons (x, xs), y :: ys, a) =
$Cons(x, rotate (xs, ys, $Cons (y, a)))
fun exec (f, r, $Cons (X, s)) = (f, r, s)
| exec (f, r, $Nil) = let val f' = rotate (f, r, $Nil) in (f', [], f') end
有人可以用愚蠢的人的话来形容吗?我仍在学习基于 ML 的语言。:-)