【问题标题】:chibi-scheme embedded: calling scheme function with multiple params from Cchibi-scheme 嵌入:从 C 调用具有多个参数的方案函数
【发布时间】:2019-06-17 14:36:53
【问题描述】:

以下站点显示了将 chibi 方案嵌入 c 程序的示例:

http://synthcode.com/scheme/chibi/

/* construct a Scheme expression to eval */
obj1 = sexp_intern(ctx, "my-procedure", -1);
obj2 = sexp_cons(ctx, obj1, SEXP_NULL);
sexp_eval(ctx, obj2, NULL);

sn-p 显示了如何调用一个过程。现在,我正在尝试使用参数调用一个过程,但我没有让它工作。

我对计划和赤壁都是新手。这就是我的想法:

obj1 = sexp_intern(ctx, "my-procedure", -1);
obj2 = sexp_make_fixnum(3); 
tmp  = sexp_cons(ctx, obj1, obj2);
sym  = sexp_cons(ctx, tmp, SEXP_NULL);
res  = sexp_eval(ctx, sym, NULL);

我从赤壁得到这个错误:源中的虚线列表

如何调用具有多个参数的过程?

【问题讨论】:

    标签: chibi-scheme


    【解决方案1】:

    做到了:

    // (define (addValues a) (+ a 5))
    obj1 = sexp_intern(ctx, "addValues", -1);
    obj2 = sexp_make_fixnum(3); 
    tmp  = sexp_list1(ctx, obj2);
    tmp  = sexp_cons(ctx, obj1, tmp);
    res  = sexp_eval(ctx, tmp, NULL);
    if (sexp_numberp(res)) {
        auto x = sexp_unbox_fixnum(res);
        std::cout << "addValues:" << x << "\n"; 
    }
    

    【讨论】:

      猜你喜欢
      • 2013-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-02
      • 1970-01-01
      • 1970-01-01
      • 2013-06-13
      • 2011-11-21
      相关资源
      最近更新 更多