Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.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
用于unix脚本编写的最佳lisp/scheme是什么?_Unix_Lisp - Fatal编程技术网

用于unix脚本编写的最佳lisp/scheme是什么?

用于unix脚本编写的最佳lisp/scheme是什么?,unix,lisp,Unix,Lisp,标题几乎说明了一切。我在我的主要项目中使用clojure,但它不是一种好的脚本语言,因为jvm启动速度慢,并且与某些unixy东西的接口不好。因此,我正在寻找一种可以很好地用作脚本语言的lisp,例如,它有一个管理unix进程的良好界面,可以很容易地使用异步io等功能。是一种非常好的方案实现。它相当强大。它的介绍之一是从头开始开发一个web服务器。Scsh(它代表“Scheme shell”)可从以下网址获得:。它是“Scheme 48(一个符合R5RS的新技术方案系统)的一个变体…”设计用于编

标题几乎说明了一切。我在我的主要项目中使用clojure,但它不是一种好的脚本语言,因为jvm启动速度慢,并且与某些unixy东西的接口不好。因此,我正在寻找一种可以很好地用作脚本语言的lisp,例如,它有一个管理unix进程的良好界面,可以很容易地使用异步io等功能。

是一种非常好的方案实现。它相当强大。它的介绍之一是从头开始开发一个web服务器。

Scsh(它代表“Scheme shell”)可从以下网址获得:。它是“Scheme 48(一个符合R5RS的新技术方案系统)的一个变体…”设计用于编写现实生活中的独立Unix程序和shell脚本


有关it系统管理的详细介绍,请访问。

各种常用unix工具都有针对的绑定。如果您的目标是自动化这些工具中的任何一个,那么这可能是一个很好的地方。

是通用Lisp的一个实现,对于Unix脚本编写非常有用

CLISP有许多扩展使其对脚本编写非常有用:Unicode支持、正则表达式、各种命令行选项、套接字流、管道等等

此外,CLISP占用的空间相对较小,为便于移植而用C编写,并且启动速度很快,适用于常见的Lisp。

  • ()

使用Elisp的Eshell进行交互使用:

“Eshell能够调用Emacs中加载的几乎所有elisp函数。这种灵活性是无与伦比的;没有任何shell能够接近Eshell的功能。事实上,这种功能被大量使用(并受到鼓励!)如果您想在Emacs中打开foobar.txt文件,只需调用find file foobar.txt,Eshell就会将其映射到elisp调用(find file“foobar.txt”)并为您打开该文件。”


中,我在寻找一种很好的方法,将一些越来越不合适的bash脚本移植到一种更理智的语言中时,曾多次访问过这个页面。因为这些脚本已经调用了一些Racket脚本,所以删除一层间接寻址并将Racket用于所有操作是有意义的

经过一番搜查,我发现了那个包裹是用来买球拍的。从文件中:

这个库使unix风格的外部程序和racket函数管道变得简单。您只需编写
(运行管道(cat/etc/passwd);(grep root);(cut-d:-f 1))
,它将
“root\n”
打印到标准输出(在unix系统上),并返回
0
。要以字符串形式获取输出,请以相同的方式使用
运行管道/out
。您还可以将球拍功能放入管道中。如果您有一个名为
mygrep
grep
的racket实现,您可以执行
(运行管道(cat/etc/passwd)`(,mygrep root)`(cut-d:-f1))
,以获得相同的结果。因此,您可以在Racket中编写各种过滤函数,而不是使用shell命令


是的,scsh很好,部分原因是它的设计目的非常明确。然而,Racket(在另一个答案中提到)也是一个很好的选择,因为它非常完整,基本上拥有scsh拥有的所有系统支持。我以前会毫不含糊地说scsh,但最近我越来越多地使用racket来做类似的事情。+1代表Guile:快速启动时间,体面的模块(包括DBD/DBI),并且仍在积极开发。也曾考虑过mzscheme(球拍),但起步太慢。