top page > computer > haskell > web_lecture > for_programmer > length.html
更新日:
文責: 重城良国

リストの長さ

動作

関数lengthはリストの長さを計算する。

% ghci
Prelude> length [1, 2, 3]
3
Prelude> length "hello"
5

考えかた

空リストの長さは0だ。リストの先頭に要素を追加すると長さは1増える。

コード

基底部

myLength [] = 0

再帰部

myLength (_ : xs) = 1 + myLength xs

リストの長さはなかの要素には関係ないのでワイルドカードでマッチしている。

「長さ」はなかの値の型を問わない構造に関する性質だ。多相関数となる。

myLength :: [a] -> Int

返り値はIntegerでも良いが関数lengthに合わせてIntとする。

まとめ

関数mySumとmyLengthはよく似ている。関数mySumの足し算の第1引数のxを1にすると関数myLengthになる。

課題

  1. 関数myLengthを関数map, const, sumを使って定義せよ

「リストの要素の総積」へもどる 「たたみこみ(右)」へ

正当なCSSです! HTML5 Powered with CSS3 / styling, and Semantics