Haskellで、map関数使ってみました。
まだまだHaskellのことはよく分からないですが、解説書を読みながら簡単なプログラムを作り動かしてみました。
test.hs
sa 1 = "one"
sa 2 = "two"
sa n = "other"
main::IO()
main = do
let l=[1,2 .. 20]
print (map sa l)
実行結果は
["one","two","other","other","other","other","other","other","other","other","other","other","other","other","other","other","other","other","other","other"]
となります。
解説
まずは最初の部分。
test.hs
sa 1 = "one"
sa 2 = "two"
sa n = "other"
関数sa
を定義しています。
引数に1
が渡されればone
を返します。
2
ならtwo
を、それ以外ならother
を返します。
test.hs
let l=[1,2 .. 20]
print (map sa l)
main
関数の中身です。
上の行は1から20までの整数のリストを表しています。
そのリストをl
に束縛しています。
map関数は、関数とリストを引数に取り、リストの各要素を関数に適用します。
map sa l
つまり、リストl
の最初の要素は1
で、
sa 1
を実行します。
次は2
なので
sa 2
を実行します。
これをリストの最後、20
まで繰り返します。
よって実行結果は、
"one","two"
の後が"other"
が連続します。