「MLの基礎(5)リストを扱う関数」の編集履歴(バックアップ)一覧はこちら
「MLの基礎(5)リストを扱う関数」(2007/03/10 (土) 21:10:18) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
・リストを扱う3つの基本関数
null 空リストかどうかを判定
tl リストの先頭部分を除いた残りのリストtailを返す関数
hd リストの先頭部分headを返す関数
これらは、標準で定義されているので、
my_null my_tl my_hdとして、関数を定義せよ。(問1)
(ヒント:空リストは [] or nil
空でないリストのパターンマッチング (h::t)
要素が一個のパターンマッチング [x])
問2 次の関数を定義せよ。
length リストの長さ(要素の数)を示す関数
sumList リストの値(整数)の合計値を示す関数
member ある要素がリストに含まれているかどうかを判定する関数
(ヒント:length については、hd で先頭部分があれば、1を加え、
(1だけを加えるケースと1を加えて、recursiveに定義するケースとがある。)
、[]になれば0を加える。ケース分けは3つ。)
問3 次の関数を定義せよ。
plus 2つのリストを合わせて、新たなリストを返す関数。
例) plus [1,2,3] [4,5,6] -> [1,2,3,4,5,6]
・リストを扱う3つの基本関数
null 空リストかどうかを判定
tl リストの先頭部分を除いた残りのリストtailを返す関数
hd リストの先頭部分headを返す関数
これらは、標準で定義されているので、
my_null my_tl my_hdとして、関数を定義せよ。(問1)
(ヒント:空リストは [] or nil
空でないリストのパターンマッチング (h::t)
要素が一個のパターンマッチング [x])
問2 次の関数を定義せよ。
length リストの長さ(要素の数)を示す関数
sumList リストの値(整数)の合計値を示す関数
member ある要素がリストに含まれているかどうかを判定する関数
(ヒント:length については、hd で先頭部分があれば、1を加え、
(1だけを加えるケースと1を加えて、recursiveに定義するケースとがある。)
、[]になれば0を加える。ケース分けは3つ。)
問3 次の関数を定義せよ。
plus 2つのリストを合わせて、新たなリストを返す関数。
例) plus [1,2,3] [4,5,6] -> [1,2,3,4,5,6]
#comment()