「関数型プログラミングをやってみたい」と思ったのでHaskellを始めることにしました。
環境はLinux OS(Ubuntu)です。
インストール方法
以下のサイトで自分のOSを選択するとインストール方法が表示されます。
https://www.haskell.org/platform/
Ubuntuの場合は
sudo apt-get install haskell-platform
これでインストールされました。
起動と使い方
以下の記事に使い方がありました。
http://walk.northcol.org/haskell/setup/
対話環境(REPL)を起動する場合ではターミナルで以下のように打ちます。
ghci
書いたスクリプトを実行する場合は
runghc <ファイル名(hsファイル)>
です。これでコンパイルと実行を両方やってくれます。
文法
以下の記事が大変参考になります。
https://qiita.com/7shi/items/145f1234f8ec2af923ef
対話環境で関数の記述するとエラーになりますが、
コードをhsファイルに書いて実行していくことで動かすことが出来ました。
有名なのが以下にある5行でクイックソートする関数ですね。
ただしこの書き方では計算量が多くなるため良くないようです。
num = [2, 10, 3, 4, 7, 12, 8, 5, 6, 1, 11, 9] -- list of number
-- Quick sort on 5 lines
qsort [] = []
qsort (n:xs) = qsort sm ++ [n] ++ qsort lg
where
sm = [x | x <- xs, x < n]
lg = [x | x <- xs, x >= n]
-- main function
main = do
print $ qsort num