関数型プログラミング言語Haskell Part11

このエントリーをはてなブックマークに追加
952デフォルトの名無しさん:2010/04/29(木) 12:56:12
>>942
RWHは例題が悪すぎる。
Haskell以前に例題が理解できない。
はじめて読む人は、まず例題の解説が必要。何をやろうとしてるのか分からない。
(C言語で解いた場合のプログラムコードが載ってるけど、いきなり見せられるとC屋さんでも首をかしげるレベル)

さらに、文法やイディオムのまとめがないので、後から文法を調べるときにももう一度分かりにくい例題を始めから読まないといけない。
あと、プログラミング論全般の話題をしてるときに、いきなりHaskell固有の文法の解説が入って話が飛ぶのも良くない。
結果、一つの記号や文法の説明が複数の章に散在してしまい、ハンドブックとしても使いにくくなっている。
953デフォルトの名無しさん:2010/04/29(木) 13:44:32
>>952
使い方を間違えてないか。ハンドブックは別に用意すればいいw

例題が何とかは特に感じなかったのでパス
954デフォルトの名無しさん:2010/04/29(木) 14:11:03
バーコードの章は途中でついていけなくなった。
955デフォルトの名無しさん:2010/04/29(木) 14:13:38
Real World Haskellってただのライブラリ解説書でしょ
956デフォルトの名無しさん:2010/04/29(木) 14:29:05
>>953

ハンドブックとしてのお薦めは?
957デフォルトの名無しさん:2010/04/29(木) 15:29:43
>>956
ネット。チュートリアルとリファレンスと論文を使い分けるのが正しいアプローチ。
958デフォルトの名無しさん:2010/04/29(木) 15:48:46
ようするに、チュートリアルやリファレンスや論文の分かりやすい説明をRWHに期待するなということですよ
959デフォルトの名無しさん:2010/04/29(木) 15:51:01
Real World Haskellってただのライブラリ解説書でしょ
960デフォルトの名無しさん:2010/04/29(木) 15:51:35
>>955
違う
961デフォルトの名無しさん:2010/04/29(木) 15:52:56
>>960
持ってるから何が書いてあるか分かる。
ライブラリの解説ぐらいしかみどころがない。
962デフォルトの名無しさん:2010/04/29(木) 16:18:16
ライブラリ解説書というほど多くのライブラリを網羅しているわけではない
リストとか正規表現の関数も一部しか出てこない
963デフォルトの名無しさん:2010/04/29(木) 17:01:38
>>961
ライブラリ解説書はライブラリ内の多くの機能を辞書的に解説す事に価値がある。
本書は、その機能をどう使うのか、なぜ使うのかを学べるとともに、
一般的なライブラリ解説書では学べない多くのことも学べる。

たとえば第5章では JSON 用のライブラリを書くことを通じて、
代数データ型で構文木を作り、それをルートから辿りながら
ノードをひとつひとつ処理していく方法を学ぶ。

他にも第9章では、可能な限り IO モナドに頼らずに、
プログラムの振る舞いを指示する表現力豊かな機能を作る問題に対して、
DSL という回答を与えて実演して見せている。
第10章なら、条件分岐の深い入れ子になりがちなデータ解析という処理を
状態遷移と捕らえ、かつ運ぶべき状態情報を隠蔽する方法を提示しており、
また後の章でさらに抽象化している。

このような方法論を学べる「ライブラリ解説書」はまず無い。
他にも例を提示しようか?
964デフォルトの名無しさん:2010/04/29(木) 17:16:54
>>957

ネットでお薦めは?
965デフォルトの名無しさん:2010/04/29(木) 17:29:53
>>963
方法論、ぴったりの言葉ですね。
Real World Haskell (RWH)はHaskellプログラミングのマイルストーンです。
言語仕様や個別のライブラリについては他のドキュメンテーションをあたるべきです。
RWHはHaskell学習の出発点、ルートノードとして使われるべきリソースです。
966デフォルトの名無しさん:2010/04/29(木) 17:31:11
>>963
そもそもJSONのライブラリを作るという例題が解説書として不適切な気が
967デフォルトの名無しさん:2010/04/29(木) 17:31:58
>>966
どーして?
968デフォルトの名無しさん:2010/04/29(木) 18:06:18
>>967
・JSON形式自体を理解するのにワンステップ必要だから
・Javaの意味の用語(オブジェクト、型、構成子)を知ってると微妙に混乱する

