先引用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

Published

2012-03-21 20:32:20

Categories


Tags

Fork me on GitHub