我正在做OCaml 99,并且不太明白这个问题中的一些术语。
二叉树的字符串表示形式。 (介质)
有人将二叉树表示为以下类型的字符串(参见示例):“a(b(d,e),c(,f(g,)))”。
Empty
或Node(x,l,r)
个术语)。 combine the two predicates in a single function
tree_string
可以在两个方向上使用。difference lists
和a编写相同的谓词tree_string
单个谓词tree_dlist,它执行树之间的转换
和两个方向的差异列表。为简单起见,假设节点中的信息是单个字母,并且字符串中没有空格。
以下是我的问题:
predicate
在这个问题中意味着什么?functor
或类似的东西吗?difference lists
?答案 0 :(得分:1)
这些问题原本打算在Prolog中解决,它解释了我认为的术语。
在Prolog中,谓词可以表示两种值之间的相等(或者同构是一个更好的词?),这样如果你有一种值,它实际上可以计算另一种值的值。即,它作为双向函数起作用。目前还不清楚如何在OCaml中编写代码。也许你应该查看答案?
差异列表是Prolog数据结构。这是一个SO页面似乎解释了他们(我用Google搜索很快):Understanding difference lists (Prolog)