当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 4 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 读完了elisp 感觉很迷茫-_-||
帖子发表于 : 2007-09-21 23:25 

注册: 2007-08-25 7:42
帖子: 26
送出感谢: 0 次
接收感谢: 0 次
最近花了点时间通读了一下 An Introduction to Emacs Lisp Programming。这个本书上说 emacs lisp 和c++一样是一个正是的语言,可是就它的内容上来说怎么看都是专门为emacs定制的(没有看到有效的输入输出等能力)。难道说elisp 是 common lisp 的阉割版? 有没有办法让这个阉割版重振雄风(我是说能不能让elisp有正常语言的能力,比如从std in 读入数据 std out输出数据 ,或者能显示jpeg什么的,还有连接数据库什么的)?

那位达人能出来解惑一下?


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2007-09-24 20:08 

注册: 2007-09-24 19:33
帖子: 18
送出感谢: 0 次
接收感谢: 0 次
估计你看的书名就是Emacs Lisp Programming啊


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2007-10-05 0:38 

注册: 2005-11-05 23:18
帖子: 142
送出感谢: 0 次
接收感谢: 1
elisp 本来就是专门为 Emacs 定制的呀。除非像 Pascal 那样的语言,大部分语言的所谓的IO特性都是作为库来提供的,就算是 C 语言,也是一个 C runtime library 来提供输入输出功能,这里 Emacs 好像就是为 Elisp 提供了一个强大的库,所以从理论上来说,也可以为 elisp 添加额外的库来实现你所说的那些功能。


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 读完了elisp 感觉很迷茫-_-||
帖子发表于 : 2007-10-09 16:26 

注册: 2007-01-27 14:11
帖子: 45
送出感谢: 0 次
接收感谢: 0 次
maskisland 写道:
最近花了点时间通读了一下 An Introduction to Emacs Lisp Programming。这个本书上说 emacs lisp 和c++一样是一个正是的语言,可是就它的内容上来说怎么看都是专门为emacs定制的(没有看到有效的输入输出等能力)。难道说elisp 是 common lisp 的阉割版? 有没有办法让这个阉割版重振雄风(我是说能不能让elisp有正常语言的能力,比如从std in 读入数据 std out输出数据 ,或者能显示jpeg什么的,还有连接数据库什么的)?

那位达人能出来解惑一下?


elisp 是有 std in 和 std out 的。举例来说,你可以使用 standard-input 和 standard-output 的值。但是要注意,作为一个实时的交互式编辑器,除非用 noninteractive 方式启动 Emacs,否则 Emacs 会把它们分别绑定到 mini buffer 和 echo area 上。如果用 emacs -batch 方式运行 Emacs,你就可以像其他程序一样从标准输入读入,并从标准输出输出了。试试这个:
代码:
emacs -batch -eval "(print (read standard-input) standard-output)"

有关 elisp 里的输入输出,你可以阅读 elisp 手册的 Read and Print 一节。

像显示 jpeg 或连接数据库这样的功能需要 elisp 直接或者间接地与用 C 写成的函数库通信。通常,Lisp 系统里这样的部分是用 C 写成的。这叫做 Foreign Function Interface (FFI)。就 elisp 来说,打开 jpeg 文件和连接数据库都是有实现的,不过 GNU Emacs 只包含了前者。在 XEmacs 中,elisp 可以与一些数据库后端通信。XEmacs 甚至可以装载动态链接库。

你可以看一下 Emacs 源代码中 src/image.c 里的内容,这是一个用 C 写的 Lisp 接口,提供了对多种图形文件格式的支持(包括 jpeg)。


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 4 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译