[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 05/09 22:36 / Filesize : 235 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

「コンパイラ・スクリプトエンジン」相談室9



1 名前:デフォルトの名無しさん [2005/12/20(火) 21:43:02 ]
プログラミング言語処理系の開発に興味のある人達のスレッドです。

字句解析・構文解析から,データフロー解析,ループ並列化,データ分散,SSA変換,
CPS変換,レジスタ割付,命令スケジューリング,ソフトウェアパイプライン,
SIMD命令生成,VLIW向けクラスタリング,スクラッチメモリ向け最適化,リンク時最適化,
JIT,動的バイナリ変換等の各種最適化,それにVM,GC,低消費電力化などなど。
意味論に関する話題も歓迎です。

過去スレ
1 pc.2ch.net/tech/kako/981/981672957.html
2 pc2.2ch.net/test/read.cgi/tech/1021136715/
3 pc5.2ch.net/test/read.cgi/tech/1070089173/
4 pc5.2ch.net/test/read.cgi/tech/1100097050/
5 pc8.2ch.net/test/read.cgi/tech/1106129164/
6 pc8.2ch.net/test/read.cgi/tech/1115335709/
7 pc8.2ch.net/test/read.cgi/tech/1129287390/
8 pc8.2ch.net/test/read.cgi/tech/1131273918/
関連リンクは多分 >>2-10 あたり

137 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 01:24:14 ]
Rubyが出てきた頃は、最初からオブジェクト指向を元に設計されてる
スクリプト言語が無かった。
今では珍しくもないと思われるかもしれないが。

138 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 02:21:53 ]
Lisp系言語を作っても、ほぼLisp系言語愛好者(超少数派)しか注目しない
しかも、Lisp系言語愛好者は多少浮気をしたところで、
必ず最後はメジャー(少数派の中でだが)なCLかSchemeに戻る
したがって、どうあがいてもユーザーはほとんど出来ないだろうね

139 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 02:24:17 ]
え?Lispなんて超がつくほどメジャーな部類では?

140 名前:デフォルトの名無しさん [2006/01/04(水) 02:30:58 ]
メジャーな言語一覧。
www.answers.com/topic/list-of-programming-languages
ここに載ってないのがマイナーの条件。

141 名前:デフォルトの名無しさん [2006/01/04(水) 02:42:32 ]
>>140
Hspとなでしこは世界ではダメだったか・・・
世界的にはRubyのほうが知名度高いんだな。

142 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 03:15:58 ]
やっぱりLispですね
議論はここに戻る
遠回りするアホは嘲笑の対象だね

143 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 03:24:58 ]
お願いだから、あんまり Lisp を釣りネタに使わないでくれ。

144 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 04:27:34 ]
>>139
Lispがマイナー言語だとは書いてないだろ
Lisp愛好者が超少数派と書いたんだ
Lisp愛好者が多数派だと、本気で思ってるなら
死んだほうが良くねえか?
少なくとも、ボケ老人レベルの判断力としか思えんわ

145 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 05:31:54 ]
全体の割合で見たら超少数派かもしれんが、
A言語愛好家、B言語愛好家、C言語愛好家、
〜言語愛好家って、たくさん見てけば超人数
多い部類だと思うが。



146 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 05:40:35 ]
"Cが好き" の検索結果 約 440 件
"Lispが好き" の検索結果 約 316 件
"Javaが好き" の検索結果 約 259 件
"Rubyが好き" の検索結果 約 186 件
"C++が好き" の検索結果 約 175 件
"Perlが好き" の検索結果 約 134 件
"Pascalが好き" の検索結果 約 57 件
"Basicが好き" の検索結果 約 25 件


147 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 05:49:19 ]
Lisp愛好者って最近になってちょっと増えたんじゃないか?
高学歴の若者にファンが多い気がする。

148 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 05:55:12 ]
>>146
"Cが好き"は別回答含んでねぇか?


149 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 06:02:24 ]
ウェブ全体から検索で

"I love Ruby" の検索結果 約 21,500 件
"I love Java" の検索結果 約 17,200 件
"I love C" の検索結果 約 13,800 件
"I love Perl" の検索結果 約 9,980 件
"I love C++" の検索結果 約 1,610 件
"I love Basic" の検索結果 約 1,290 件
"I love Lisp" の検索結果 約 310 件

いろんな意味で m9(^Д^)プギャー!!

