ECL是否支持回调?

And*_*rei 4 common-lisp ecl

问题听起来微不足道,但经过一段时间查看ECL文档,CFFI文档并诉诸谷歌,我仍然无法得出明确的答案.ECL文档没有提到回调语法,CFFI文档没有提到关于ECL中回调的任何实现限制,并且我无法将google提示的页面转换为逻辑.

Jua*_*njo 6

ECL确实支持解释和编译模式的回调.CFFI会为您处理一切,这就是为什么没有具体提到ECL(为什么会这样?).如果您关心实际实现,请查看ecl/src/lsp/ffi.lsp.FFI:DEFCALLBACK的签名是(defmacro defcallback(name ret-type((arg-name arg-type)*)&body body)换句话说,它与DEF-FUNCTION或多或少相同的参数(类型语法是同样,UFFI)但它明确地命名每个参数(arg-name)并在lisp中提供要执行的代码.