如何使C函数对Racket可见 我试图在C++中嵌入球拍,我怎样才能完成这样的事情 Scheme_Object* c_function(int argc, Scheme_Object** objects) { printf("a c function with %d args", argc); return scheme_null; } scheme_eval_string("(c_function)", env); // c_function undefined
我尝试了如何使C函数对Racket可见 我试图在C++中嵌入球拍,我怎样才能完成这样的事情 Scheme_Object* c_function(int argc, Scheme_Object** objects) { printf("a c function with %d args", argc); return scheme_null; } scheme_eval_string("(c_function)", env); // c_function undefined,racket,Racket,我尝试了scheme\u make\u prim\u w\u arity,但似乎我可以使用scheme\u apply。scheme\u eval\u string,就像Racket中的其他形式的eval一样,在特定的名称空间上操作,并且无法找到这些名称空间中不可用的函数或其他绑定。你应该: 了解eval和名称空间 不要使用eval——它几乎总是错误的工具
scheme\u make\u prim\u w\u arity
,但似乎我可以使用scheme\u apply
。scheme\u eval\u string
,就像Racket中的其他形式的eval
一样,在特定的名称空间上操作,并且无法找到这些名称空间中不可用的函数或其他绑定。你应该:
- 了解
和名称空间eval
- 不要使用
——它几乎总是错误的工具eval