150 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 06:09:34 ]
vのあとのlは比較的発音しにくいからな。
likeにしてみると多少マシなんじゃないかな?
やってないけど

151 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 06:13:08 ]
"Lisp hacker" の検索結果 約 17,200 件中
"Java hacker" の検索結果 約 14,800 件中
"C++ hacker" の検索結果 約 1,540 件中
"Ruby hacker" の検索結果 約 969 件中

152 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 06:17:53 ]
>>150
"I like Ruby" の検索結果 約 15,700 件
"I like Perl" の検索結果 約 14,600 件
"I like Java" の検索結果 約 14,000 件
"I like C" の検索結果 約 11,000 件
"I like Basic" の検索結果 約 1,600 件
"I like Lisp" の検索結果 約 653 件
"I like C++" の検索結果 約 508 件

なるほど、確かに多少マシだw

おまけ。

"Pythonが好き" の検索結果 約 91 件
"I love Python" の検索結果 約 12,100 件
"I like Python" の検索結果 約 24,300 件
"Python hacker" の検索結果 約 808 件

153 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 06:21:59 ]
>>152
しかし、C++より多いのか。
いずれにせよ、それら超メジャー言語と張り合う程度に
愛好家はいるんだから、超少数派というのは当ては
まらないのではないか?

154 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 06:23:58 ]
Lisp Hackerが多いってのがLispを象徴してるな。
Lisperっていうメジャーな代替表現があるのにこれはすごい。

155 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 06:30:48 ]
おまいらプラス思考だな。
まあ、Ruby 厨の俺から見ても Lisp が超少数派なわきゃないと思うけどね。

>>153
C++ は確かに超メジャー言語だが、
"I love C++" "I like C++" って発言するほど C++ 自体が好きな奴って
あんまりいないんじゃないかという先入観がある。

>>154
Lisp Hacker ≒ Paul Graham



156 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 06:31:23 ]
とりあえず、PythonとRubyは人名と宝石が引っかかってるぞ。

157 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 06:36:19 ]
>>156
今じゃ誰もこんなこと言わないとわかっているが敢えて言わせて貰おう。
ネタにマジレスカコワルイ

158 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 08:00:51 ]
まあ何だ。こと布教にかけては、本職の宣教師が最強だったってことじゃねえ?

159 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 08:28:35 ]
話題がRubyに向かいやすいのは、Rubyの人気が出たことに対する
言語設計者の嫉妬にみえなくもない

160 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 08:44:56 ]
このスレではRubyのソース読んだ人の割合が他の言語より多いってのも多少関係するかと。
ソースコード完全解説が出版されるはオンラインで公開されるは、挙句Matz氏もソース嫁と言わんばかりの勢いだからな。

161 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 09:27:27 ]
308 "I hate Ruby"
743 "I hate Perl"
15500 "I hate Java"
726 "I hate C"
988 "I hate Basic"
257 "I hate Lisp"
1320 "I hate C++"

Javaダントツ人気で砂

162 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 09:32:26 ]
何が嫌いということもないけれど
わざわざ触りたいという気には不思議とならない

163 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 10:00:09 ]
Python Python!
www.boingboing.net/2006/01/02/twoheaded_snake_for_.html

164 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 10:04:42 ]
ていうか、JavaとかBasicとかも違うのひっかかってるから。

165 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 10:24:01 ]
まあ検索なんかに頼らなくても、
愛好家の数で言ったら、大体

C++、Java、Perl、Pythonなど>Ruby、Delphi、VBなど>Lisp、Basic、Pascalなど
>Cobol、PL/I、Fortran、Prologなど>>>>>>>>>マイナー言語の数々

って感じになるのは、これらを知ってる奴なら納得するだろ?




166 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 10:49:03 ]
年も改まったのに頭の中は進歩しない奴ばっかりだな。
処理系の実装に関係ない話はどっかよそでやってくれ。


167 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 11:00:34 ]
処理系と関係ないようでいて間接的に関係あります。

処理系を作っても、特徴がなければただの俺言語になる。
特徴があってもLispのように超少数派になる。
いや、Lispは超少数派ではない。←いまここ

168 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 11:04:45 ]
特徴の有無が問題なのかよ
レベル低いなあ

169 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 11:06:55 ]
特徴の有無は問題だろ
レベル低いなあ

↑これと同じくらいお前の論理は無意味