で、なんとか理解した気持ちになってページめくったら、Justで包むとかいう表現が出てきてワケ分かんないって
普通に show を別途実装するとかいう例題でよかったと思うのは俺だけか…
969デフォルトの名無しさん:2010/04/29(木) 18:14:14
>・JSON形式自体を理解するのにワンステップ必要だから
簡単な紹介はするが、詳細は自分で調べてというのはごく普通の態度だろう。

>・Javaの意味の用語(オブジェクト、型、構成子)を知ってると微妙に混乱する
Javaは関係ない。そもそもJavaが出てきたのはHaskellの後であり、十分な理論的基盤を構築せずに開発を始めたJavaが悪い
970デフォルトの名無しさん:2010/04/29(木) 18:19:39
>>969
十分な理論的基盤を構築せずに開発を始めたJavaのために作られたJSONを例題に使うのは良くないと思う
971デフォルトの名無しさん:2010/04/29(木) 18:20:14
横からだけど、詳細を調べる過程でその悪いJavaの知識が必要なJSONをわざわざ持ってくるのが悪いという話では?
972デフォルトの名無しさん:2010/04/29(木) 18:35:43
オレもJSONのところ(5章)と次の6章はしんどかったなぁ。2回やったら
何をやらんとしてるかは分かったけど、でもまだ ? なところはある。

一応CとHaskellだけで全て賄おうと思ってるんで、先に進みます。
973デフォルトの名無しさん:2010/04/29(木) 18:37:47
JSONがJavaScriptのサブセットだというのは知ってたが
Javaのために作られたというのは知らなかった
974デフォルトの名無しさん:2010/04/29(木) 18:57:13
JavaScriptという言語では、ブラウザ-サーバ間でデータ転送を行うことができて、
HTTPでデータ転送を行うときには、(Javaの世界の)オブジェクトをString型に変換(シリアライズ)してやりとりしている
(Javaの世界の)オブジェクトをString型に変換する手法のひとつがJSON

という最低限の知識を持ってないと、読むときにひっかかる

他の章でも、「プログラムコードのほとんどは例外処理」とか「ボイラープレートは面倒くさい」とか「ハンドル」とか「シノニム」とか「クロージャ」とか、最低限のリテラシを持ってないとスラスラ読めない

そういう本です
975デフォルトの名無しさん:2010/04/29(木) 19:01:11
そりゃ *Real World* Haskellだからなあ
JSONぐらいで批判されるとは思わないだろう
976デフォルトの名無しさん:2010/04/29(木) 19:03:47
JSONはもともとJavaScript由来のもの。
だからJSONとJavaは関係ない。
977デフォルトの名無しさん:2010/04/29(木) 19:03:57
Scrap your boilerplateが話題になった頃にHaskell触ってた奴じゃないとボイラープレートとかわかんないだろうなぁ
978デフォルトの名無しさん:2010/04/29(木) 19:06:23
というかboilerplateは普通の英単語なので、ただ日本人に馴染みがないだけ。
synonymも同様。普通の英文法用語。
979デフォルトの名無しさん:2010/04/29(木) 19:09:47
>>976
コンピュータ言語とは構文解析するときの仕様である、という立場をとると、JSONもJava由来
980デフォルトの名無しさん:2010/04/29(木) 19:10:39
>>979
わけがわからない。何でもJavaで考える頭の悪い子か?
981デフォルトの名無しさん:2010/04/29(木) 19:11:08
http://www.merriam-webster.com/dictionary/boilerplate

Main Entry: boil・er・plate
Pronunciation: \-?pl?t\
Function: noun
Date: 1897
1 : syndicated material supplied especially to weekly newspapers in matrix or plate form
2 a : standardized text b : formulaic or hackneyed language <bureaucratic boilerplate>
3 : tightly packed icy snow



