「OCaml筆記」修訂間的差異

增加 602 位元組 、 2022年4月3日 (日) 15:56
無編輯摘要
行 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>


==參考==
==參考==