Ch.7 MLプログラミング入門

§ 7.19. 式の組み合わせの原則

MLプログラミングの原則は,式を組み合わせていくことでしたが,もち ろんどのような組み合わせでも許されるわけではありません. MLでは,プログラムを構成する際,以下の基本原則に従います.

式は型が正しい限り自由に組み合わせることができる

リストの場合を例にこの原則を考えてみましょう. リストは,その要素の型に制限はありません. どのような値であれ,同じものは同一のリストにすることができます. 以下の対話型セッションは,様々な型のリストを構築しています.

  # fact 4 :: 4 + 4 :: (if factorial 1 = 0 then nil else [1,2,3]);
  val it = [24, 8, 1, 2, 3] : int list
  # [1.1, Math.pi, Math.sqrt 2.0];
  val it = [1.1, 3.14159265359, 1.41421356237] : real list
  # "I"::"became"::"fully"::"operational"::"on"::"April 2, 2012"::nil;
  val it = ["I", "became", "fully", "operational", "on", "April 2, 2012"] : string list
  # [factorial, fib];
  val it = [fn, fn] : (int -> int) list
  # [#"S", #"M", #"L", #"#"];
  val it = [#"S", #"M", #"L", #"#"] : char list
  # implode it;
  val it = "SML#" : string
  # explode it;
  val it = [#"S", #"M", #"L", #"#"] : char list

implodeexplodeはそれぞれ文字のリストを文字列に変換する関数お よび文字列を文字のリストに変換する関数です.