2011年5月29日

ふつうのHaskell

8章
無名関数、関数合成、部分適用など素晴らしい話だらけの章。
あと興味深いのはポイントフリースタイルについてですね。
こういう話ばっかりだと楽しいばっかりでいいのにな。


9章
型と型クラス。
クラスはいわゆるC++やC#とかのオブジェクト指向のクラスって言うよりも、本にも書いてあるとおりインターフェイス的な扱いみたい。
ただ、ちょっと難しいかな。
多相型とか言われても分からない人とか多そう。
だし自分もイマイチ利点とか分からない。
だけど、型や型クラスの扱いが満足にできるとHaskellの強力な型推論を更に味方につけることができるのかもね。
難しいところだけどさ。


10章
モジュール。
は、ライブラリってところですかね。
インポートとかエクスポートとかそういったことの話。
この章は理解とかそういうことよりもHaskellで用意されている話だから難しいことはないと思う。


11章
モナド。
大問題のモナド。
ちょっと読んだ限りだけど全然、全く意味不明。
Maybeとか全然分からないのですが大丈夫でしょうか?
不安でしょうがないしイヤになってくる、挫折しそうなくらい難しいのだけど。
利点とか説明されても利点がさっぱり理解できないのだけど。
説明されたらそうなんだろうなと思うだけで、イザ自分でこんなこと思いつけるかって言ったら普通に「無理」の一言だと思う。
現状だとそんなもんです。
それが現実です。

2011年5月28日

Haskellたまらないな

面白いな、Haskell。
関数の部分適用とか関数合成素晴らしいですね。
ソースコードが短くなるって言うことは何にも代え難いことですよね。
素晴らしい。
ますますPHPがうんことしか思えない。

ポイントフリースタイルは脊髄反射で行いないといけないらしい。
これは一定の法則があるのだろうけどさ、将来的に慣れてくるといきなりポイントフリースタイルで記述できるようになるのかな。

2011年5月22日

読書中「ふつうのHaskellプログラミング」

昔々、購入したけどさっぱり理解できなくて途中で挫折したのですが、なんとなく思い立って読み返してみました。
そしたら分かる分かる、めちゃくちゃ面白い。
第7章まで読んだのですが、とりあえずパターンとかガード、let、whereあたりはちょっと辛いけどそれ以外は結構理解できてる気がしていいですね。
やっぱりなんだかんだ言ってもそれなりに成長してるんだなと思いました。

非常に強く感じたのが以前に必死で呼んだSICPの内容がすごく役に立ってるってこと。
やっぱり無理してSICP読んだ甲斐があったってもんだよな。
SICPもすごく面白かったからね。
難しかったけど。
今、Haskellやってみても結構理解できるからさ。

改めて読んでみるとすごく面白い内容で、やっぱり理解できているから面白いと感じるわけで、購入当初は全然面白いって思えなくてなに言ってるんだかさっぱり訳分からなかったから途中で読むのやめちゃったんだよね。
モナドとかそんな以前に高階関数とかの時点で終了って感じだったからね。

第7章まで読んだなかだと、第5章の遅延評価が圧倒的に面白い内容ですね。
Haskellの特徴の純粋とか関数の評価方式とかすごく面白い内容で参った。

内容はちょっと難しいかもしれないけどこの本の内容を理解できればプログラミングがもっともっと楽しくなると思う。
今までとはちょっと違った視点からプログラミングを見ることができるようになるかもね。

2011年5月10日

PHPみたいな原始人が扱うような言語は二度と利用したくない

二度と使うかって思うよ。
PHP。
これぞザ・仕事って感じがしていいよね。
っていうか、なんでこんな原始的な言語がこれだけ普及してるか全然わからない。
理解できない。
正直、かなり仕事辞めたくなってきた。
これ以上PHPとかやってたら発狂しそうなんだけど。

2011年5月8日

ただしJavaScriptの様な洗練された言語を利用すると色々と勉強になる

PHPやってみてもさっぱりなにも得るものが無いのだけど、って言うか、PHPってプログラマーの負担が多すぎる言語なんだよな。
こんなクソな言語、原始人しか使わないような気がするのだけど。
石のお金とか、石器時代の人たちだったらものすごくありがたがる言語だと思うのだけど、21世紀の今を生きてるとPHPなんか全然使いたいと思わないよね。
なんでこんなクソな言語がこれだけ利用されているのか全然理解できないのだけど、現代に石器時代の人たちが、特にWebの世界には石器時代から来た人達が多いのだろうか。

JavaScriptの良さを今更取り上げている時点で時代遅れだってことは分かってるのだけど、JavaScriptのpublic、privateとかを学ぶと、いわゆるオブジェクト指向のpublic、private、protectedがいかに野暮ったいかってことだよね。
特にprotectedに関してはまったく不要な余計な機能ってのがよくわかる。
必要なのはprivate、publicのみであって、protectedとか全然不要だってことだよ。

しかし、このクロージャって素晴らしい機能だよな。
自分は今までC#やC++ばっかりやってきたからクロージャってあんまり接したことがなかったのだけど、これは素晴らしい。
どうもいわゆる「C言語系」の言語ってコンピュータの動作原理に縛られてる気がするんだよね。
JavaScriptやってみるとLispの影響をすごく受けている気がするのだけどそうなのかな?

JavaScriptって本当に誤解されてる、なんて言うか割に合わない評価しかされていないなと思うのだけど「うんこJava」と間違えられたり、これまた「うんこActionScript」と同じだと思われたり、昔の悪い印象で正当な評価されてないなと。
現在はクソFlashのうんこActionScript全盛だけど、絶対歴史に残るのはJavaScriptのハズだと思うのだよね。
数百年後、FlashとかActionScriptなんて全然誰も知らないし、あったとしても負の遺産としか認知されていないハズ。
もし、数百年後にプログラミング言語とかあるとしたら絶対JavaScript残ってると思うのだけど。
インターネットとかWebサイトとかあったとしたら絶対JavaScriptあるはず。



とりあえずLisp派としては数百年後にはもっともっとLispが注目されてるとうれしいと思うのだけど。

2011年5月7日

静的言語と動的言語について思うところ

昔は静的言語ばっかりやってました。
最初に大学でプログラミングを学んだ時はC、Fortran。
その後、C++。
仕事ではC++、C#。
そして現在はPHPやJavaScriptを利用することがほとんど。

今日久しぶりにC#でプログラムしてて思ったのだけど、今、動的言語ばっかり利用するようになって改めて思うのは静的言語の方がいいなってことかな。
コンパイラに引数とか型とかチェックしてもらえることはやっぱり素晴らしいことだなと。
JavaScript程度だったらまだいいのだけど、PHPとかでそれなりにプログラミングしてるとやっぱり不便なことの方が多いかな。
メールの問い合わせフォーム程度を作るならコンパイラとかワザワザ必要ないし、フォームの処理自体にそんなにチェックとか必要ないし、コンパイルしないといけないと煩わしさの方が目立ちそうだけどさ。

ポールグレハムなんかは動的言語素晴らしいって言ってるけど、やっぱり静的言語の方がいいかな。