2,619
次編輯
Tankianting(討論 | 貢獻) |
Tankianting(討論 | 貢獻) |
||
行 6: | 行 6: | ||
在命令行輸入 ocaml ,輸入 | 在命令行輸入 ocaml ,輸入 | ||
<code># use "another_mode.ml"</code> | <code># use "another_mode.ml"</code>(注意引號也要輸入) | ||
=== 編譯時 === | === 編譯時 === | ||
行 26: | 行 26: | ||
ocamlopt -c b.ml | ocamlopt -c b.ml | ||
ocamlopt -o a a.cmx b.cmx</pre> | ocamlopt -o a a.cmx b.cmx</pre> | ||
==可變的模擬== | |||
原則上,OCaml的物件是不可變的,但是可以用參照(reference、引用)模擬。 | |||
如下範例: | |||
<pre> | |||
# let x = ref [1;2];; (* 設定 x 是一個引用,指向 [1; 2]這個列表(list)。 *) | |||
val x : int list ref = {contents = [1; 2]} | |||
# !x (* 取得 x 引用的值(列表) *) | |||
- : int list = [1; 2] | |||
# x := 3::!x;; (* 將 x 指涉的列表前面加上元素 3,然後指定 := 到 x 這個 ref,更新參照指向 *) | |||
- : unit = () | |||
# !x;; (* 取得 x 的內容,可以發現已經更新。 *) | |||
- : int list = [3; 1; 2] | |||
</pre> | |||
==參考== | ==參考== |