Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
0
Help us understand the problem. What is going on with this article?
@takeajioka

Haskellに入門してみる

「関数型プログラミングをやってみたい」と思ったので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
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
0
Help us understand the problem. What is going on with this article?