Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.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
Scheme 如何在Ubuntu解释方案源文件上使用Guile?_Scheme_Interpreter_Guile - Fatal编程技术网

Scheme 如何在Ubuntu解释方案源文件上使用Guile?

Scheme 如何在Ubuntu解释方案源文件上使用Guile?,scheme,interpreter,guile,Scheme,Interpreter,Guile,首先,这可能是非常基本的事情,但我不知道如何继续。我的Ubuntu 14.04.1 64位LTS上安装了Guile 2.0.9和Libctl 3.2.2。我的目标是在Scheme中编写一个源文件,然后用Guile对其进行解释,这样我就不会花太多时间在试图纠正一些小错误的提示上(纠正文件上的错误要容易得多)。如何让它读取并执行源文件的内容?您将在中找到该信息。您将在中找到该信息。如果您要将.scm源文件作为命令行程序运行,必须在文件的开头添加: #!/usr/bin/guile -s !# 您必

首先,这可能是非常基本的事情,但我不知道如何继续。我的Ubuntu 14.04.1 64位LTS上安装了
Guile 2.0.9
Libctl 3.2.2
。我的目标是在
Scheme
中编写一个源文件,然后用
Guile
对其进行解释,这样我就不会花太多时间在试图纠正一些小错误的提示上(纠正文件上的错误要容易得多)。如何让它读取并执行源文件的内容?

您将在中找到该信息。

您将在中找到该信息。

如果您要将.scm源文件作为命令行程序运行,必须在文件的开头添加:

#!/usr/bin/guile -s
!#
您必须为您的
guile
可执行文件指定正确的路径。您可以通过以下方式找到
guile
的位置

which guile
您将得到类似于
/usr/bin/guile

别忘了让您的文件可执行:

chmode +x file.scm
如果要为程序设置特定的入口点,则有另一种启动脚本文件的方法:

#!/usr/bin/guile \
-e main -s
!#
-e
选项指定程序入口点函数名

例如
file.scm

#!/usr/bin/guile \
-e main -s
!#
(define (main args)
    (display "Hello ")
    (write (cdr args))
    (newline))
现在让我们开始吧

[root@tuxbox ~]# ./file.scm Jim
Hello ("Jim")

如果要将.scm源文件作为命令行程序运行,则必须在文件的开头添加:

#!/usr/bin/guile -s
!#
您必须为您的
guile
可执行文件指定正确的路径。您可以通过以下方式找到
guile
的位置

which guile
您将得到类似于
/usr/bin/guile

别忘了让您的文件可执行:

chmode +x file.scm
如果要为程序设置特定的入口点,则有另一种启动脚本文件的方法:

#!/usr/bin/guile \
-e main -s
!#
-e
选项指定程序入口点函数名

例如
file.scm

#!/usr/bin/guile \
-e main -s
!#
(define (main args)
    (display "Hello ")
    (write (cdr args))
    (newline))
现在让我们开始吧

[root@tuxbox ~]# ./file.scm Jim
Hello ("Jim")

“Hello Jim”的一个更好的例子是使用
(format#t“Hello~A ~%”(cadr args))
。感谢您的回答,所以它本质上类似于
bash
脚本?但是为什么我们有
#行?第一行以
#开头
通知操作系统如何解释脚本,但它也会打开多行注释块。因此,我们必须添加
#行通知guile注释块已关闭。更好的“Hello Jim”示例是使用
(format#t“Hello~A ~%”(cadr args))
。感谢您的回答,它本质上类似于
bash
脚本?但是为什么我们有
#行?第一行以
#开头
通知操作系统如何解释脚本,但它也会打开多行注释块。因此,我们必须添加
#行通知guile注释块已关闭。此外,您可以使用
(加载“myfile.scm”)
对整个文件进行评估。您不必使文件可执行,也可以使用
(加载“myfile.scm”)
来评估整个文件。您不必使文件可执行即可执行此操作。