Haskell入門

標準出力

main = putStrLn "Hello, World!"

アクション

アクション 概要
main mainアクション

関数

関数名 概要
putStrLn 文字列と改行を標準出力する

catコマンド

main = do cs <- getContents
          putStr cs

アクション

アクション 概要
getContents 標準入力をすべて読み込む

関数

関数名 概要
putStr 文字列をそのまま標準出力する

一つのブロック。インデントをそろえる必要がある。

概要
do まとめられたアクションを上から下へ実行する
<- 変数を値に束縛させる(do式などの限定された箇所)

countlineコマンド

main = do cs <- getContents
          print $ length $ lines cs

演算子

演算子 概要
$ 二項演算子、$の右側の式を引数とする

関数

関数名 概要
lines 文字列を行のリストに分割する。改行\nごとに区切る。引数が\nなら空行。引数無しなら空行
print 文字列化して標準出力に出力するアクションを返す。

headコマンド

main = do cs <- getContents
	  putStr $ firstNLines 10 cs

firstNLines n cs = unlines $ take n $ lines cs

その他

2引数は、値を空白で区切る

関数

関数名 概要
unlines 行のリストを連結して文字列にする
take リストの先頭からn要素をとってリストを返す

tailコマンド

main = do cs <- getContents
	  putStr $ lastNLines 10 cs

lastNLines n cs = unlines $ takeLast n $ lines cs

takeLast n ss = reverse $ take n $ reverse ss

関数

関数名 概要
reverse リストを逆順にする([1,2,3]->[3,2,1] , "string"->"gnirts")