Comment detail
自然数の分割 (Nested Flatten)This comment is reply for 4317 shiro: Schemeならsrfi-42でcomp...(自然数の分割). Go to thread root.
evalの第二引数は (interaction-environment) にするか (current-module) にするのが良いでしょう。
現在はscheme-report-environmentの値である「手続きそのもの」が渡っているので本来はエラーなのですが、Gaucheはチェックをさぼってデフォルトである(current-module)の値を使っているためにたまたま動作してしまっています。
(scheme-report-environment 5) とすればevalの引数として正しいものが渡りますが、その環境の中ではR5RSで定義されている手続きや構文しか見えないのでlist-ecはエラーになります。





naoto
#4333()
[
Scheme
]
Rating0/0=0.00
n=5 m=3 の場合、
(reverse (list-ec (: a 6) (: b 6) (: c 6) (if (= 5 (+ a b c))) (list a b c)))
というコードが生成されれば良い。
→マクロで書いてみる。
→nとmがコンパイル時に決まらないから無理?
→生成したコードをevalする方針に変更。
とこんな風になりました。
;; comprehensionと再起の組み合わせであんなに短く書けるとは。
Rating0/0=0.00-0+