LONE STAR RUBY CONFERENCE 2008へ 出席するために航空券を購入。マイレージプログラムでもらったJALの 国際線アップグレード券を使おうと考えたが、残念ながら私の購入したチケットでは 対象にならないとのこと。このためにわざわざPEXチケットにしたのだが、 それでもまだダメだったらしい。
相当高いチケットでないとアップグレード券は使えないみたい。 「クラスY」なら使えると聞いてこれは出来ると思ったんだが(他社ではいつもクラスYに乗ってる)。
生涯初のビジネスクラスかとワクワクしたんだけどなあ(貧乏性)。 どうやら縁がないらしい。
『実践CommonLisp』を読んでいる
11.9 シーケンス述語(p.133)によると、CommonLispには every, some, notany, noteveryの4つのシーケンスがあるらしい。
Rubyとは
という対応になるようだ。noteveryに相当するものは不要なんだろうか。 使いみちが思いつかないけど。必要だとすると名前は?
「Universal High-level Languageが欲しい」という話。 で、Python, Ruby, C#, Erlang, Haskell, Forth, Scheme, CommonLispときて、 どれもその域には到達していないという結論。
とはいえ、Rubyを「clean Perl」と断言しちゃうのはどうかと。
しかし、この文章はもうちょっと深読みが出来る。
Pythonに始まる「非Lisp系」言語についてはいろいろと足りないことを列挙しているのだが(その批判が正当かどうかは置いとく)、 Lisp系言語については
と明らかに態度が違う。
どうやら筆者にとっては「Universal High-level Language」とは
という「定義」が、おそらくは無意識のうちにできちゃってるんだろうな。
しかし、いみじくも筆者本人も書いているように「過去の歴史を振り返る(has been proven by history)」と Lispの持つある種の特性は、「一般人」を遠ざける効果があるように感じられる。 一般人に受け入れられずにどうやってUniversalになることができるのかと。
ということは、このふたつはお互いに矛盾するということではないか。
Lisper(またはLisp wannabe)の態度としては、
のいずれかではないか。いや、純Lisperは後者を目指さないのかもしれないけど。
それでも(Lisperであるというより単なるwannabeである私の視点からは)後者の方が 望みがあるように思える。 もちろん、どのHigh-levelさを受け入れて、どれを受け入れないかは かなり恣意的で設計者の好みや思想を色濃く反映するだろう。
が、ArcにしてもRubyにしてもそういう試みで、そのようなアプローチの先にこそ Universal High-level Languageがあるんじゃないかな。 もっとも「Universal High-level」の定義は筆者の人とは違っちゃうかもしれないけど。
『Pirates of Carribean: The World's End』を見てたら、 Jack Sparrowが「git」と仰せられてた。発音は「ぎっと」。
辞書を引くと「ろくでなし」とか「ばか」とかいう意味らしい。 そういえばgit登場当時、自分の作るツールに反語的に悪い意味を付ける伝統について 語る記事を読んだような気がする(gawk(朴念仁)とか)。
というわけで、やはりgitは「ぎっと」と発音すべきなんだろう。 でも、stg(stack git)とか「すたっくぎっと」とは発音しにくいなぁ。
This work is licensed under a Creative Commons License.
自分でも解りにくいので、ネットで調べました。この例を見つけました。<br><br> (every #'characterp "abc") => true<br> (some #'= '(1 2 3 4 5) '(5 4 3 2 1)) => true<br> (notevery #'< '(1 2 3 4) '(5 6 7 8) '(9 10 11 12)) => false<br> (notany #'> '(1 2 3 4) '(5 6 7 8) '(9 10 11 12)) => true <br><br><br> (notany predicate sequence*) == (not (some predicate sequence*))<br> (notevery predicate sequence*) == (not (every predicate sequence*))<br><br>noteveryはただeveryの否定形ではありませんか?ならばifとunlessの同じ様ににしてみたら、any?の反対としてnever?はいかがでしょうか?<br><br>* every → all?<br>* some → any?<br>* notany → none?<br>* notevery → never?<br><br>お邪魔しました〜
linusは何かのインタビューで僕は自分のソフトに自分に関した名前をつけるようにしている。だからLinuxとつけて今度はgitとつけた。<br>とか何とか言っていた記憶があります。<br>余談ながら
Universal language ってのは scheme とか C のように自身のインタープリタ/コンパイラを書ける言語って習った気がするのですが,それを支持するソースが見つかりません。つまり,世間一般の universeじゃなくて言語空間の universe を自分で記述でき(勝手に拡張でき)る。http://en.wikipedia.org/wiki/Self-interpreter に関連したことが書いていますが,universal という言葉は出てきません。<br>High-level に関しては「ガベコレ,コレクション,その他便利なライブラリ」だと解釈すれば,言語拡張が十八番の Ruby は "Universal High-level Language" だし,Lisp の受け入れられがたい文法を使いやすくしてくれた Ruby は an acceptable Lisp って言ってる Kidd氏の記事にあれこれ言ってる Vsevolod氏はポイントを外してるのではないでしょうか。<br>言語で頑張らなくても仮想機械で統一化できる現代では universal っていうこと自体が古い考えのような気もしますが。
"What is a Universal Higher-Order Programming Language?" http://www.cs.rice.edu/CS/PLT/Publications/Scheme/ によると,A programming language L is universal for domain D iff the language can express all the computable elements of D and all the computable functions over D.<br>とありますので変域あっての universality みたいです。
「42」という言語はないのかな。
noteveryは「真でないものがある」ですが、neverでは「すべて真ではない」(=notany)でしょう。<br><br>不要というより、noteveryに相当する平易な単語が自然言語にないということなのでは。