Lisp Scheme Part41 (808レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
745
(1): はちみつ餃子 ◆8X2XSCHEME 07/09(水)13:05 ID:ZKntcAAj(1/7) AAS
オペランドを評価しない関数 fexpr を導入することでスペシャルフォームを手続きと同列にファーストクラスオブジェクトとして扱うアイデアはあるよ。
それを整理して scheme 風言語として構築したものもある。
外部リンク[html]:web.cs.wpi.edu

まあそれはそれとして、
>>738
> 内部的に無名関数を呼ぶことで実装

と最適化の話を繋げるのは意味がわからんぞ。
処理系の実装方法の一部は言語仕様として強制すべきというのが前提になってる?
747: はちみつ餃子 ◆8X2XSCHEME 07/09(水)14:21 ID:ZKntcAAj(2/7) AAS
>>746
> テイルコールはそうでしょ
> 最適化は処理系がやってくれることを保証するので

仕様上は
・正しく末尾再帰が行われていること
・アクティブな末尾呼出しの回数制限がないなら正しく末尾再帰が出来ている
という迂遠な表現になっている。

つまり、何が出来るべきなのかという書き方であって、どう実装すべきかに言及することを避けてる。

同様に処理系のメカニズムに言及することを避けて提案を表現してみてよ。
749
(1): はちみつ餃子 ◆8X2XSCHEME 07/09(水)14:40 ID:ZKntcAAj(3/7) AAS
>>748
テイルコールの説明なんか要らん。 知ってるから。
仕様を変える提案をするなら仕様書にどう書きたいのかで説明してくれと述べてる。
751: はちみつ餃子 ◆8X2XSCHEME 07/09(水)14:57 ID:ZKntcAAj(4/7) AAS
>>750
意味を為さない言葉を何万回繰り返したところで何も変わらんぞ。
妥当な文章を書く能力がないならもう出来ることはない。
論外。 終わり。
762: はちみつ餃子 ◆8X2XSCHEME 07/09(水)16:17 ID:ZKntcAAj(5/7) AAS
最適化するために仕様の改定が必要か?
768: はちみつ餃子 ◆8X2XSCHEME 07/09(水)18:09 ID:ZKntcAAj(6/7) AAS
Scheme はコンパイル結果を気楽に見る方法がないことも多いんだけど……
Gauche だと disasm で見れる。

(define (foo x y) ((lambda(a b)(+ a b)) x y))
(define (bar x y) (+ x y))
(disasm foo)
(disasm bar)

表示の意味がわからなくても foo と bar が同じになっていることはわかるだろう。
(バージョンによるかも?)
ごく普通にそういう最適化はしてる。
773
(1): はちみつ餃子 ◆8X2XSCHEME 07/09(水)22:54 ID:ZKntcAAj(7/7) AAS
>>772
let が lambda に展開される (させる) 例が仕様に書いてあるのはあくまでも挙動の説明に過ぎず、多くのリッチな処理系ではそんな展開はしない。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.035s