OCaml 布尔表达式的求值

示例

我们定义布尔表达式的类型,其原子由字符串标识为

type expr =

| Atom of string

| Not of expr

| And of expr * expr

| Or of expr * expr

并可以通过oracle : string -> bool给出原子的值来评估这些表达式,如下所示:

let rec eval oracle = function

| Atom(name) -> oracle name

| Not(expr) -> not(eval oracle expr)

| And(expr1, expr2) -> (eval oracle expr1) && (eval oracle expr2)

| Or(expr1, expr2)  -> (eval oracle expr1) || (eval oracle expr2)

了解该功能如何清晰易读。由于正确使用了模式匹配,因此读取此功能的程序员只需很少的时间即可确保其正确实现。

以上是 OCaml 布尔表达式的求值 的全部内容, 来源链接: utcz.com/z/315760.html

回到顶部