[和訳]LYHGG1-1
ところどころ、カタカナとかに変換するのを惜しんでいますが、ご愛嬌を。
※は注釈で、私の解釈に基づいています。
では興じることにします。どこまで続くことやら
http://learnyouahaskell.com/introduction
Introduction
About this tutorial
Learn You a Haskell for Great Good!のウェブサイトにようこそ!これを読もうとしてるなら、Haskellを学ぶいい機会だ※1。よし、それじゃいいところに来たついでに、少しこのtutorialのことを話そう。
このtutorialを書こうと決めた動機は自分のHaskellに対する知識を確固たるものにすること、それとこれから新しくHaskellを学ぶ人たちに自分が学んで得たもので手助けをしたいと思ったからなんだ。インターネット上にはかなりの量のtutorialがあるけど、一つのresourceから学ぶことはなかったんだ※2。だって、tutorialやarticleによって説明の仕方がさまざまなんだから。でも、いろいろなresoureに当たることによって、ここにそれを集約できることがわかったんだ※3。それで、これは他のuseful resourcesの仲間入りをすることと君がHaskellを学ぶ時に好きなものを選ぶ選択肢を増やす試みなんだ。
このtutorialは以前に(C, C++, Java, Python …)などの手続き型言語でのプログラミング経験を持っていて、これまでに(Haskell, ML, OCaml …)などの関数型言語でプログラミング経験がない方を対象にしています。けれど、全くプログラミング経験がなかったとしても大丈夫。ここに来てくれたということはchapterに沿って、きっとHaskellが学べるはず※4
もし、学んでいる最中に困惑したのなら、freenode networkの#haskell channel にでも質問してみるといいよ。そこはとてもいい場所だから※5。次の文省略。
自分は過去に2度かな?理解することに手間取ったことがあったんだ。最初はとても取っ付きにくくて、感触がわからなかったんだ。でも、一度でもその感覚を手にしたら、次からのハードルは楽々に飛び越えられて、疾走できるようになったんだ※6。言おうとしてることわかるよね?最初は奇妙に感じられるかもしれないけど、Haskellはプログラミングに興味があるなら、やるべきだしgreatなんだ。Haskellを学ぶことはプログラミングからたくさんのことを学べるし、とても楽しいんだ。それは君に異なる考え方を強要するけど、next sectionに運んでくれるよ※7。
So what’s Haskell?
Haskellは純粋関数型プログラミング言語なんだ。手続き型プログラミング言語なら、一連のtasksを与えることによって、物事がうまくいくよね。あとはそれに従って実行するだけでしょ。実行途中に値を変更することだってできる。例えば、aという変数に5をsetして、それを他の変数と置き替えることができる。それで、いくつかのactionを繰り返すことで状態遷移をcontrolするに違いない。純粋関数型プログラミング言語では、computerに何をするか、いやいやむしろその変数(中身)が何なのか伝えなくていい。ある数の階乗は1からその数までのすべての数を掛け合わしたものだし、数のリストの合計はリストの先頭の数と先頭の数を除いたリストの合計を足しあわせればいい。それを関数という形式で表現できる。変数に何かをsetできないし、あとでそれを置き換えることもできない。もし仮に、aに5が入ってると言ったとして、それは後で何か別のものに変わったとしても、それが5であったということが言えないんだ。詭弁だって?そう。だから純粋関数型言語において、関数は副作用を持たない。関数にできることは何かを計算してその結果を返すことだけなんだ。最初、これを制約のように思うかもしれないけど、実際にはとても重要な帰結がいくつもあるんだ。2度同じパラメタを渡して関数を呼び出しても、常に同じ計算結果を返してくれるんだ。参照透過性と呼ばれるもので、それはコンパイラにプログラムの振る舞いを正確に伝えるものであり、関数が正しいことや単純な関数を繋ぎ合せて複雑な関数を組み立てることを容易に演繹したり、証明したりできるんだ。
- ※1 そしてgood timing!
- ※2 浮き葉は重ねないと沈まないよね
- ※3 料理に例えるなら、いろいろな具材を集めて、煮詰めて極上のスープを作る。ここは、まさしくmagical melting pot
- ※4 君と同じく、このシリーズはcoolなんだ
- ※5 日本だとどこだろ?
- ※6 何事も突然にカチッとはまることってあるでしょ?嵐の中の航海は大変だけど、抜けたときの体験は最高だよ wired とsmooth sailing
- ※7 Haskell bless you and may the force be with you
週ーくらいの更新を目指そう。
[遊戯]化けモンスター
奥に高層マンションが建っていて、手前には家並があり、そこかしこに電線が交絡しまくっていた。高層マンションは建物自体が果物のブドウのような盛り上がりを見せ、部屋の窓がまるで百目のようだ。それとは逆に、家並はその屋根の高さを揃えていて、一つ一つの家の色や形が異なる。それはまるで違う体節が組み合わさった百足のようだ。電線は絡みに絡み、糸を連想させる。繭から生まれたのはどんなだ?!

