有人可以帮助我将此功能转换为sml吗?

问题描述

我尝试翻译此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 (将#修改为@)