2
我已经定义的类型和功能:递归函数来讨论OCaml中
type element = ...
let merge (x0: element) (x1: element): element * bool = ...
的merge
返回的第二部分表示如果x0
和x1
是合并,能。如果是这样,返回的第一部分是合并的结果,否则第一部分可以被忽略。
然后,我想实现一个函数restructure: element list -> element list
,只要列表中的任何2个元素都是可合并的(我们用它们合并的结果替换2个元素)合并的顺序不是重要。
我想这肯定是一个递归函数,在这个阶段对我来说有点复杂,任何人都可以帮忙吗?
非常感谢您
您应该为'merge'功能使用内置的''选项'类型。然后返回'None'或'Some element'作为结果。 –