170 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 11:46:48 ]
なんか、このスレすごいレベル低い・・・もうお気に入りから消そうかな・・・

皆さん、どう思います?

171 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 11:48:34 ]
>>165
愛好家ってカテゴリだったらC++の位置はそこじゃねぇだろ、実用性じゃダントツだってのは認めるけどさ。
チームに一人デコ助がいるだけで地獄を「簡単」にみられる言語の筆頭だぜ。




172 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 11:50:58 ]
もうスレ違い議論はやめてくれr
いつから言語比較スレになったんだ?

173 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 11:54:05 ]
言語比較ほどの価値もないな。
個人個人が好き勝手に好きな言語を推しているに過ぎない。
検索結果がどうのこうのしょうもない外人が書いたようなリストを持ち出そうが、そんなもんが言語研究と何の関係があるんだよ。
お前らもうちょっと理性的に考えたらどうなんだ?

174 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 12:07:59 ]
自分の好きな言語を押し付けたいだけの厨にそんな事言っても無視するだけだろうな

175 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 12:09:19 ]
>>167
第二段が間違ってるぞ
「特徴があってもLisp系ではLisperしか食いつかないうえ、
 Lisperは試食しただけで、またCL Schemeに戻る」だ



176 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 12:20:32 ]
特徴を「他の言語との比較」に頼ってるあたりが
井の中の蛙臭さの原因なんじゃなかろうか

177 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 12:27:35 ]
まあLispとIoを組み合わせるなんて、いかにも中途半端なオタクが
考えそうなありふれたアイディア。
目だった特徴にはならん。

178 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 12:28:37 ]
>>176
原因はむしろ比較の基準が使用者の人口なことじゃね?


179 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 12:31:14 ]
IoってSmalltalkみたいなもんだろ?
CLOSじゃいかんのか?

180 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 12:34:10 ]
Smalltalkはフォロワーを生み出してるところが偉大だな。
LispもSchemeやJavaScript、果てはRubyやPythonに至るまで
フォロワーを生み出したことに凄さがある。

181 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 12:42:45 ]
そうニダ
Lisp起源ニダ
Ioも実はLispが起源ニダ

182 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 12:50:07 ]
>>181
そもそもSmalltalkがLisp起源・・・

183 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 12:51:57 ]
やっぱりLispですね
議論はここに戻る
遠回りするアホは嘲笑の対象だね

184 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 13:13:39 ]
>>180
そうだな。何だかんだ言われても、HSPにもフォロワーはいるからな


185 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 13:23:41 ]
フォロワーで言ったらCも相当なものだな



186 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 15:14:22 ]
HSPにフォロワーはいるのかもしれないが、有名なフォロワーはいないな。

187 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 15:26:07 ]
フォロワーってフォローする人の事じゃないの??

188 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 15:44:26 ]
そうだな。「信者」の類義語とかかな。

189 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 16:26:19 ]
小室です

今年は、環境ごとにミニ言語をさくっとでっち上げるのが
来ます

190 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 17:38:44 ]
人じゃなくても概念や物でも擬人化して考えれば可じゃないか?

191 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 17:41:28 ]
>141
Hspとなでしこって何?って素で思ったよ。漏れはorz
結構はびこってやがったのねん

192 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 17:46:36 ]
>>180の言う「〜のフォロワー」は「〜に大きく影響されて生み出された言語」
という意味だろ。

193 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 18:12:27 ]
ワカメちゃん・・・
  僕らはもっと、早く、

出会うべき、ダッタ、のかも、
               ウゥン・・・マスオ兄さん
シレナヒ・・・
             ダッテ・・・もっと早かったらァ・・・
               
                私ィ、赤チャンだyo^
イイの・・・
イイの・・・

イイ!!

194 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 18:33:22 ]
今日 Essentials of Programming Language を読了した
すごくいい本だった
中身は scheme で ML 作る本だった
多相型、型推論、CPS変換まで丁寧すぎるぐらいだった
Friedman 本にハズレないっすわ

195 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 19:04:33 ]
>>194
> 今日 Essentials of Programming Language を読了した
> すごくいい本だった
> 中身は scheme で ML 作る本だった
> 多相型、型推論、CPS変換まで丁寧すぎるぐらいだった
> Friedman 本にハズレないっすわ
大学院のとき、輪講でその本やったんだけど、俺、当時CPSで
脱落しました。orz
今でも、継続を使ったコルーチンなど、どうしてこうなるのか理解
できません。
今は、SICPからやりなおしています。EOPLには、機会を見て再挑戦
したいと思います。



