- 280 名前:デフォルトの名無しさん mailto:sage [2005/05/23(月) 22:06:51 ]
- >>275
俺言語との通信やプリプロセッサの拡張とか funclist.scm:((f 1) (g 2) (h 3)) 俺言語: #s (define func-list (with-input-from-file "funclist.scm" read)) #s(for-each (lambda(x) (puts x "() { printf(\"myname:" (car x) "\\n\"); return " (cadr x) "; }")) func-list) register_func() { #s(for-each (lambda(x) (puts "scm_add_proc(\""(car x)"\", (scm_proc_t)"(car x)", 0);" " printf(\"defined:"(car x)"\\n\");")) func-list)} main() { register_func();scm_write(scm_eval_string(#ss`(+ ,@(map(lambda(x)(list(car x))) func-list))));;scm_newline();} ↓ f() { printf("myname: f \n"); return 1; } g() { printf("myname: g \n"); return 2; } h() { printf("myname: h \n"); return 3; } register_func() { scm_add_proc("f", (scm_proc_t)f, 0); printf("function defined:f\n"); scm_add_proc("g", (scm_proc_t)g, 0); printf("function defined:g\n"); scm_add_proc("h", (scm_proc_t)h, 0); printf("function defined:h\n"); } main() { register_func();scm_write(scm_eval_string("(+ (f) (g) (h))"));scm_newline();} ↓ function defined:f function defined:g function defined:h myname: h myname: g myname: f 6
|

|