LoginSignup
1
0

More than 3 years have passed since last update.

すごいH本覚え書き

Last updated at Posted at 2019-08-11

はじめに

すごいH本の忘れそうな個所を覚え書き

第1章 はじめの第一歩

1.3 リスト入門

  • Haskellのリストは同一データ構造.同じ型の要素を複数個格納できる.整数と文字両方からなるようなリストはつくれない.

リスト中のリスト

  • リスト中のリストはそれぞれ違う長さでもかまわないが,違う型は許されない.

第2章 型を信じろ!

  • "型シグネチャ"...型を表す文字列のこと.2章途中で突然出てくる.注釈は4章に.

第7章 型や型クラスを自分で作ろう

7.8 型クラス 中級編

サブクラス化

Numの型クラス宣言の例.NumのインスタンスになるためにはEqのインスタンスである必要がある.

class (Eq a) => Num a where
    ...

8章 入出力

8.2 Hello, World!

関数putStrLnの型は「文字列を引数にとり,空のタプル()を結果とするI/Oアクションを返す」.I/Oアクションは,実行されると副作用を含む動作をして結果を返すもの.このことを「I/Oアクションが結果を生成する」という.

:t putStrLn
putStrLn :: String -> IO ()

8.3 I/Oアクションどうしをまとめる

I/Oアクションからデータを取り出せるのは,別のI/Oアクションの中だけ.
doブロックの最後のアクションは名前を束縛できない.詳しくは第13章のモナドで.

9章 もっと入力,もっと出力

9.3 ToDoリスト

Control.Exceptionのリソース開放関数について

  • bracket :処理が終わると常に獲得したリソース開放
  • bracketOnError :何らかの例外が発生したときのみリソース開放

11章 ファンクターからアプリカティブファンクターへ

11.3 アプリカティブファンクターを使おう

pure f <*> xfmap f xと等しい.fmap f xの代わりにf <$> xと書ける.

12章 モノイド

12.1 既存の型に新しい型をくるむ

newtypeキーワードは、1つの型をとり、それを何かにくるんで別の型にみせかける場合に使う

13章 モナドがいっぱい

13.7 モナド則

左恒等性

return x >>= ff xは等価.

右恒等性

m >>= returnm

結合法則

(m >>= f) >>= gm >>= (\x -> f x >>= g)が等価.

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0