うーん、わからん (´゚ω゚`)

2 かな・・・
982デフォルトの名無しさん:2010/04/29(木) 19:11:13
涙拭けよ
983デフォルトの名無しさん:2010/04/29(木) 19:12:04
× 頭が悪い
○ かわいそう
984デフォルトの名無しさん:2010/04/29(木) 19:12:23
>>974
最低限の知識…いや、自分は読んだとき知らなかったけど、5.1を読み、そこで紹介されてる
web頁見るかwikiでもつつくかして、まあこんなもんがあるのか位に思えば済んだ事だけどね

そろそろ次スレ建てましょうか?
985デフォルトの名無しさん:2010/04/29(木) 19:16:05

オブジェクト内のパラメータが増えるとセッター/ゲッターメソッドが増えてメンドいという経験がないと、ボイラープレートが云々の話はムズいと思う。
「type はただのシノニム」という説明もかえってムズい。
986デフォルトの名無しさん:2010/04/29(木) 19:18:03
そこでdata-accessorやfclabelsですよ
987デフォルトの名無しさん:2010/04/29(木) 19:18:29
>>985
???
その前の部分を読んでいれば、Haskellでも抽象度の低いboilerplateな書き方は
読みにくいのがわかるはずだが?
988デフォルトの名無しさん:2010/04/29(木) 19:19:23
おまいら次スレが重複したら自決してくださいね
989デフォルトの名無しさん:2010/04/29(木) 19:24:48
関数型プログラミング言語Haskell Part12
ttp://pc12.2ch.net/test/read.cgi/tech/1272536128/
990デフォルトの名無しさん:2010/04/29(木) 19:29:47
>>57
例えば57ページだけど、ボイラープレートでも読みやすいけど。
nicerID (Book id _ _ ) = id
nicerTitle (Book _ title _ ) = title
nicerAuthors (Book _ _ authors) = authors

ここの説明だけ読むと、分かりやすいけどただコードをたくさん書くのがウンザりだから、ボイラープレートコードを避けてるようにしか見えない。
991デフォルトの名無しさん:2010/04/29(木) 19:32:06
>>990
誰に対して言ってるんだ?
992デフォルトの名無しさん:2010/04/29(木) 19:39:30
>>989
おつおつ
993デフォルトの名無しさん:2010/04/29(木) 19:40:33
JSON が実際にどういうものかはどうでも良いと思うよ。
JSON という名前がついたシリアライズの方法のひとつを例に取るというだけのこと。
数値や文字列、オブジェクトなどを簡単な文字列でシリアライズする
というくらいの前知識だけで、[5.6 JSON データを印字する] から
構文木をたどって処理する方法を学ぶのに十分だよ。
(最低限の簡単な前知識はその前の節で説明されてるし)。

俺も JSON が何か知らずに読み初めたけど方法論を学べたし、
理解できた後でも未だに JSON なんて実際に一回も使ったことがない。
994デフォルトの名無しさん:2010/04/29(木) 20:07:35
できれば、「シリアライズ」の説明も欲しかった
前後にバイトコードの話もあったから、混乱するっちゃ
995デフォルトの名無しさん:2010/04/29(木) 20:28:03
もう日本語の説明が必要って話だね。
いや、"Real World"って立ち位置で作者は良くまとめてくれていると思うよ。
996デフォルトの名無しさん:2010/04/29(木) 20:32:14
本屋に行ってHaskellの本を探して、ふつうのHaskellとRWHしかなくて、両方買って、始めにふつうの方を読んで、その後でふつうの続編の感覚でRWH読んだら死亡ですか
997デフォルトの名無しさん:2010/04/29(木) 20:39:58
人によってはそうかもしれないけど、間を埋める本があるわけじゃない。
プログラミングHaskellはふつうと並ぶ立ち位置だよね?
998デフォルトの名無しさん:2010/04/29(木) 20:47:20
>>994
いまどきの子は直列化とか言われたら単三電池ですかって答えるぞ
埋め
999デフォルトの名無しさん:2010/04/29(木) 20:49:54
Haskell: The Craft of Functional Programming

The Haskell School of Expression: Learning Functional Programming through Multimedia

The Haskell Road To Logic, Maths And Programming

洋書で分かりやすいのってどれですか?

1000はあきらめた
1000デフォルトの名無しさん:2010/04/29(木) 20:55:28
はじめてのCレベルの入門書はどれでしょうか?
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。