ring wandering
マクロは、Lispが1つのプログラミング言語として有する唯一最大の強みであり、いかなるプログラミング言語においても唯一最大の強みである。 --Doug Hoyte
Gauche 限定でならマクロを使わずに nlet を定義できちゃったり。(define nlet let)
named-letってことですよね。LOLを読みながらGaucheで写経したりしようかなーと(笑)
すいません。 言葉が足りませんでした。 練習のための写経なのはわかっているので scheme の named-let のことを言いたかったのではないです。特殊構文やマクロはファーストクラスのオブジェクトでは無いので普通の Scheme では define で別名を付けることは出来ないのですが、 Gauche では出来てしまうというちょっと変なところを紹介してみた次第です。 (実際、他に (define nlet let) が出来る Scheme 処理系を見付けることは出来ませんでした。)
なるほどー!そういうことだったんですか!すいませんでした^^;>特殊構文やマクロはファーストクラスのオブジェクトでは無いので普通の Scheme では define で別名を付けることは出来ないのですが、 Gauche では出来てしまうというちょっと変なところを紹介してみた次第です。 (実際、他に (define nlet let) が出来る Scheme 処理系を見付けることは出来ませんでした。)そうだったんですか。評価すればなんでも値が返ってきていたので、それが普通なのかと思っていました。。なるほど、それがわかると(define nlet let)がすごくおもしろいですね(笑)勉強になります。ありがとうございました。
Gauche 限定でならマクロを使わずに nlet を定義できちゃったり。
返信削除(define nlet let)
named-letってことですよね。
返信削除LOLを読みながらGaucheで写経したりしようかなーと(笑)
すいません。 言葉が足りませんでした。 練習のための写経なのはわかっているので scheme の named-let のことを言いたかったのではないです。
返信削除特殊構文やマクロはファーストクラスのオブジェクトでは無いので普通の Scheme では define で別名を付けることは出来ないのですが、 Gauche では出来てしまうというちょっと変なところを紹介してみた次第です。 (実際、他に (define nlet let) が出来る Scheme 処理系を見付けることは出来ませんでした。)
なるほどー!そういうことだったんですか!すいませんでした^^;
返信削除>特殊構文やマクロはファーストクラスのオブジェクトでは無いので普通の Scheme では define で別名を付けることは出来ないのですが、 Gauche では出来てしまうというちょっと変なところを紹介してみた次第です。 (実際、他に (define nlet let) が出来る Scheme 処理系を見付けることは出来ませんでした。)
そうだったんですか。評価すればなんでも値が返ってきていたので、それが普通なのかと思っていました。。
なるほど、それがわかると(define nlet let)がすごくおもしろいですね(笑)勉強になります。ありがとうございました。