196 名前:デフォルトの名無しさん [2006/01/04(水) 19:38:32 ]
やっぱりLispなんですね。
時が流れても、原点はLispであることを認識することができました。

197 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 20:03:15 ]
Lispは機械語で作られてます。
時代が流れても、原点は機械語です。

198 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 20:16:08 ]
こんな感じでスレ立てようか?

--- 言語処理系開発議論スレ ---
コンパイラ・スクリプトエンジン相談室があまりにアホばっかなんで立てました。
このスレの話題は処理系の実装に関する議論に限定します。

言語の善し悪しなどは遠慮ください。
つまり、実装の議論に直接関わらない限り言語のデザインに関する議論、
もちろんどの言語が優れているだの使われる言語がえらいだの特徴がどうだの
成功失敗だのユーザがどうだのどの言語が起源だのなどなどの議論は禁止。
処理系をどの言語で実装するのがいいだのも禁止。

過疎上等、高S/N比優先でいきましょう。
くだらなくてもにぎわってる方がいいという方にはもっとよいスレがあります↓

関連スレ:
「コンパイラ・スクリプトエンジン相談室」という名の言語比較厨隔離スレ
pc8.2ch.net/test/read.cgi/tech/1135082582/l50


199 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 20:18:33 ]
機械語は二進数の数字で出来ています。
時代が流れても、原点は二進数の数字です。

200 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 20:21:25 ]
Lispにしろ機械語にしろ、コンピュータで実現可能なアルゴリズムはチューリングマシンで実現可能なことと同値です。
時代が流れても、原点はチューリングマシンです。

201 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 20:27:47 ]
チューリングマシンで実現可能なことは、λ計算で全て書けます。
時代が流れても、原点はλ計算です。


202 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 20:39:45 ]
お久しぶりです、実装について質問させてくださいまし
クロージャの実装についてですが例えば、以下のソース

(let ((a 0))
(define hoge (lambda (x) (+ a x))))

を eval する際に、クロージャ hoge をどのようにクラス化
するかについてですが、
トップ環境フレームを top 、矢印は親を指すとして上の例だと

top <- frame1(aを束縛している)

のようにフレームが伸びていて、クロージャオブジェクトは
frame1へのポインタをメンバに持つように作成したとします

で、このクロージャへの呼び出しをするとき、例えば (hoge 10)としたとき
top <- frame2(10を束縛)
のように別フレームが伸びるじゃないですか。
このとき、(hoge 10)を評価するときに必要な環境として2つの連結リスト
top <- frame1
top <- frame2
が二つ必要になる?という見解はあってますか?評価手順としては
x の検索を frame1 に対してかける(見つかる)
a の検索を frame1 に対してかける(見つからない)
a の検索を frame2(クロージャクラスのメンバ変数) に対してかける(見つかる)
を順次探しにいく、という風にするという考え方?で良いのでしょうか
なんか上手く日本語化できなかったorzけど
壮大な勘違いをしている可能性もありそうなのでアドバイス求む

203 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 20:40:52 ]
アホとは、Lispをあえて避ける行為のことでしょうか。

204 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 20:52:31 ]
>>198
実装に関する質問だったらレベル低くてもOK?
当方このスレにかなり助けられているので相談できなくなるのは寂しい

205 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 20:59:23 ]
>>198は他人がレベルを高くしてくれるのを待ってるだけの他力本願野郎。
誰も同意しないので、気にするでない。



206 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 21:04:09 ]
>>202
んー、素直にやるなら、hogeの中の評価時には
top <- frame1 <- frame2
ってならない? 内側から探してけば自然にレキシカルスコープに
なると思うけど。


207 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 21:14:05 ]
俺言語作ってる様な奴は大抵秘匿主義だからな。
俺もそう。
こんなスレのレベルが高くなるわけないだろ。

208 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 21:36:59 ]
>>207
俺なんかこのスレの誰も及ばないくらいレベル高いことを秘匿してるけどな。

209 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 23:25:42 ]
>>202
(let ((a 0))
  (define hoge (lambda (x) (+ a x))))
(hoge 10)
だと、3行目ではシンボルhogeに値が束縛されてないと思うぞ。

