【发布时间】:2020-07-09 23:17:25
【问题描述】:
我是 SML 的新手,并试图围绕函数式编程进行思考。我想要一个函数,它接受一个树 t 和一个字符 c,如果树包含该字符,则返回 true 或 false。
我要实现的算法是:
如果叶子为空返回false,
否则,如果字符在叶子中,则返回 true,
返回左树结果或右树结果
这是我的树数据类型
datatype 'a tree =
Leaf of 'a
| Node of 'a tree * 'a * 'a tree;
这就是函数
fun containsChar (Leaf t, c: char) = false
| containsChar (Node (left, t, right)) =
if t = c then true else false
| containsChar (Node (left, t, right)) = (containsChar left) <> (containsChar right);
我收到Unbound value identifier "c". 这是为什么?
【问题讨论】:
标签: algorithm functional-programming sml