>>161
マクロなら可能だがdefineでは定義不可能なケースを上げておく
defineで定義された関数(procedure)の適用では、まず全ての引数が評価されてからその結果が関数bodyに渡されて関数の結果が決まる。
もし、全ての関数を評価せずに前から必要な分だけ評価する関数を書きたい場合、defineでは無理。その場合はdefineは-syntaxなどをつかってマクロを定義することになる。
マクロは
>>162が述べているように第一段階としてSchemeのS式を生成し、第二段階でその生成されたS式を評価するわけだが、第一段階ではマクロの引数は評価されない点が重要。
それによって、defieとは異なり一部の引数をのみ評価することが可能となる。
or関数はその一例だな
もしdefineでmy_orを定義しようとすると全ての引数を評価するという無駄な関数となるわけだ。
もしaがtrueなら
(or a b c d e)でb以下は評価不要
が(define my_or ……)とすると
aからeまでを必ず評価してしまう
Lisp Scheme Part40 [転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
163デフォルトの名無しさん
2015/07/22(水) 10:24:48.10ID:4IMBgQFd■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 今年の漢字 [ぐれ★]
- 今年の漢字は「熊」に決定! 相次ぐクマ被害 去年は「金」 [冬月記者★]
- ミス・ユニバース フィンランド代表の「つり目」写真が波紋… 本人釈明も批判やまず 協会謝罪「徹底的に検証」へ★3 [冬月記者★]
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★4 [蚤の市★]
- 「偽サッチャー」「自滅的」「時代遅れ」 高市首相の経済政策を海外メディアが酷評 ★4 [蚤の市★]
- 【おこめ券】物価高対策の“おこめ券”全米販は1枚477円で販売へ 鈴木農水大臣「国民の皆様に活用いただきやすいよう工夫いただいた」 [ぐれ★]
- 【速報】今年の漢字、「熊」!wwwwwwwwwwwwwwwwwwwwwwwww [279254606]
- 今年の「感じ」を予想するスレ
- 過労死の遺族、高市に抗議したため冗談抜きでボロクソに叩かれる [637618824]
- 【速報】今年のゲームオブザイヤー、Clair Obscur: Expedition 33 [779938112]
- たつき鯨のせいで人生狂ったんだが
- 地蔵 [268244553]
