2486. Re. 2482 Re. 2480 Re. 2479 Re. 247...
亀田馬志 (Nov 22, 2009)
>>LOLOLさん
>そもそもEmacsの構造をシンプルに感じられるほどに理解できるかということなのかもしれないですね。
いや、別に僕も「Emacsの構造」理解していませんよ(笑)。
ただ、馴れちゃった(笑)。
ここで「馴れる」と言う意味は、
1.自分でEmacs Lispは書きたくない(爆)。
2.でも取りあえず探せば「誰かが何か作ってるだろう」と言うアタリを付けれる「コツ」は得た。
3.設定方法は大体拡張ファイル「自体に」書いてある。
4.言われたままに設定するだけ。
なんで、別に「構造熟知してる」なんて言う高尚なモノじゃないです。全然違いますね(笑)。
紫藤さまなんて「昔からEmacs使ってた」人なんで、
「.emacsに以下のコードを記述して……」
とか書いたりしてましたが、それを「やれ」って言われたら僕も逃げ出します(笑)。間違いない、ですね(笑)。
要するに労力避ける為、コピペベースで逃げる知恵を身につけただけ、に過ぎません。Emacsの情報なんかはブ
ログなんかに記述してる人たちも多いんで、役立ちそうなら「全てコピペで」済ませます。
コピペで済まないのなら、逆に言えばEmacsなんか使ってられない、んです。
そして以前書きましたけど、それが「正しいEmacsの使い方」です。歴史的に見て、全てのユーザーが「自分でEmacs
Lispと格闘してた」なんて事はあり得ません。むしろ無かった。
自らEmacs Lispと格闘する人は相当変わり者ですよ(笑)。んで、そう言う変わり者がいるお陰で色々と便利なん
ですよね。
>どっちがいいということもないだろうけど、いろんなelファイルを探してきて
自分で環境を作らないといけないemacsというのは、やはり敷居が低くなることはなさそうですね。
そうですかね?
EclipseやNetBeansでも「プラグインを自力で探す苦労」は結局同じですよ。
例えば、NetBeansでも公式にリポジトリを用意して「全てそこで集めよう」としてますが、かと言って「強制的
に集める」ってわけにもいかないでしょう。だから、当然「漏れ」が出ますし、そう考えていくと実際は大して変
わりません。
Eclipseもその点、当初はNetBeans型の「提供」は考えて無かったようなんで、結局自力で探すのは、こっちの
方が困難でしょうね。漏れてるものは「漏れて」います。
そして、Eclipseはヴァージョンが違うと、レポジトリからの自動インストールが効くものと効かないものがあ
る。ヴァージョン別にEclipse入れても良いんですが、結局手間がかかるでしょう。ディスクスペースももったい
無いですし(笑)。
第二の問題として、Emacs Lispは「インタプリタ」ですから、HTML経由で「テキストページ」としてコードを公
開しておいて、そこからコピペしてファイルを作成して即実行出来ます。
これはJava的にはご法度でしょう。コンパイルしなきゃいけないし、パッケージになってたらこれはそれこそJava
の知識が無い人には手が出せないですね。コンパイルがメンド臭い。
つまり、その点考えると、EclipseやNetBeansは「簡易」って程簡易じゃないんですよ。あくまでパッケージと
して拡張機能が「提供されている」と言う前提があるから成り立つ「簡便性」であって、そしてその前提が崩れれ
ば(そして明らかに崩れている場合がある)説得力は落ちるでしょうね。
>SICPを半年で終わるとなると大変な 話だけど、そういう中で鍛えられているのがMITの連中でしょ。
この辺は、話半分に聞いてた方が良いと思いますよ。
これもブログなんで、裏を取ってる話じゃないんで。
アメリカの大学には「トランスファー」と言う制度があるのを忘れてますね。MITの学生が「全員」ってのはあ
り得ない考えです。
そして、日本の大学のように「4年で卒業せねば」とか「在学期間が8年まで」と言う制限もないんです。全然ガ
チガチじゃない。
しかも、システム的には、途中で大学を止めて、また戻ってきたり、成績が悪そうだったらドロップしたり、必
要な単位が取れなかったら近辺の別の大学で互換がある単位を取得出来たり、と言う「逃げ道」も用意されていま
す。
ですから、そう言う「向こうの大学生の実態」に対して言及してるわけじゃありません。ちょっと向こうを「理
想化」し過ぎてますね。
>こういう教育らしい教育が日本の大学には欠けているんじゃないのかと思いますね。
これも逆です。
むしろMITの方が向こうじゃ「珍しい」んですよ。
「アメリカの大学」とか一緒くたに括っちゃマズいです。
一般的には向こうの大学は「職業訓練校の気」が強いのです。
日本の大学に別に問題が無い、と言う気は無いですが、良くも悪くも「一定のレベルに達してる」と思いますよ
。
>一体どこのSchemeを使っている
R4RS以前の可能性が高い、です。
>atom?なんてのが最初から出てくるけど、そんな関数はmzschemeにはない。
基本的には
(define (atom? x)
(not (pair? x)))
です。
MzSchemeの組み込みで使いたかったら、
(require mzlib/compat)
を評価してください。
なお、Common Lispにはatomと言う関数があって、これは基本的には
(defun atom (x)
(not (consp x)))
です。conspがSchemeで言うpair?にあたります。
古典的なLispの流れでは「コンスセルじゃないもの=atom」と言う定義で、昔のSchemeもそうだったんですが、
現在では仕様上、Schemeにはアトムが定義されていません。
「もう一つのScheme入門」もそうなんですけど、最初にアトムを説明してるScheme入門、ないしは入門書も多い
んです。歴史的な流れ、ですし、これ無しでは初心者向けの概念説明が難しくなる場合があります。
ただ、どのみち、現在のScheme仕様書からアトムは消えてしまいました。
>私のelementaryな理解では、リスト構造よりdot対構造の方が重要なんだけど。
これは正しいと思います。
ただ、以前紫藤さまともやり取りした事あったんですが、「プログラミング初心者向け」をマジメに考えた場合
、果たして、例えばメモリ2つで構成されたポインタ変数、的な説明が必要なのかどうか、難しいんですよ。そも
そも、「超高級言語」であるLisp言語族で、その手の低レベルな「動作」を説明する必要があるのかどうか。この
辺かなり悩ましいと思います。
もちろんLOLOLさんは分かってるでしょうけど、話を聞く限り、Little Schemerと言う書籍の性質考えると、こ
の辺は「consはリスト生成の為の手続きだ」と言う教え方の方が的を得てると思いますね。そもそも対象読者は「
プログラミングをまったく行った事が無い人」で、書籍の目的が「再帰を使いこなす辺りに持っていく」なんじゃ
ないですか?
だから、ある程度「分かっている人」にとってはまだるっこしい説明で当然なんじゃないか、と想像しています
。
- 元ねた:
- 2482 Re. 2480 Re. 2479 Re. 2478 Re. 247...
- フォローアップ: