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

7つの言語 7つの世界

最近の近所の本屋のソフト系の棚みてびっくらこいた
資格取得系が8割で残りの2割にWordやExcelなんかの本、それとは別の棚にいiPhoneとか専用の棚がある、、、うれんねやなぁ
そのWordやExcelの横に場違いなこの本があった
Prologとか興味あるけどさわる機会も機械もないし、ErlangとかClojureなんか名前見たことはあるけどどんな言語かさっぱわからん


Ruby
ある意味一番普通の言語
でもRubyシンタックスぎょーさんあってどない書くのかよーわからん事がある
高階関数とかMixinとかにページを割いててこの時点で普通の本では無い匂いがプンプンする


Io
前書きにあった「javascriptは大変人気のある言語なので候補から外し、代わりにプロトタイプ言語のIoを選らんだ」とか異常
最初は言語よかその実装に焦点を当ててるかんじ
prototype系の実装は分からんでもないけど、途中からメッセージじゃけんと色々言われるけどいまいちピンとこない
オブジェクト指向C++から入った人やから「レシーバ->メソッド(引数)」をメソッドをメッセージいうとんちゃうのと思わんでもない
こんどもうちょっと読んどこう


Prolog
なんじゃこりゃの世界
データの関係(?)と条件(?)いれたらそれに合致する答えを返してくれる
内部はデータの組み合わせを全数検索してマッチングしてるんやろか?
でも、本読み終わった後気がついたんやけど、そんな事身近にいつもやってるよな? これってSQL?
SQLで1列8行のテーブル作ったら8queen問題ってとけるんやろか? 解きたくないけど


Scala
クラスの中身がそのままコンストラクタになるとか再代入不可なところとか参考になる
前に作りかけた言語でもそのへんの扱いがうまく決めれんかったから
結局再代入不可にしても破壊的操作した時に遅延させ取った分の評価順序どないするんけって所
うんScala関係ないや


Erlang
さっぱり良さも雰囲気も伝わってこない
実際のまとまったコード出てくるのが3日目の章とか遅すぎる、ちょっと読み飛ばし


Clojure
Lisp系らしいがコードが細切れでLispの単純さ関数型の考え方、あと括弧を前面に押してもいいんちゃうかな
紹介するならもっと単純なLispがいいと思うけど
あれは衝撃的だと思うもの、括弧の多さとか


Haskell
リストとかタプルとかひとまず置いといて、世の手続き型言語しかしらない多くの人たちを置いてけぼりにする
変数は変更不可だとか参照透明だとかループが無いとか、じゃどないしてプログラム組むねん!!って思わせてアラできましたって構成のがえがったんじゃないか?
それで余裕こいたところにモナドとかMaybeとか教えてキャインいわす、黄金パターン


使う使わへんは別にして色んな言語の特性が紹介されてて面白い
違う言語で同じ問題を解く、、、って事はあんましないので比較は難しいけど、問題解決に色んな手法があるのが参考なる
なんか作者が関数言語より? 一番オーソドックスなRubyでforループがちょっと出るくらいでmapやeachが多い
最後のHaskellにつなげるためか知らんけどちょっとFPに偏ってる気はする
でもまぁ読んでて面白かった