Ocaml 什么是谓词和差异列表?
我正在做,不太理解这个问题中的一些术语Ocaml 什么是谓词和差异列表?,ocaml,Ocaml,我正在做,不太理解这个问题中的一些术语 二叉树的字符串表示形式。(中等) 有人将二叉树表示为以下类型的字符串(参见示例):“a(b(d,e),c(,f(g))” 如果树像往常一样给定(如Empty或Node(x,l,r)term),那么编写一个OCaml函数来生成这个字符串表示形式 然后写一个函数来做这个逆运算;i、 e.给定字符串 表示,以通常的形式构造树 最后,将两个谓词组合在一个函数中 树字符串,可在两个方向上使用 使用差异列表和 单谓词树\u dlist,用于在树之间进行转换 以及两
二叉树的字符串表示形式。(中等) 有人将二叉树表示为以下类型的字符串(参见示例):“a(b(d,e),c(,f(g))”
Empty
或Node(x,l,r)
term),那么编写一个OCaml函数来生成这个字符串表示形式李>
将两个谓词组合在一个函数中
树字符串
,可在两个方向上使用差异列表
和
单谓词树\u dlist,用于在树之间进行转换
以及两个方向的差异列表以下是我的问题:
谓词
是什么意思functor
或类似的东西吗这些问题最初是打算用Prolog来解决的,这解释了我认为的术语 在Prolog中,谓词可以表示两类值之间的相等(或者同构是更好的词?),这样,如果有一个排序的值,它实际上可以计算另一个排序的值。也就是说,它是一个双向函数。如何在OCaml中编码这一点还不清楚。也许你应该看看答案
差异列表是一种Prolog数据结构。这里有一个SO页面似乎可以解释它们(我很快在谷歌上搜索):您认为OCaml中有一个不同的列表吗?或者它在OCaml中有意义或有用吗?请您也看一看好吗?我认为您可以使用lazness(
lazy
,在OCaml中)列出Prolog语义的差异列表,但它非常复杂,不值得。