読者です 読者をやめる 読者になる 読者になる

Haskell 勉強記 (1週間分)

Haskell

1週間の休みをとったので、Haskellを書いてみたくなった。

6/13(月) 初日

すごいHaskellたのしく学ぼう!」を読み始めた。
今日は全体を見通した。Kindle版で見る場合、全体の80%を読めばよいようだ。残りはほぼ索引。

  • モナドとモノイドの違い (というか名前が似ているだけ?)
  • 副作用を持つ関数を扱うために、純粋な部分と汚い仕事をする不純な部分をどう分離しているのか
  • 第10章:関数型問題解決法は具体的な問題を解くようなので面白そうだ
  • 噂に聞くモナドの章はほとんど最後だな...
  • 型クラスって、オブジェクト指向型言語のクラスとは関係あるのかな

1日13%の進捗が無いと終わらない計算
(残り6日) To be continued...

6/14(火)

パターンマッチ、as、ガード、where、let、in、case

第3章まで読んだ。12%。最後まで読み切るのではなく、何か動くものを作るを目標にしたほうがいいかな。
次は再帰から。
(残り5日) To be continued...

6/15(水)

ふつうのHaskellプログラミング」を読み始めた。
簡単なLinuxコマンドを実装していくので、動くものができて嬉しい。すごいHと並行して読むと楽になりそうだ。

4.4 練習問題の解答がコンパイルできなかった。

import List

main = do cs <- getContents
          putStr $ unlines $ map sort $ lines cs
% ghc sort.hs -o sort
[1 of 1] Compiling Main             ( sort.hs, sort.o )

sort.hs:1:1: error:
    Failed to load interface for ‘List’
    Use -v to see a list of the files searched for.

この本はHaskell 98というバージョンで書かれている。対してインストールしたのはHaskell 2010。モジュールの構成が違うようだ。

import Data.List

main = do cs <- getContents
          putStr $ unlines $ map sort $ lines cs

新しいバージョンに合わせて読み替えが必要な箇所がある。
ふつkell第4章まで読んだ。第11章までは読みたい。

(残り4日) To be continued...

6/16(木)

ふつkell第8章まで読んだ。
(残り3日) To be continued...

6/17(金)

一日中Hunter2 観ていた。

(残り2日) To be continued...

6/18(土)

一日中Hunter2 観ていた。

(残り1日) To be continued...

6/19(日) 最終日

ふつkell第11章まで読んだ。一応構文はさらった程度で、まだ実用的なプログラムを書けるとはとても言えない。
以降はすごいHを読みこなしつつ、まずはProject Eulerでもやってみる。解答もあるし