- 1 名前:デフォルトの名無しさん [2007/08/12(日) 21:38:15 ]
- 過去スレ
Part17: ttp://pc11.2ch.net/test/read.cgi/tech/1177065699/ Part16: ttp://pc11.2ch.net/test/read.cgi/tech/1172404795/ Part15: ttp://pc10.2ch.net/test/read.cgi/tech/1151025773/ Part14: ttp://pc8.2ch.net/test/read.cgi/tech/1132275726/ Part13: ttp://pc8.2ch.net/test/read.cgi/tech/1115901841/ Part12: ttp://pc8.2ch.net/test/read.cgi/tech/1100229366/ Part11: ttp://pc5.2ch.net/test/read.cgi/tech/1091456033/ Part10: ttp://pc5.2ch.net/test/read.cgi/tech/1075630259/ Part9: ttp://pc2.2ch.net/test/read.cgi/tech/1069594582/ Part8: ttp://pc5.2ch.net/tech/kako/1058/10582/1058263391.html Part7: ttp://pc5.2ch.net/tech/kako/1042/10421/1042167213.html Part6: ttp://pc3.2ch.net/tech/kako/1031/10315/1031560687.html Part5: ttp://pc3.2ch.net/tech/kako/1023/10230/1023091882.html Part4: ttp://pc.2ch.net/tech/kako/1016/10162/1016211619.html Part3: ttp://pc.2ch.net/tech/kako/1008/10082/1008220265.html Part2: ttp://pc.2ch.net/tech/kako/1002/10025/1002584344.html Part1: ttp://piza2.2ch.net/tech/kako/987/987169286.html
- 115 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 08:18:04 ]
- andやorって
関数で定義したほうがapply出来たりして柔軟性が増すと思うんですが、 R5RSだと7.3でsyntax-rulesで定義がされてます。 関数で定義するとなんか問題が発生したりするんでしょうか。
- 116 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 08:29:19 ]
- 関数にしちゃうと、必ず全引数評価しちゃうから困る。
(and (pair? foo) (car foo)) みたいなのができない。
- 117 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 08:34:05 ]
- どう違うかぐらい自分で確かめなさい
- 118 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 09:10:38 ]
- >>115
そこまでやるなら if や define も関数にしたら如何?w
- 119 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 09:26:33 ]
- andにしろifにしろ
陽にlambdaを渡すようにすれば関数でもいいわけだよな 果てしなく面倒くさいが
- 120 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 09:48:25 ]
- Haskell みたいにデフォルトで遅延評価にしちゃえば、関数で問題ないんだけどね。
>>119 その場合、各引数を lambda で包んでその関数に渡すようなマクロが欲しくなるかもw
- 121 名前:デフォルトの名無しさん mailto:sage [2007/08/26(日) 13:16:00 ]
- スペシャルフォームじゃだめなん?
- 122 名前:デフォルトの名無しさん mailto:sage [2007/08/28(火) 00:40:10 ]
- スッペシャルジェネレーションのほうがすき
- 123 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 14:14:20 ]
- デフォルトで遅延評価にしちゃえばマクロは用なしになるのかな?
現在のマクロは Schemeだと名前呼び+レキシカルスコープの関数 CLだと名前呼び+ダイナミックスコープの関数と等価?
- 124 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 15:00:15 ]
- r6rsキタ
- 125 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 16:25:14 ]
- へー、批准されたんだ…
- 126 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 17:04:59 ]
- scheme構文もCLマクロもファーストクラスじゃないから関数と等価ではないかな
R6+RSで構文オブジェクトもファーストクラスにならないかな ところでR6RSどこにキタの?
- 127 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 17:33:57 ]
- 単純に、関数で setq って書けないよね。
引数を評価しないでシンボルのまま扱う手段が必要で、遅延評価だけじゃ足りない。
- 128 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 20:33:34 ]
- LISP 1.5にはマクロは無く、代わりにFSUBR/FEXPRという引数を評価しない関数があった。
評価すべき部分(例えば setq の第2引数みたいなの)は明示的に eval を呼ぶわけだが、 スコープの関係とかぐちゃぐちゃになって使いにくかったらしい。
|

|