2006-04-13から1日間の記事一覧

局所的な定義と where 節

ある関数の内部で別の関数が評価されるとき,もしその内部の関数がプログラムのほかのどの部分でも評価されないなら−−言い換えればその場でしか使われないなら,その関数を局所的な定義にすることができる。局所的に定義された関数はプログラムのほかの部分…

capitalizE

Capitalize ならぬ capitalizE。字面どおり最後の文字だけを大文字に変える。 ……いや,名前はともかく(っていうか,こんな動作に名前がついてるとは思えないが)。 toUpper や toLower を使うには Data.Char モジュールを import する。 import Data.Char c…

join

要素と要素の間ごとに新しい要素を挟み込む。 join s [] = [] join s (c:cs) = c:s:(join s cs)実行結果。 *Main> join '-' "abc" "a-b-c-"あれ? そうか,一番最後の要素も c:cs にマッチングしてるんだな。てことは”最後の要素”を表すパターンがあればいい…

関数の定義とパターンマッチング

「入門Haskell」から文字列の文字数を数える関数。 bytesCount [] = 0 bytesCount (c:cs) = 1 + bytesCount cs関数名 bytesCount につづく引数の部分がパターンを表していて,受け取った引数のパターンによって関数本体の内容が変わる。 1行目の [] は空の…