Movatterモバイル変換


[0]ホーム

URL:


memo486

記事の案内 |記事の一覧

読んでる: プログラミングHaskell

プログラミングHaskell
プログラミングHaskell

読んでます。

not じゃなくて ¬、&& じゃなくて ∧ などが使われてたりして数学の教科書っぽい。

第1章 導入

大丈夫

第2章 はじめの一歩

大丈夫

第3章 型とクラス

整数とか文字列とかのデータの型じゃなくて、入力の型と出力の型のマッピングのことも単に「型」と書いてあってちょっと混乱した。

例(p19):

また、 Bool → Bool という型は、否定演算子 ¬ のように、Bool型を Bool型へ変換するすべての関数を含む。

「〜という型は(略)関数を含む」うーむ……ということは関数は型に含まれるものなの……?

p25 の
「型 Int → Int の関数」

「この「add' 1」は、「引数を一つ取って 1 を加えた値を返す関数」で、型は「Int → Int」である。」
といった表現から推察して、まあそういうものなのかなと。

でもまぎらわしく感じるので何か別の語を(読みながら脳内で)当てたい……「関数型」? 「メタ型」?

カリー化は知ってるけど普段使っていないのでなかなかすっと入ってこなくて、ちょっと立ち止まらないといけない。記法への慣れもあると思う。

第4章 関数定義

p42 最初の n 個の奇数を返す関数 odds

odds n = map (λx → x*2+1) [0..n-1]

このくらいなら説明読まなくても分かる。RubyLispScheme) のおかげ。

第5章 リスト内包表記

リスト内包表記と呼ぶと怖そうなのでミニSQLと呼ぼう
http://d.hatena.ne.jp/sonota88/20120918/1347989850

第6章再帰関数

再帰は基本的なとこは知ってるので割とさらっと流せる。

第7章高階関数

高階関数も知ってるので割とさらっと流せる。

第8章 関数型パーサー

今ここ。パーサーもある程度は知ってるので徒手空拳というほどではないけどよく分かってない……書いて動かすのが良さそう。


7章まででつまづくのはカリー化と関数合成で、どっちも普段使っていないのと記法に慣れていないのとで出てきてもぱっと把握できない。

foldr :: (a → b → b) → b → [a] → b

みたいなやつとか。。

リストの処理で cons や car/cdr な話が出てくるけどちょびっとLisp 触ってたのでこれは怖くない。たとえば「今までずっとJava だけやってました。他の言語は知りません」みたいな人がいきなり読んだらどうなるんだろう……。

慣れ大事。

検索
その他
PVアクセスランキング にほんブログ村
Mastodon

引用をストックしました

引用するにはまずログインしてください

引用をストックできませんでした。再度お試しください

限定公開記事のため引用できません。

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

[8]ページ先頭

©2009-2026 Movatter.jp