「Program=Proof筆記」修訂間的差異

增加 731 位元組 、 2023年6月25日 (日) 17:49
無編輯摘要
行 27: 行 27:
* 重要的軟體使用之驗證
* 重要的軟體使用之驗證


==== Ch1 Ocaml ====
==== Ch1 有型別的函數式程設 ====
(* 註解*)
===1.1介紹===
<pre>(* 我是註解 *)


print_endline "string" (*  函數使用,一般寫法:print_endline("string")*)


</pre>


ocamlopt 可以編譯


<pre>


# 2 + 2 ;;
-: int = 4
(* 對結果做型別推導 *)


let s = string_to_int 3.2
(* -> 這會型別錯誤 *)


[[:分類:資訊|category:資訊]]
</pre>
[[:分類:邏輯學|categoty:邏輯學]]
 
; Type annotation(型別顯式標記)
 
比較:
<pre>
let f x = x + 1
let f (x : int ) : int = x + 1
 
</pre>
 
;型別
 
List.map 的型別:<code>('a -> 'b) -> 'a list -> 'b list</code>
 
<code>let mapped_list = List.map (fun x -> 2 * x) a_list</code>
 
; 可變變數(reference)
<pre>
let () =
  let r = ref 0 in (* 可變 reference *)
  for i = 0 to 9 do
    r := !r + 1 (* 刷新 r 值,使其 + 1)
  done
 
</pre>
另外還有 record、array、GADT、垃圾回收等等。
 
[[分類:資訊]]
[[分類:邏輯學]]