Scheme 嵌伸拍

Scheme 嵌伸拍,scheme,racket,Scheme,Racket,在本文中,提到了嵌入和扩展解释器,尽管没有将两者结合在一起的演示/解释。具体来说,有没有一种方法可以将解释器嵌入到C程序中,并将指向要添加到解释器的函数的指针传递给解释器?作为此类功能的一个示例,Emacs内部的elisp解释器能够在嵌入程序内部时调用本机函数,而GDB使用Guile提供类似的功能 作为参考,这是一个狡猾地做这类事情的例子。你当然可以,只要阅读和。然而,有一个明显的问题是,你为什么要这样做。正如您链接到的部分提到的,如果您只想从Racket调用本机代码,这是一个简单得多的选择。就

在本文中,提到了嵌入和扩展解释器,尽管没有将两者结合在一起的演示/解释。具体来说,有没有一种方法可以将解释器嵌入到C程序中,并将指向要添加到解释器的函数的指针传递给解释器?作为此类功能的一个示例,Emacs内部的elisp解释器能够在嵌入程序内部时调用本机函数,而GDB使用Guile提供类似的功能


作为参考,这是一个狡猾地做这类事情的例子。

你当然可以,只要阅读和。然而,有一个明显的问题是,你为什么要这样做。正如您链接到的部分提到的,如果您只想从Racket调用本机代码,这是一个简单得多的选择。就这个问题而言,我不确定是否有具体的问题被问到,我倾向于将其标记为过于宽泛。这之所以有用,是因为它允许Racket代码回调C函数,而无需使用守护程序或从Racket内部开始执行C代码,也无需手动处理C代码正常使用的任何状态。问题是如何将扩展功能作为主程序的一部分,而不是作为一个单独的组件,因为文档没有描述如何做这类事情。啊,因此,我的理解是,您希望调整全球环境,而无需调用
加载扩展
或来自Racket本身的任何类似功能?恐怕我对Racket的实现还不够熟悉,无法回答这个问题,尽管这似乎是可能的。您应该在上提问,因为可以回答您问题的人(或者可能是人)在堆栈溢出时不活跃。