0

在《Lisp In Small Pieces》这本书的开头页,有一段是这样的:

基于“函数”的概念,一个经过几个世纪数学研究成熟的概念,应用语言在计算中无处不在;它们以各种形式出现,例如 Un*x 字节流的组合、Emacs 编辑器的扩展语言以及其他脚本语言。

谁能详细说明“unix字节流的组成”?这是什么意思?以及它与应用程序/函数式编程有何关系?

谢谢,

/布鲁因

4

1 回答 1

1

pipe我的猜测是,这是对类似linux 下的东西的引用。

cal | wc

|它是在两个应用程序之间调用管道的符号,apipe是内核提供的一项功能,因此您可以在使用这种内核 API 编写应用程序的地方使用管道。

在这个例子cal中,只是打印日历wc的实用程序,是一个计算您传递给它的输入中的单词、行和列的实用程序,在这种情况下,输入是管道的结果,calwc使您的事情变得更容易,因为它是功能更强大,您只关心每个应用程序的功能,而不关心例如参数的名称是什么,或者在哪里分配临时文件来存储两者之间的输入/输出。

如果没有管道,您应该执行类似的操作

cal > temp.txt
wc temp.txt
rm temp.xt

获得几乎相同的信息。第二种解决方案也可能会产生问题,例如如果temp.txt已经存在怎么办?遵循什么样的理由你会告诉你的脚本为你的临时文件选择一个名字?如果另一个进程在两次调用cal和之间修改了您的文件wc怎么办?

于 2013-12-19T07:00:33.300 回答