魔術師をめざして

魔術師を目指して、相場・数学・プログラム言語を研究しています。

Haskell、知性のテスター

Haskell - http://www.haskell.org/

f:id:fxrobot:20131013131731j:plain

今回 Haskell の名前を取りあげるが内容は取りあげない。うん?

前々回に紹介した Io言語とは違って、Haskell には日本語の情報が十分にあるからというのがその理由だ。日本語によるよい書籍も多い。

f:id:fxrobot:20131013132832j:plain

 ひだりの画像の書籍などすばらしいと思う。

ぼくが読んだ日本語による書籍の中では一番気にいった本だ。プログラミング言語に興味があり Haskell を知らないという人は、この本を読んでもらえたらぼくもうれしい。

ぼくは言語を学ぶのが趣味のようなもので、実際に使う必要がないため、使いこんだ言語というものがない。プロとして取り組んだプログラミング言語アセンブラだけだ。アセンブラについては 1~2年ほどだが、数十万行のコードを書いた経験がある。それは若い頃だが、書くのが速いという評価をもらっていた。

それが唯一であり、あと、C言語をそこそこ、BASIC言語を少々、PerlRubyPythonJava をちょっとだけ、PHP を少々、やはりアセンブラ以外で一番書いたのは JavaScript だ。つまり、ぼくの経験順位は、①アセンブラJavaScriptC言語、ってことだね。

Haskell > C++ > English

うん? これはなんだ。これはね、ぼくが言語を学ぶのに必要と考える「知性」を比較したものなんだ。すべて有名なものを選んでみた。例えば英語だと、時間はかかるかもしれないが僅かな知性で習得できるものだ。何年も留学などするなら、知性を発動する必要もないだろう。英語に恨みがあるのか? 多少ね。:P

ぼくは今、この知性を要しない英語を学び直そうと思っている。恥ずかしい話だが、今日の今まで、英語を習得しようと真剣に考えたことが一度もないのだ。そりゃね、試験のために嫌々学んだことはあるよ。あとね、外資系の企業にいたときは毎月のレポートを英語で書いてもいたんだ。えっ、それなら英語できるだろう。いや、そのレポートといったらひどいもんだったろう。英語っていうより数学的な力で書いていた感じのヤバイやつだ。文法知らない、単語知らない、それでも書いている英語っていったい。XD

ところで、今、実にいろんな本を読んでいるけど、英語が一番楽だね。疲れて集中力が途切れたら英語の本という感じだ。2年以内に英語なら任せてといえるようになりたい。もういい歳のぼくが挑むんだ。そこの君、若い頃にちゃんとやっておけばよかったなんていうんじゃないよ。どんなことだって必要と思うのなら、今からやれば問題ないだろ。先日、90歳から詩を書き始めたという女性がテレビで紹介されていたよ。

さて、C++ は多くの人に使われている言語とされているようだが、実はそうでもないはずだ。C++ の処理系をC言語として使っている人々のほうが圧倒的に多いと思う。しかし、Java が広く普及してからは、その辺りの事情も変わってきているかもしれないとは思う。

いずれにせよ、C++ の全体を完全に習得することは易しいことではないと思う。Haskell はそれ以上だといえると思うのだ。自分の知性レベルについて知りたいと思うのなら、Haskell に挑戦してみるのがおもしろいだろう。実は、この記事で Haskell を学ぶ動機付けにならないものかということで書き始めたのだが、そのための具体性が足りないか。:P

あっ、完全に忘れていたけど、いま思いだしたよ。

f:id:fxrobot:20131013143404j:plain

 APL があった。ぼくは若い頃、この言語に夢中になったのだった。

← APL はこんな感じのプログラミング言語

確かアイバーソンという人が開発したと記憶している。アイバーソンが書いた原書の翻訳本が絶版の上、何処にもなくて、出版社に行ったらコピーをさせてくれたのだ。

ぼくはその会社で何百ページものその本をコピーさせてもらった。今ではあり得ないようなことだが、ぼくにとっては若い頃の思いでとなっている。

APL の手に入る日本語の本はすべて読んだ。プログラムはノートに手書きだ。しかし、実行するための処理系を持っていなかったのだ。まぁ、古い時代の懐かしい話なのだが、こりゃ脱線だね。

本当だったら、今からでも Haskell や APL にのめり込みたいし、数学だって、ぼくが今まで興味を向けなかった分野である整数論や関数論を学びたいという願望もでてきているのだ。ただね、気が多くて夢想家のぼくが、現実世界で成し遂げるべきものたちのために、それらをすべて封印して、向かっていかなくてはならない。それが、ウェブとロボットなのだ。そのための道具としても英語をもうちょっと磨いておきたいということだ。

 ぼくの内面的なことばかり書いても興味がないだろうけど、まぁ、結局は自分のために書いているブログだからね。勘弁してほしい。

さて、最後に知性のテスターとはいかなることかそれを述べたい。Haskell ができるやつは頭がいいとそれをいいたいのか。そうじゃないよ。誰でも知性を高めることはできる。プログラミングという世界に関係する人であるなら、Haskell という知性を高めることに挑戦するための格好の存在が待っているということだ。

今回の記事で、Haskell を知性のテスターだといっているやつがいるんだと、皆さんの記憶に残ってもらえば幸いだ。