使用 SML 中的成功延续查找 BST 中满足 f 的所有元素
我有一项作业要做,但我不知道如何做一道题。 这是我必须做的:
编写一个函数,收集树 T 中满足属性 p 的所有元素并返回它。按顺序遍历树。 使用成功延续查找 BST 中满足 f 的所有元素。
我做了以下事情:
datatype 'a tree =
Empty | Node of (int * 'a) * 'a tree * 'a tree
fun find_all f Empty cont = cont()
| find_all f (Node(x, l, r)) cont = if (f x) then find_all (f l (fn x => x::cont())) @ find_all (f r (fn x => x::cont()))
else find_all (f l (fn () => cont())) @ find_all (f r (fn () => cont()));
我不明白为什么它不起作用......
I have an assignment to do and I can't figure out how to do one question.
Here is what I have to do:
Write a function which collects all elements in the tree T which satisfies the property p and returns it. Traverse the tree in inorder.
Find all elements in BST satisfying f using success continuations.
I did the following:
datatype 'a tree =
Empty | Node of (int * 'a) * 'a tree * 'a tree
fun find_all f Empty cont = cont()
| find_all f (Node(x, l, r)) cont = if (f x) then find_all (f l (fn x => x::cont())) @ find_all (f r (fn x => x::cont()))
else find_all (f l (fn () => cont())) @ find_all (f r (fn () => cont()));
I don't understand why it's not working...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这就是我所做的:
而且效果很好
Here is what I did:
And it works fine