如何在ocaml lambda中实现自由变量检查功能

问题描述 投票:-1回答:1

我想在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")为假。

ocaml
1个回答
1
投票

该任务似乎是一项家庭作业,因此不太可能获得解决方案的答案。

一些提示:

  • 考虑您的函数应该具有哪种类型
  • 您的函数需要在exp上进行模式匹配,因此请考虑如何处理每个变体,即Lambda,App,Var。
  • 考虑自由变量的定义,以帮助您处理上述提示中的情况

您还可以在本主题的进一步阅读中引用本杰明·皮尔斯的书类型和编程语言。

© www.soinside.com 2019 - 2024. All rights reserved.