我知道在像Java这样的纯面向对象语言中,使用像Hibernate这样的ORM通常是有意义的。但是在Clojure或Common LISP中编写CRUD类型的功能时我会怎么做?
将SQL作为一阶函数传递?但是,HTML生成代码中的SQL是否非常难看?
谢谢,
Olek
答案 0 :(得分:3)
Common Lisp不是一种自觉的FP语言。 Clojure可以使用Hibernate。
对于Common Lisp:databases。这是一个persistent object one。 here是教程的第一部分,它将它与Hunchentoot,一个CL网络服务器和动态网页工具包一起使用。 CL can look like this中的SQL(看起来比它实际上更长,因为SQL是水平格式化的而CL不是)。如果你愿意的话,this guy正在开发一个网络框架(使用CLSQL和Elephant,已经链接到了),目的是苛刻,并着眼于弧线挑战。
编辑:a recent answer扩展了这一点。
答案 1 :(得分:1)
Ur / Web可能很有趣,虽然它不是基于lisp的:http://plv.csail.mit.edu/ur/
引自他们的网站:
Ur / Web支持构建由SQL数据库支持的动态Web应用程序。标准库的签名是这样的,良好类型的Ur / Web程序不会出错"从广义上讲。它们不仅在特定页面生成期间不会崩溃,而且它们也可能不会崩溃:
- 遭受任何类型的代码注入攻击
- 返回无效的HTML
- 包含死的应用程序内链接
- HTML表单与其处理程序所需字段之间存在不匹配
- 包含对远程Web服务器提供的" AJAX"样式服务做出错误假设的客户端代码
- 尝试无效的SQL查询
- 在与SQL数据库通信或浏览器与Web服务器之间使用不正确的编组或解组
答案 2 :(得分:0)