Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在球拍中使用#lang语言加载更多内容_Python_C_Racket - Fatal编程技术网

Python 如何在球拍中使用#lang语言加载更多内容

Python 如何在球拍中使用#lang语言加载更多内容,python,c,racket,Python,C,Racket,我试图找到一种方法,通过在Racket中使用多个语言模型来编写程序。例如,我在Racket中编写了一个c程序,如: #lang c #include <stdio.h> int main() { int a = 1; printf("%d\n", a); return 0; } #lang c #包括 int main(){ INTA=1; printf(“%d\n”,a); 返回0; } 那么,在Racket程序中,是否可以将python代码放在上述c代

我试图找到一种方法,通过在Racket中使用多个语言模型来编写程序。例如,我在Racket中编写了一个c程序,如:

#lang c
#include <stdio.h>
int main() {
    int a = 1;
    printf("%d\n", a);
    return 0;
}
#lang c
#包括
int main(){
INTA=1;
printf(“%d\n”,a);
返回0;
}
那么,在Racket程序中,是否可以将python代码放在上述c代码之后,以便Racket程序看起来像:

#lang c
#include <stdio.h>
int main() {
    int a = 1;
    printf("%d\n", a);
    return 0;
}

//Someting close the c language model

#lang python
def main():
    b = 2
    print "%d", %b
if __name__ == "__main__":
    main()
#lang c
#包括
int main(){
INTA=1;
printf(“%d\n”,a);
返回0;
}
//关闭c语言模型
#巨蟒
def main():
b=2
打印“%d”,打印%b
如果名称=“\uuuuu main\uuuuuuuu”:
main()

我已经在Racket中安装了c和python语言包,可以在Racket中单独编写这些语言。

语言功能不支持在同一个现成文件中编写多种语言。但是Alex Knauth编写了一个扩展,允许您做您想做的事情


查看此处的文档:

谢谢!我尝试了这个扩展,它确实有效。但如何让两个程序轻松共享变量?将变量存储到文本文件中是唯一的方法吗?这取决于语言。某些语言提供了一种导出变量的机制,这些变量可以在其他模块/文件中使用。遗憾的是,“#lang C”的实现没有这样做(它基本上编写一个.C文件并调用标准C编译器)。写入/读取文件是一种方法。另一个是看管道。对于“#lang racket”,该语言可以导入python程序,如:“(需要python)(py导入“pyfile1”作为python模型)”。有没有类似的方法可以使用“require”导入C程序?没有。Python语言的实现方式使得它可以很好地与Racket模块系统配合使用。C one(由于它的实现方式)没有。