(define hoge #f)
(let ((a 0)) ; frame1
  (set! hoge (lambda (x) (+ a x)))) ; frame2
(hoge 10)

たぶん↑のようにしたいんだと思うけど、
この場合だと、letを評価した時点でframe1が作られ、top <- frame1 になり、
lambdaで作られた手続きは top <- frame1 の frame1 部分を参照する。
で、(hoge 10)が評価されたときに frame2 が作られて
top <- frame1 <- frame2 になる。
あとはaを検索するときは上から順に。という感じかな。

top <- frame2 のようなリスト(か何か)も必要になるけど、
これは継続絡みの話だと思う。

210 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 23:26:23 ]
このスレ役に立つレスは>>1-6まで
あとは屑

211 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 23:26:28 ]
>>181
>Lisp起源ニダ
>Ioも実はLispが起源ニダ

Ioじゃないけどそれに近い主張と、
shiro.dreamhost.com/scheme/trans/icad-j.html

それに対する反論。
shiro.dreamhost.com/scheme/trans/IsPythonLisp-j.html

反論側のほうが説得力あるような。
>LispのS式表記は、声高に、はっきりと、過去半世紀の間拒否されてきた。

まったくだ。

Lisp信者の改宗の話。
www.gembook.jp/tsum/page.pys?wiki=How+I+lost+my+faith

212 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 23:29:14 ]
俺には反論側のほうが全く説得力ないように見えるけどな。

213 名前:デフォルトの名無しさん [2006/01/04(水) 23:33:08 ]
>>211
最後の記事を実際に見てみると、Lisp信者が改宗した話というよりは、
Lisp信者がLispを絶賛してる話にしか見えないぞ。

214 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 23:39:29 ]
スレ違いも甚だしい
これだからLisp厨は・・・

215 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 23:40:21 ]
211はどう見てもアンチLispだがな。
Lisp厨=アンチLispだったら同意。



216 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 23:40:36 ]
> 他人がレベルを高くしてくれるのを待ってるだけの他力本願野郎

待つのを諦めたからの提案だと思うけど。


217 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 23:41:10 ]
>LispのS式表記は、声高に、はっきりと、過去半世紀の間拒否されてきた。

これってどういう意味で言ってるのか知らないけど、括弧がネストしすぎると
見難いとかめんどくさいとかなら、Lisp信者でもそう思ってると思うぞ。

218 名前:デフォルトの名無しさん mailto:sage [2006/01/04(水) 23:46:40 ]
>>216
待ってないで自分で書き込めばいいのにね。

219 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 00:04:53 ]
>>206,209
THX!! なんとなくわかってきたような。

hoge に束縛された closureオブジェクトは
メンバに top->frame1 のフレームリストをメンバに持っている、と。
で、(hoge 10) という関数呼び出しを評価するとき
hoge はクロージャなので、hoge.env( top->frame1 ) に対して、frame2(10を束縛)を
リストに連結して評価する( top->frame1->frame2 )、と。
もし hoge がプリミティブなら掴んだ環境を持っていないので、
素直に10を束縛したフレーム(frame'とする)を
top に連結して( top->frame' )評価する、ということでしょうかね?

>>209
>あとはaを検索するときは上から順に。
上からというのは最下層からということですか。
top からではないですよね?

ありがとうございました。

220 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 00:13:24 ]
S 式を叩けば良いみたいな風潮は何とかならんかね。頭悪過ぎなんだが。

221 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 00:36:57 ]
つか、S式のメリットって、マクロ以外にあるの?
そのマクロにしてからが、

www.rubyist.net/~matz/20030910.html
>マクロは生産性の向上には有効、わかりやすさにはかなり不利

って言われてたりするわけだが。

222 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 00:56:31 ]
知らない/調べない/でも批判する...

223 名前:209 mailto:sage [2006/01/05(木) 00:58:00 ]
>>219
> 上からというのは
frame2側からね。

> もし hoge がプリミティブなら掴んだ環境を持っていないので…
プリミティブって、トップレベルで定義された手続きの事かな?
1. topを普通のフレームと同じように扱って、
  NULL <- top <- frame1 <- frame2 ....
  トップベルで定義された手続きはtop環境を参照。

2. topを特別なフレームと考えて
  NULL <- frame1 <- frame2 ...
  (検索して見つからなかったらtopから検索)
  トップレベルで定義された手続きはNULLを参照。

の、どっちかかな。

