我有C#和JavaScript方面的经验,并且最近几年一直在使用Node.js.基本上,我对这种环境非常有信心,但是一种语言一直引起我的注意:LISP。鉴于其最小的语言概念,我发现LISP的表现力令人印象深刻且非常吸引人。它与jQuery基本相同:用更少的东西做更多的事情; - )
不幸的是,我对LISP的经验或多或少是理论上的,而且还有一些玩法,但不是认真的编程。
现在我想改变它,但我绝对致力于Web应用程序开发(因此Node.js)。我的问题不是学习LISP作为一种语言,我的问题是我不知道在哪里以及如何从“Hello LISP world”应用程序开始,该应用程序不基于控制台,但基于Web
所以,我的问题基本上是:如何在LISP中编写类似于以下Node.js应用程序的服务器端Web应用程序
var http = require('http');
http.createServer(function (req, res) {
res.end('Hello world!');
}).listen(3000);
不需要大量的框架和额外的库和东西等等?
经验丰富的LISP程序员如何解决这个问题?任何提示?
答案 0 :(得分:21)
(ql:quickload "hunchentoot")
(hunchentoot:start
(make-instance 'hunchentoot:easy-acceptor :port 3000))
(hunchentoot:define-easy-handler (foo :uri "/bar") (name)
(format nil "Hello~@[ ~A~]!" name))
然后访问
http://127.0.0.1:3000/bar?name=World
答案 1 :(得分:9)
关于Hunchentoot的答案对于初学者来说真是一种方式,我完全建议尝试一下。
问题中与node.js变体唯一的主要区别是Hunchentoot是一个同步的Web服务器。如果你想获得相同的异步行为(实际上,为什么会这样,但这是另一个讨论;),你必须尝试别的东西,比如wookie。类似的Hello World示例在其documentation page处获得。
答案 2 :(得分:8)