トップページ > プログラム > 2015年01月04日 > 368qL5zb

書き込み順位&時間帯一覧

46 位/222 ID中時間01234567891011121314151617181920212223Total
書き込み数1000000000000000000010002



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
Lisp Scheme Part39

書き込みレス一覧

Lisp Scheme Part39
609 :デフォルトの名無しさん[sage]:2015/01/04(日) 00:38:59.42 ID:368qL5zb
>>608
> Lisp-2 であること、パッケージロックの機構

言語機能に加えて問題を避けるノウハウとかプログラマの意識みたいなのもあるわな。

Common Lisp では、処理系は道具なんだからプログラマが間違えたら結果が間違ってるのは当たり前だろみたいな意識があるけど、
Scheme では「原理的に」どうだろうということを考えてしまうところがあると思う。

これは比較できる事実を提示しづらいので異論はあると思うけど、根本的な意識が違うところ向いてる感じはあるんじゃないかな。
Lisp Scheme Part39
615 :デフォルトの名無しさん[sage]:2015/01/04(日) 20:54:40.78 ID:368qL5zb
>>613
> (define-syntax (swap! a b)〜)となぜ書けないの?

それだと一種類のパターンしか書けない。
パターン一個で受けて分解して数種類のパターンと比較して分岐するということをやってたら、結局はそこそこの分量になる。
パターンの分解はどちらにせよ必要であることを考えると最初から仕組として持っていた方が簡単だよ。
R7RS の派生式型の項にある事例 (let とか do とか) を syntax-rules なしで書いてみるといい。 絶対に長くなるから。

> (define-syntax swap!
> (er-macro-transformer
> (lambda (form rename compare)
> とかダラダラ書かせたりするの?

これについては余計と言えば余計ではある。
現時点ではどんな仕組みを底レベルマクロとして採用するのか確定してないので、 er を特別扱いすることが出来ないんだ。
er を底レベルマクロとして採用している処理系で er-macro-transformer を挟まずに使える処理系は存在する。

> (define-er-syntax (swap! a b)(rename-let(let set! tmp)〜))
> みたいなものを自分で定義しろってことなの?

そう。
ささいな見た目の違いは簡単に吸収できるので問題ではないという意識が存在するのは確か。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。