>>221
個人的には、リストがやたらと扱いやすいことを挙げたい。

>マクロは生産性の向上には有効、わかりやすさにはかなり不利
「構文を言語のユーザが拡張する」という考えに慣れていないだけだと思う。
matz氏自身、Rubyの構文の拡張を何度も行っているが、
Rubyを拡張したことでRubyがわかりづらくなったと本人は言ってないよね?

224 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 01:25:28 ]
>>223
>個人的には、リストがやたらと扱いやすいことを挙げたい。

それは、リスト部分だけ、たいがいのスクリプト言語にある配列のリテラル
みたいに表記できるだけでは不足なの?
あとは簡潔に記述できるクロージャがあれば、(処理を変数などに代入することも
できるんだから)プログラムコードまでS式である必要は薄いんじゃ、って
疑問なんだけど。

>「構文を言語のユーザが拡張する」という考えに慣れていないだけだと思う。

ていうかその考え自体に批判的なんじゃないかなあ。
C++のオペレータオーバロードが、同じ文脈でよく批判されるよね?
Rubyの場合、Matz氏は言語設計者なんだから、拡張しても問題なし、
でもユーザがやるのは許さん、と。


225 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 01:43:42 ]
そんなに知りたかったら自分で触ってみろよ。



226 名前:223 mailto:sage [2006/01/05(木) 02:52:56 ]
>>224
> リスト
「後ろ半分だけ実体が共通なリスト」とか、
「変数aの参照しているリストの3番目以降のリストを変数bに参照させたい」とか。
全体から見ると、リストというよりはグラフになるのか。
このスレに沿った話題だと、
構文木をいじったり、クロージャのリストを実装したりが簡単。

> プログラムコードまでS式である必要は薄いんじゃ
マクロを一切使わないなら必要ないんじゃない?
自分の作りたいプログラムを書くのに十分な構文をサポートしている言語が
常にあるなら、と読み替えてもいいけど。

> C++のオペレータオーバロードが、同じ文脈で
その辺の話なら同意。
利点欠点は大体同じだよね。
マクロの利点欠点ははオペレータオーバロードよりもずっと大きいけど。

227 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 07:25:37 ]
>マクロは生産性の向上には有効、わかりやすさにはかなり不利

いいんじゃない?生産性が上がればいいんだし。

228 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 12:01:40 ]
>>211
御大ですら自分の好きな言語が一番素敵厨かYo!と思いマスタ(w


229 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 12:18:15 ]
他人を改宗させようとは思わないけれど。
頭の中でコードを考えてる時はグラフなわけ。
S式だとそれをそのままシンプルに書き下せる感じがする。
そして、Emacsの式単位 (文字単位や行単位でなく) の編集は
頭の中のグラフを直接いじっている感覚がある。
他の構文は、読むときも書くときもいちいち頭の中の
構造と字面とを翻訳してやらないとならないんでかえって面倒。

230 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 13:25:03 ]
a した結果を b して、その結果を c して、その結果を d する
というのを、頭の中では、
(d (c (b (a ... ))))
と考えるんだ、凄い頭だね

231 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 13:41:18 ]
>>230
>a した結果を b して、その結果を c して、その結果を d する

この時点で違ってんじゃないの、Lisp 脳と C 脳では。

232 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 13:50:39 ]
要は人によるってことでおさまりそうな議論だな

233 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 13:52:08 ]
S 式に特定した話というではないが、read/write invariance なのが良いとは聞くね。
計算途中のデータを引っ張りだして、ちょっと修正してまた計算みたいなのを何も考えずに出来る。

234 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 14:58:34 ]
>>230
そっちの方向にネストが深くなるときってのは、だいたい
逆に考えてる。欲しいものが先にあって、最後にdを呼べば
それが得られる、dがその結果を出すためにはcが返す値
が必要で… とトップダウンで。
逆にボトムアップで考えるときはletが深くなる。構造が
見えて来たらどんどん整理するけど。




235 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 15:18:04 ]
>>231
Cでも d(c(b(a(..)))) なんだけど・・・
C++なら、hoge.a().b().c().d() とも出来る(どっちも出来る)が



236 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 15:37:37 ]
>>235
文法の話じゃなくて、「〜して、次に〜する」という手続き的な考え方をしていないんじゃないかって事。

237 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 18:14:22 ]
>>235
あ、それ初めて知った






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<235KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef