評估布林表示式
我們定義布林表示式的型別,其原子由字串標識為
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)
瞭解該功能如何清晰易讀。由於正確使用模式匹配,讀取此功能的程式設計師只需要很少的時間來確保正確實現。