我正在爲實驗語言編寫解釋器。該語言的三個主要結構是定義,陳述和表達式。定義可以包含語句和表達式,語句可以包含定義和表達式,一種表達式可以包含語句。我用聯合類型來表示所有這些,所以我可以很容易地在它們上使用模式匹配。理想情況下,我想將這些代碼放在不同的文件中,但OMake抱怨循環依賴問題。據我所知,跨模塊的循環類型定義是不允許的。 我知道的唯一的辦法來解決,這是一次定義所有三種類型: type de
我正在嘗試擴展朋友的OCaml程序。這是所需要的一些數據分析功能的巨大集合。由於我不是一個真正的OCaml的裂縫目前我卡上(對我來說)陌生的List實現: type 'a cell = Nil
| Cons of ('a * 'a llist)
and 'a llist = (unit -> 'a cell);;
我已經想通了,這實現了某種「懶惰」列表,但我完全不知道它是如何工作的
我是一個非常新手的OCaml程序員,所以請原諒我,如果這是一個愚蠢的/明顯的問題。有很多吸收,我可能在文檔中錯過了這一點。 我的代碼基礎,正在開始看起來像這樣: let update_x p x =
add_delta p;
p.x <- x;
refresh p
let update_y p y =
add_delta p;
p.y <- y