[写真]試し撮り
コンデジを新調したので、試し撮りをしてみました。本日は晴天なり。
ちょっとした証拠撮りでも、最近のデジタルカメラは性能が良いですね。似たような構図のものを選択するぐらい、天気良すぎた。



[徒然]
WTP(willingness to pay)という支払い意志額を仮想評価する方法があるらしいのですが、Fanが壊れてPCを修理に出す際、その修理費用がわからない場合、どの金額までなら支払いたいと考えるだろうか?所持金額は決まっているという条件らしい。所持金額が修理費用を上回ろうと下回ろうと支払い金額を少しでも節約したいと思うのは…。ってWTPで扱う対象がどういうものなら、面白いですかね。
<<<>>>
Learn You a Haskell for Great Good!
挿絵もなかなか面白いし、好きだわ。これで学べること priceless!
あー寒くなってきた。冬ですね。
時間が取れれば、日本語訳にでもしてみるか。
[PC]Fan error in ThinkPad X61
電源を付けると、Fan error と画面に出て、強制的に電源が切れるようになりました。前兆として、Fanが異音を発するようになっていたのかもしれません。解体して掃除しましたが、戻らず。PC利用制限として活用するかな。それにしても静かになったわ。
あ、ちなみにFan errorの画面が出ても、その時にEscを押すと通常起動になります。
また、ubuntu tweak, lm-sensors,gkrellm などをinstallしてシステム監視すると、Fan2が止まっているのを確認できました。
[PC][Ubuntu]9.10にアップグレード
昨晩のうちに、upgrade filesをinstallしておいて、朝から9.10に。third partyのsource directoriesが消去されるようだ。scimが日本語入力を受け付けない。
ここを参考に変更。
ThinkPad X61を使用していますが、9.10にしてからbrowzerを起動すると、battery recall のdialogがでました。
bootとshutdownが速くなった気がします。
firefoxも3.5.xが標準になったので、快適です。
VMware Playerも3.0になったみたいなので、こっちもやらないと・・・
[昔話]
- 場を弁えろ、弁えない。
- 雰囲気を察しろ、察しない。
- 間を保て、保たない。
- 神経を張れ、張らない。
- 緊張を解け、解かない。
ただ、そこに野球場があった。
大事な試合のマウンドに立つ投手。緊張からか心音がやけに鳴り響く。ミットに全神経を傾け、構える捕手。打者との間を計りながら、一球、一球と刻まれるカウントは重々しい雰囲気を醸し出す。場は抑え(弁)どころもなく、姿を変える。
白球が青空に吸い込まれた。
<<<>>>
B.W.って言う人いるかな。
[出来事]
いつもどおりジムに行って、プールで泳ぎ、サウナで汗かき、風呂締めしようとしていた。
しかし、サウナ室を出たところであるものがないことに気付いた。
そうだ!ロッカーのキーがない。個人ロッカーのキーはリストバンドが付加されていて、手首に巻けるようになっているし、黄色しているので、ある程度目立つ。
ただ、泳いだ後だったので、手首から外していたのだ(はずだったが、忘れた)。サウナ室に戻るが、ない。
仕方がないので、再度濡れた水着を装着し、プールへ。もしかしたら、泳いでいる最中に外れたのかもしれない。
濡れた水着を着ることが如何に困難なことか。微妙なラインを気にしつつ、プールへ向かう。係員の人にキーを失くしたことを報告し、いっしょにプールの中を探してもらう。が、ない。そうだ。ロッカー室に刺さったままかもしれない。が、どこで着替えてたか忘れた。
習慣的によく使うロッカーの辺りを探すが、刺さっていない。フロントの係員の人にロッカーのカードキー番号を教えてもらった。そうしたら、まったく異なる方向のロッカーで着替えていた。そこにロッカーのキーが刺さっていた。一件落着とはいえ、なんとも申し訳ない気がした。最後、ジムを出るときに挨拶したら、
「よくあることだから、気にしないでください」
が〜ん、「それはどの年代層が多いんですかね」と心の中でつぶやくのだが、「お手数をかけまして、すいませんでした」とすごすご帰ってきた。
私の中で、なにかが弾けた。
それだけならまだしも、靴を預けてるロッカーの番号201を102と見間違えてて、なかなか開かんへんなあと思いつつも、こうやってヒューマンエラーが起こるのかと妙な一般化をしたり、デザインで紛らわしい記号は使わないでおくべきかなどと待っていたホームでどうでもいいことを考えていた矢先、入ってきた電車に乗ったら、それは各駅停車ではなく、私の下車駅を通過する電車だった。
<<<>>>
お腹の調子が悪い。
