实用主义的Lisp方言 -- newLisp
先引用newLisp的官方定义: newLISP is a LISP-like scripting language for doing things you typically do with scripting languages: programming for the internet, system administration, text processing, gluing other programs together, etc. newLISP is a scripting LISP for people who are fascinated by LISP’s beauty and power of expression, but who need it stripped down to easy-to-learn essentials. newLISP is LISP reborn as a scripting language: pragmatic and casual, simple to learn without requiring you to know advanced computer science concepts.
自称是Lisp的重生,对自己的期望非常高.
我是在天国之翼的解释下接触newLisp,这人高人独自翻译了newLisp的代码模式
之前看了实用Lisp编程,对Lisp了解了不少,但发现Lisp世界的很大特点就是一上来就吹嘘括号和宏,在无尽的不理解,不明白,我的热情很快退去…
而newLisp,起码,我跑通了一个http服务器!! 我跑通了mysql的demo!! 安装文件非常小巧,安装过程只需几秒,启动极快 – 主程序仅280kb!! 没有一味推荐Emacs(事实上我很讨厌这玩意),所以我用notepad++进行编辑,感觉也不错嘛
现在,我把两个小demo列一下: 1. 小小的静态文件http服务器,无需写代码,一条命令就能启动,最起码做个能用的http服务
newlisp -L log.txt -http -w E:/htmls
#-L 日志,可省略
#-w 工作目录,可省略
2. 访问mysql 能访问数据库,不激动吗?! 首先,你需要下载libmysql(windows),或者安装mysql客户端(一般都包含libmysql) 然后,到newLisp的安装文件夹里面的modules文件夹,找到mysql.lsp,打开编辑: 找以下语句(跳过开头的注释,就看到了),对应你所在的操作系统,确定libmysql已经放好
(set 'files '(
"/usr/local/lib/libmysqlclient.so.20.0" ; OpenBSD 4.9
"/usr/lib/libmysqlclient.so" ; Linux, UNIX
"/usr/lib/mysql/libmysqlclient.so" ; Linux Fedora
"/usr/local/mysql/lib/libmysqlclient.so" ; Linux, UNIX
"/usr/local/mysql/lib/libmysqlclient.dylib" ; MacOS X
"/usr/lib/libmysqlclient.dylib" ; MacOS X
"E:\\newlisp\\modules\\libmysql.dll" ; 这是我自己加的,windows用户需要到mysql网站下载32位的libmysql,并填上绝对路径
))
在结尾往前找,第一个方法, (define (test-mysql) , 设置mysql用户名密码
(define (test-mysql)
(MySQL:init)
(unless (MySQL:connect 0 "root" "root" "test") ;第一个参数是host,如果为0,则代表localhost,第二三个分别是用户名和密码,第四个的测试数据库名
(println "Could not connect to MySQL")
(exit))
))
好了,可以执行了
#首先,进入命令行,敲入newlisp,进入newLisp的交换模式
newLISP v.10.4.0 on Win32 IPv4/6 UTF-8, execute 'newlisp -h' for more info.
>
> (module "mysql.lsp") ; 载入mysql模块,如果一切顺利,会把test-mysql方法打印了一通,原因是test-mysql为最后一个方法,默认会将最后一个表达式的值做法返回值
> (test-mysql) ; 执行test-mysql,如果之前的步骤都正确,那么,就开始打印创建表,查询,删除等操作
> (exit) ; (exit)的含义是退出newlisp,另外说一句,";"是注释的开始
如果上述2个demo都顺利pass,那么,你以后可以大胆地说: lisp很简单嘛,我都跑通2个demo了!!
blog comments powered by Disqus