小编gam*_*ing的帖子

Haskell 将递归步骤保存到列表中

我正在研究 Haskell lambda 演算解释器。我有一种方法可以将表达减少到正常形式。

type Var = String

data Term =
    Variable Var
  | Lambda   Var  Term
  | Apply    Term Term
  deriving Show

normal :: Term -> Term
normal (Variable index)      = Variable index
normal (Lambda var body)       = Lambda var (normal body)
normal (Apply left right) = case normal left of
    Lambda var body  -> normal (substitute var (normal right) body)
    otherwise -> Apply (normal left) (normal right)
Run Code Online (Sandbox Code Playgroud)

如何将所采取的步骤保存到集合中?

我的正常函数输出这个: \a. \b. a (a (a (a b))) 我的目标是让所有步骤如下:

(\f. …
Run Code Online (Sandbox Code Playgroud)

haskell lambda-calculus

3
推荐指数
1
解决办法
171
查看次数

标签 统计

haskell ×1

lambda-calculus ×1