トップページ > プログラム > 2016年03月21日 > 4m5Wnyvm

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

37 位/202 ID中時間01234567891011121314151617181920212223Total
書き込み数2000100000000000000000003



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
Lisp Scheme Part40 [転載禁止]©2ch.net
Excel VBA 質問スレ Part40 [無断転載禁止]©2ch.net

書き込みレス一覧

Lisp Scheme Part40 [転載禁止]©2ch.net
330 :デフォルトの名無しさん[sage]:2016/03/21(月) 00:04:00.00 ID:4m5Wnyvm
>>329
condはifとbeginに置き換えられる
condをマクロとして実装してる処理系は多い
まず処理系のソースを見てごらんよ
(cond (test1 body1) (test2 body2) (else bodyn))は
(if test1 (begin body1) (if test2 (begin body2) (begin bodye)))
に一旦展開された後で項書き換えとかコンパイルとかされる
要するにcondのbody節は複文相当で最後の式の値が全体の式の値になる
構文が判らないレベルなら教科書は一旦捨てて処理系のソース読んだ方が早い
Lisp Scheme Part40 [転載禁止]©2ch.net
331 :デフォルトの名無しさん[sage]:2016/03/21(月) 00:27:45.71 ID:4m5Wnyvm
ちなみにschemeはマクロを除いて基本構文は5つしか必要ない
define lambda set! if beginだったかな?
でも厳密にはquote関係も数に入れると10個ぐらいかもしれない
それ以外は全て上の5構文を組み合わせたマクロとして定義できる
つまり上の5構文だけマスターしとけばよい

例えばletがマクロなら(let((var value)) 〜)は((lambda(var) 〜)value)
のように意味を全く違えずに置き換えられる
残りのマクロも同様に基本構文への展開形を連想できるようになれば
schemeの基本はマスターしたと思ってよい

ただし肝心のschemeのマクロの定義は手段が沢山あってカオスなので
schemeマクロの闇については自分で調べて下さい
gaucheなら大きく分けて2つだろうけど
Excel VBA 質問スレ Part40 [無断転載禁止]©2ch.net
727 :デフォルトの名無しさん[sage]:2016/03/21(月) 04:44:20.97 ID:4m5Wnyvm
VBAを24時間もの長い間動かしていると奇妙で名状し難い不定な動きを引き起こすことについて宇宙的に議論したいんだよ
な?


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