我想在lambda中进行免费的变量检查功能。
lambda experience is
type exp =
Var of var
| Lambda of var * exp
| App of exp * exp
and var = string
在检查功能中,如果包含自由变量,则返回false,否则返回true。
例如,Lambda ("x", Var "x")
为真,Lambda ("y", Var "x")
为假。
该任务似乎是一项家庭作业,因此不太可能获得解决方案的答案。
一些提示:
exp
上进行模式匹配,因此请考虑如何处理每个变体,即Lambda,App,Var。您还可以在本主题的进一步阅读中引用本杰明·皮尔斯的书类型和编程语言。