【发布时间】:2015-01-26 07:22:29
【问题描述】:
在递归树类型中找到一个'item/object/type',树类型是UNSORTED,因此二分查找操作不会成功。
Type Tree = T of (Name*Children)
And Children = Tree list
//findTree :Tree*Name -> Tree
我的代码(不起作用)
let rec findTree t n = List.find(fun (T(nameTree,childTree)) -> n=nameTree ) t
我尝试过使用递归和辅助函数,但结果非常混乱,没有成功。
【问题讨论】:
-
这是用 [haskell] 标记的,因为您也在寻找 Haskell 实现吗?
-
如果你有,那么请,或者只是功能性伪代码 :) 我的教授告诉我 F# 是微软版本的 haskall,所以我认为相似度很高。(如反对面向对象)
-
所以我承认我对 F# 不是很熟悉,我是一个 Haskell 人,所以这种类型是否等同于类型
data Tree = T Name [Tree](本质上是一个rose tree)? -
看起来很接近,一棵有 0..n 个子节点的树是无序的
标签: recursion tree f# functional-programming