27 December, 2008

[Haskell][RWH] Chapter 1

RWHのChapter 1を読む。


  • 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)

No comments: