我知道在像Java這樣的純面向對象的語言中,使用像Hibernate這樣的ORM通常是有意義的。但是在Clojure或Common LISP中編寫CRUD類型的功能時,我會做什麼?函數式編程和數據庫交互的最佳實踐是什麼?
傳遞SQL作爲第一階函數?但是在HTML生成代碼中沒有SQL非常難看?
感謝,
Olek
我知道在像Java這樣的純面向對象的語言中,使用像Hibernate這樣的ORM通常是有意義的。但是在Clojure或Common LISP中編寫CRUD類型的功能時,我會做什麼?函數式編程和數據庫交互的最佳實踐是什麼?
傳遞SQL作爲第一階函數?但是在HTML生成代碼中沒有SQL非常難看?
感謝,
Olek
Common Lisp是不是自覺FP語言。 Clojure可以使用Hibernate。
對於Common Lisp:databases。這是一個persistent object one。並且here是教程的第一部分,它將其與Hunchentoot(一個CL web服務器和動態網頁工具包)一起使用。 CL中的SQL(它看起來比實際更長,因爲SQL是水平格式化的而CL不是)。如果你喜歡的話,this guy正在研究一個以粗糙爲目標的Web框架(使用CLSQL和Elephant,已經鏈接到),並且關注弧面挑戰。
編輯:a recent answer在此擴大。
另一套的Common Lisp的工具在another answer
烏爾/網絡描述可能是有趣的,雖然它不是口齒不清基於:http://plv.csail.mit.edu/ur/
由於從他們的網站報價:
烏爾/ Web支持構建由SQL數據庫支持的動態Web應用程序。標準庫的簽名是這樣的:在很廣泛的意義上,良好類型的Ur/Web程序「不會出錯」。他們不僅不會在特定頁面幾代崩潰,但他們也可能不會:
- 從任何類型的代碼注入攻擊遭受
- 返回無效HTML
- 含死內部應用程序的鏈接
- HTML表單與其處理程序期望的字段不匹配
- 包含客戶端代碼,這些代碼對遠程Web服務器提供的「AJAX」風格的服務做出了不正確的假設
- 嘗試無效的SQL查詢
- 使用不當編組或拆封通信與SQL數據庫或瀏覽器和Web服務器之間
CL-SQL是非常好的,並展示瞭如何面向對象和功能可以一起工作。 – Svante 2009-02-19 13:35:08