libgauche 試す
とりあえず固定なソレを試してみます。色々試行錯誤したんですが以下なソースで
#include <stdio.h> #include <gauche.h> #include <gauche/symbol.h> int main(void) { ScmObj proc; Scm_Init(GAUCHE_SIGNATURE); proc = Scm_GlobalVariableRef(Scm_SchemeModule(), SCM_SYMBOL(SCM_INTERN("+")), 0); ScmObj r = Scm_ApplyRec(proc, Scm_List(Scm_MakeInteger(1), Scm_MakeInteger(2))); printf("%ld\n", Scm_GetInteger(r)); return 0; }
以下でコンパイル。
$ gcc -o test main.c -Wall -g `gauche-config -I` `gauche-config -l` `gauche-config -L`
で、実行したのが以下。
$ ./test 3 $
コンパイルスイッチが全部指定必要とか + に渡す引数を '(1 . 2) ってしたりとか他にも色々ハマッた上に Scm_ApplyRec の戻りが apply した手続きの戻りになるって思ってなくて、試しに実行してみたら 3 が出たのでびっくり。
別途
Scm_ApplyRec 手続きについて確認してみます。今日はいまからブラタモリを見つつ冷えたパスタをナニ。