我正在尝试使用OCaml类型声明来实现循环双向链表。mutable value : 'a; mutable right : 'a cList option ;; 当我需要声明包含单个元素的第一个列表时因为元素在赋值之前不能被引用,所以我不能让单元格的左侧和右侧成员指向其自身。到目前为止,我唯一的解决办法是允许left和right成员
我经常被告知,使用OCaml中的Lazy模块,可以在诸如Haskell这样的惰性语言中做任何你能做的事情。为了测试这个声明,我正在尝试编写一个函数,将常规列表转换为ocaml中的静态双向链表。type 'a dlist = Dnil | Dnode of 'a dlist * 'a * 'a dlist
对于这种类型,我可以手动创建几个静态双向</em