「コンパイラ・スクリプトエンジン」相談室6at TECH
「コンパイラ・スクリプトエンジン」相談室6 - 暇つぶし2ch280:デフォルトの名無しさん
05/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



次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch