当前位置:  开发笔记 > 编程语言 > 正文

如何使用Lisp或Scheme进行Web编程?

如何解决《如何使用Lisp或Scheme进行Web编程?》经验,为你挑选了9个好方法。

我经常用PHP,Ruby或Perl编写Web应用程序.我正在开始研究Scheme,我想用这种语言尝试一些web项目.但我找不到最适合这种情况的环境.

我正在寻找以下功能:

获取请求参数的简单方法(类似于:get-get #key,get-post #key,get-cookie #key).

Mysql访问.

HTML表单生成器,处理,验证器等.

用于过滤用户输入数据的助手(类似于htmlentities,用于放入查询的转义变量等).

FLOSS.

和GNU/Linux友好.

所以,提前感谢所有回复.



1> Eli Barzilay..:

Racket拥有您需要的一切.请参阅Racket Web服务器教程,然后参阅文档.Web服务器已经存在了一段时间,它有很多功能.可能唯一没有包含的是mysql接口,但它作为PLaneT(Racket包分发工具)上的包存在.

更新:Racket现在提供数据库支持,可与包括mysql在内的多个数据库配合使用.



2> Mike Mazur..:

你可能想看一下Clojure:

Clojure是一种针对Java虚拟机的动态编程语言.[...] Clojure提供了对Java框架的轻松访问,具有可选的类型提示和类型推断,以确保对Java的调用可以避免反射.

Clojure是Lisp的一种方言,与Lisp共享代码为数据的哲学和强大的宏系统.

在Clojure中使用Java的Interop很简单,因此您可以根据需要重用任何现有的Java库.我确信有很多对Web开发有用的东西.

clojure-contrib有一个SQL API,还有ClojureQL,它应该涵盖你的数据库访问需求.

Clojure的Web框架正在开发中,名为Compojure.也可能有其他人.

Clojure的源代码可以在EPL下的github上找到.让它在Linux上运行很容易; 我只是克隆git repos并运行ant.



3> gcbenison..:

您可以使用guile方案进行Web开发.它的标准库包括(sxml简单)模块,该模块对于html生成,操作和解析非常有用.该诡计www的库增加了对HTTP,CGI等支持诡计,DBI库提供访问MySQL等数据库.使用这些构建块,您可以实现从简单的cgi脚本到具有自己的HTTP服务器的Web应用程序的所有内容.


+1 Guile突然变得非常适合网络工作.

4> Leslie P. Po..:

试试一下Common Lisp Web框架Weblocks:

http://weblocks.viridian-project.de/



5> 小智..:

我写了一篇关于这个主题的非常广泛的教程/电子书:http://lispwebtales.ppenev.com/

快速摘要:

它使用Common Lisp

它使用Restas框架

它提供了几乎所有基本Web开发的示例,包括数据库访问,身份验证,HTML生成和模板.

由于Restas文档已经过时,我的教程是最接近最新文档的.

显示一些更高级的功能,例如策略,允许您编写可插拔接口,例如,您可以编写数据存储层,并相对轻松地为不同的存储机制编写后端,模块系统允许您编写可重用的组件,如auth框架和类似的东西.

它涵盖了安装lisp,设置ASDF构建系统和quicklisp包管理器等内容.

它是免费在线的,一旦我完成它,它也将免费在leanpub上.源代码位于https://github.com/pvlpenev/lispwebtales,CC许可证下,源代码为MIT.并非所有内容都已发布,我正在修改过程中.



6> Unknown..:

这可能就是你要找的东西.

http://www.plt-scheme.org/

http://docs.plt-scheme.org/web-server/index.html

http://common-lisp.net/project/cl-weblocks/


链接的描述会很好.
PLT Scheme现在称为Racket,并且位于不同的站点:http://racket-lang.org/

7> 小智..:

如果您对Common Lisp感兴趣并且不想使用weblocks路由,我建议您进行以下设置:

    在Linux上使用SBCL但具有多线程支持

    使用Hunchentoot作为Web服务器,它将为您提供所需的所有服务器处理,包括会话和cookie

    使用ClSql与MySql通信它有足够的文档并且非常稳定.

    对于HTM1代,您可以使用Edi Weitz Cl-WHO博士(记录完备).

注意以上所有都是GPL或类似的许可证(一个更适用于lisp程序)



8> malvim..:

Gambit Scheme也有自己的网络应用程序解决方案.它使用Spork框架,基于Black Hole模块系统(均由Per Eckerdal提供).

Andrew Whaley有一个关于如何使用mod_proxy让Gambit,Black Hole和Spork在Apache下运行Web应用程序的初步教程.你可能想看一下.

在一个(可能)相关的注释中,如果你有这种倾向,Gambit还会把你的东西编译成C然后编译成可执行文件.



9> wm_eddie..:

Paul Graham(及其朋友)专门为编写基本的Web应用程序而制作了一个lisp方言.它被称为Arc,你可以在arclanguage.org获得它.

它可能不适合非常复杂的大型网站,我不确定它的数据库支持状态如何,但Paul Graham知道如何在lisp中编写Web应用程序,因此Arc会让您在花费最多的时候轻松使用HTTP/HTML部分你的大脑循环学习lisp方式.

推荐阅读
臭小子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有