- not equalは
!=
ではなく/=
。 - temporary definitionを
let
で。例えば、ghci> let e = exp 1
とか。 ghci> :info []
とかすれば、[]の情報が調べられる。ghci> :set +t
で型情報を表示する。解除は:unset +t
。:type it
でunsetしても簡単に調べられる。it
で前の計算結果を参照出来る。
簡単にHaskellのプログラムを書くにはinteractを使えば良いらしい。
main = interact f 但し、fはString -> Stringな関数。これで標準入力から読んで標準出力に書けば良い。
% cat WC.hs
main = interact wordCount
where wordCount input = show (length (lines input)) + "\n"
%
Prelude> :info interact
interact :: (String -> String) -> IO () -- Defined in System.IO
実行は
% runghc WC.hs < quux.txt
Exerciseはとりあえずこんな感じ?
main = interact wordCount
where wordCount input = numLines input ++ "\t" ++ numWords input ++ "\t" ++ numChars input ++ "\n"
numLines input = show (length (lines input))
numWords input = show (length (words input))
numChars input = show (length input)