Haskellをはじめたい

朝活#1

積読

おもしろそうだなーと思ってつい本を買う

目次を読む

へぇー

何かが起こる

本棚にしまう

関数プログラミング 珠玉のアルゴリズムデザイン

Amazon.co.jp: 関数プログラミング 珠玉のアルゴリズムデザイン: Richard bird, 山下 伸夫: 本

この本の場合、Haskellが読めなくて本棚にinされた。

Haskellに入門したい

この本を読みたいのでHaskellを書けるようになりたい。

"Haskell 入門"でGoogle検索すると、上のほうに「怖くないHaskell」が出てきてこわい。関数プログラミングには怖いイメージあるの良くないことだと思う。

実行したいので処理系を調べると、GHCというのがデファクトぽい。

GHCにふれる

Mac OS X環境では、brew経由でインストールできるようだ。

$ brew install ghc

自分のMacには何故かHaskellがインストールされていた。

$ ghc --version
The Glorious Glasgow Haskell Compilation System, version 7.8.3

これは、2014年のバージョンみたいだ。

以前も始めようとしていた痕跡があった。

律儀にパッケージマネージャのcabalもインストールされていた。

$ cabal --version
cabal-install version 1.20.0.3
using version 1.20.0.2 of the Cabal library 

どういうコマンドでインストールされていたのかわからないのでこわい。

Haskellを書いてみる

ひとまずこのバージョンのHaskellで書いてみる。

main = do
  putStrLn "Hello Haskell!"

はじめてのHaskellはこのコードで、vim-quickrunで実行されたので実行コマンドを知らなくても実行された、quickrunとても便利。

少し調べてFizzBuzz関数を書くと下のようになりました。

fizzbuzz n
  | n `mod` 3 == 0 = "Fizz"
  | n `mod` 5 == 0 = "Buzz"
  | n `mod` 15 == 0 = "FizzBuzz"
  | otherwise = show n

main = do
  let l = 1
  print (map fizzbuzz [1..10])

"|"で書いているのはガードと呼ばれるものみたいです。

なんとなく書いている気になれた。

参考記事

結果として

Haskellのスペルが曖昧になる程度のハスケェル力しかないので、まず文法を覚えようと思った。

すごいH本などを読むといいのだと思うけど、あの手の分厚い本を頑張って読むのは自分には合ってないことがわかっているので、辞書代わりに使うのがちょうどいいと思っている。

文法をひとさらいしたら先の本をよみながらHaskellを勉強していく予定。

Show comments

Adsense

Share

  • このエントリーをはてなブックマークに追加

About

どこにでもいる平凡なプログラムを書く人間のログ。

Recently

Tags

Pages

-->