Okada Hiroshi の blog

typo が多いです

Haskell 勉強記録 35 日目

すごいHaskellたのしく学ぼう!

すごいHaskellたのしく学ぼう!

今日は、第13章:モナドがいっぱい の途中(位置6700) まで読み進めました。

今日のまとめ(復習の部分が多いです)

  • Functor 関数を文脈付きの値に適用して、文脈付きの値を得るための typeclass
    (*2) fmap Just 3
  • Applicative 文脈付きの関数を文脈付きの値に適用して、文脈付きの値を得るための typeclass
    Just (*2) <*> Just 3
    (*) <$> Just 2 <*> Just 3
  • Monad 普通の値を取るって文脈付きの値を返す関数を文脈付きの値に適用して、文脈付きの値えるための typeclass
    Just 3 >>= \x -> Just (x * 2)

Haskell 勉強記録 34 日目

色々、あってサボっていたが今日からまた勉強を再開しました。

ブランクが長かったので 12章 モノイドの初めから進めました。 今日は 12章の終わり(位置 6572)まで読み進めました。

今日のまとめ

type, newtype, data の違い
  • type 型シノニム、型に別名をつける、別名と元の型名は同じなので混ぜて書いてもよい。
  • newtype 既存の型を包み込んだ新しい型を作り出す。
    慣用句: newtype 新しい型名 = 新しい型名 { get新しい型名 :: 既存の型名} deriving (...)
  • data 自作の新しい型を作る複数のコンストラクタを持てる。
Monoid

結合的(associativity) な二項演算子単位元からなる構造 Monoidにする方法が複数あるときは newtype でくるむ。 Ordering モノイドを使うと、値比較で優先する特徴と劣後する特徴を持つような事例を簡単にあらわせる。

Folderble

畳みこみのできる構造 有る形を Folderbleにするには foldMap を定義すればよい。

わからなかったこと

foldMap を定義するとなんで foldr が自動的に使えるようになるのか。

Haskell 勉強記録 32 日目

昨日は、PCの設定等をいじっていなかったので、ほとんど読み進められませんでした。

今日は 第12章:モノイド モノイドとの遭遇 の途中 (位置 6404/11175) まで読み進めました。

アプリカティブファンクターの部分は読み進むのが結構たいへんでした。やはり見慣れない記号だと、なかなか頭に入ってきません。

「すごいHaskellたのしく学ぼう!」を読んでいて出てきた関数のメモ

Haskell 勉強記録 30 日目

すごいHaskellたのしく学ぼう!

すごいHaskellたのしく学ぼう!

今日は、概念的な部分が多くて少し難しかったです。

第11章:ファンクターからアプリカティブファンクターへ ファンクター則の終わり (位置 5550/11175) まで読み進めました。

今まで出てきた関数

Haskell 勉強記録 29 日目

今日は 第10章:関数型問題解決法 ヒースロー空港からロンドンへ (位置 5273/11175) の終わりまで読み進めました。

いきなり undefined という関数が出てきましたが、どうやら例外を発生させる関数のようです。 あと concat という関数が出てきましたが、これは Ruby で言うところの flatten の劣化型のような関数のようです。 ( haskell の配列は Rubyのような一部だけ入れ子になった構造は定義できないので )

今まで出てきた関数