问题描述
我尝试翻译此OCaml代码
type bool_expr =
| Var of string
| Not of bool_expr
| And of bool_expr * bool_expr
| Or of bool_expr * bool_expr;
let rec eval val_vars = function
| Var x -> List.assoc x val_vars
| Not e -> not(eval val_vars e)
| And(e1,e2) -> eval val_vars e1 && eval val_vars e2
| Or(e1,e2) -> eval val_vars e1 || eval val_vars e2
这就是我所做的
datatype bool_expr = Var of string
| Not of bool_expr
| And of bool_expr * bool_expr
| Or of bool_expr * bool_expr;
And(Or(Var "a",Var "b"),And(Var "a",Var "b"));
val rec eval vars =
fn Var x => List.assoc x vars
| Not e => not(eval vars e)
| And(e1,e2) => eval vars e1 andalso eval vars e2
| Or(e1,e2) => eval vars e1 orelse eval vars e2
我在这行上遇到有关vars的错误:'val rec eval vars =',我不知道SML中'List.assoc'的等效内容。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)