練習問題 5.1

次のうち、正しいリスト表現はどれでしょうか。コンパイラに入力する前に、正しいと思う場合は式の型を、間違っていると思う場合はなぜ誤り化を予想してから実際に確認してください。

(* 練習問題 5.5 *)

(* O 1. [[]] *)  (* a' list *)
(* O 2. [[1; 3]; ["hoge"]] *)  (* int list   string list *)
(* X 3. [3] :: [] *)  (* -> [3] @ [] *)
(* X 4. 2 :: [3] :: [] *)  (* -> 2 :: [3] @ [] *)
(* X 5. [] :: [] *)  (* -> [] @ [] *)
(* O 6. [(fun x -> x); (fun b -> not b)] (* fun list *)