in the mythosil

Rhythm & Biology.

Haskellを始める

以前からhaskellには興味があったのですが、中途半端な勉強で、結局何も頭に残っていない状態です。
そもそも関数型言語の耐性がまだ出来ていないので、まだまだ身構えてしまいます。

今後haskellに加えてerlangもやっていきたいと考えているので、勉強しつつ、今度はちゃんと記録に残していこうと思います。

で、まずはhaskellhello worldをやってみます。

-- hello.hs
main = putStrLn "Hello World"

これをコンパイルして実行。

% ghc hello.hs
% ./a.out
Hello World

なんてことはないですね。では、次に標準関数を少し試してみます。

-- func.hs
main = do
  print (sum arr)
  print (head arr)
  print (tail arr)
  print (length arr)
  where
    arr = [1,2,3,4]

Cとかに慣れてると、変数の扱いに戸惑ってしまうんですね。かといって、特別気持ち悪いわけではないです。

% ghc -e main func.hs
10
1
[2,3,4]
4

各関数の働きについてはなんとなく想像がつくと思います。
ghcの-eオプションは、func.hsのmain関数を実行するというものです。これで実行すると、a.outのような実行ファイルは生成しません。

haskellのドキュメントと格闘しながら勉強を続けていこうと思います。