我从其他方面了解其他Lisps(特别是Scheme).最近我一直在读关于Clojure的文章.我看到它有"符号"和"关键字".符号我很熟悉,但没有关键字.
其他Lisps有关键字吗?关键字如何与除了具有不同符号(即:冒号)之外的符号不同?
我已经做了一段时间的Web开发人员,并且最近开始学习一些函数式编程.像其他人一样,我在将这些概念应用于我的专业工作时遇到了一些重大问题.对我来说,主要原因是我看到FP之间保持无状态的目标之间的冲突似乎与我所做的大多数Web开发工作都与数据库密切相关的事实相矛盾,数据库是以数据为中心的.
有一件事,让我更富有成效开发商对事物的OOP侧像MyGeneration d00dads对于.NET,Class对象关系映射器的发现:: DBI对Perl,ActiveRecord的红宝石等,这让我走就走从整天编写插入和选择语句,并专注于作为对象轻松处理数据.当然,我仍然可以在需要它们的时候编写SQL查询,但是否则它在幕后很好地抽象出来.
现在,转向功能编程,好像有很多喜欢的链接FP Web框架的要求写了很多的样板SQL代码,在这个例子中.Weblocks似乎好一点,但它似乎用一种OOP的模型与数据的工作,并且仍然需要代码手动为每个表在数据库中写入这个例子.我想你使用一些代码生成来编写这些映射函数,但这似乎绝对不像lisp.
(注意我没有仔细查看Weblocks或Links,我可能只是误解了它们的使用方式).
所以问题是,对于Web应用程序的数据库访问部分(我认为相当大),或者需要与sql数据库接口的其他开发,我们似乎被迫关闭以下路径之一:
显然,这些选项似乎都不合理.是否找到了绕过这些问题的方法?这里真的有一个问题吗?
注意:我个人最熟悉FP前端的LISP,所以如果您想提供任何示例并了解多种FP语言,那么lisp可能是首选语言
PS:对于Web开发其他方面的特定问题,请参阅此问题.
我知道他们是同一个语言家族的方言,称为lisp,但究竟是什么区别呢?如果可能,您是否可以概述语法,特征,功能和资源等主题.
在通过介绍性的Lisp书的主要部分之后,我仍然无法理解特殊运算符(quote)(或等效的')函数的作用,但这已经是我见过的所有Lisp代码.
它有什么作用?
对于那些在Haskell和一些Lisp中都有经验的人,我很好奇是如何"愉快"(使用一个可怕的术语)是在Haskell和Lisp中编写代码.
一些背景:我学习Haskell现在,稍早有计划和CL(和一点点进军Clojure的)工作.传统上,你可以认为我是动态语言的粉丝,因为它们提供了简洁和快速.我很快就爱上了Lisp宏,因为它给了我另一种避免冗长和样板的方法.
我发现哈斯克尔难以置信的有趣,因为它把我介绍给编码我不知道的方式.它肯定有一些方面似乎有助于实现敏捷性,比如易于编写部分功能.不过,我有点担心失去Lisp的宏(我假设我失去他们,说实话我可能只是没有了解他们吗?)和静态类型系统.
会有人谁做了两个世界编码,像样的数目介意评论经验如何不同,您喜欢哪一种,如果说偏好的态势?
是否可以使用静态类型的完整Lisp变体?这样的事情存在甚至是否有意义?我相信Lisp语言的优点之一就是它的定义简单.静态类型会破坏这个核心原则吗?
显然几乎可以用任何编程语言编写几乎任何类型的应用程序,尤其是像Lisp这样强大的应用程序(无论是Scheme还是Common Lisp).但是将它用于Web开发是否可行?如果是这样,什么应该是一个很好的起点?哪里可以找到这种性质的项目的适当资源(工具,库,文档,最佳实践,示例等)?
我不知道Lisp会说它的好坏.看起来每个使用Lisp的人都喜欢它,但是现在最流行的语言来自C语言.
那么Lisp的内容是如此之大,为什么不再使用它呢?有没有什么关于Lisp的坏事(除了不断数量的括号)?
我已经开始使用emacs编辑带有HTML标记和javascript内容的HTML文件的痛苦的第一步.我已经安装了nxhtml并尝试使用它 - 即设置为.html文件使用nxhtml-mumamo-mode.但我不喜欢它.当我编辑代码的Javascript部分时,选项卡缩进的行为与编辑C/C++代码时的行为不同.它开始在行内放置制表符,如果您尝试在行前面的空白处按Tab键,则会插入制表符而不是重新列表该行.
我不喜欢的另一个方面是它不像通常的C/C++模式那样进行语法着色.在编辑HTML文件时,我更喜欢默认java模式的行为,但这与HTML代码不能很好地兼容.:-(
1)使用Javascript部分编辑HTML文件有更好的模式吗?
2)有没有办法让nxhtml使用javascript部分的默认java模式?
问候,
中号
我试图理解Lisp-1和Lisp-2之间的区别以及它与Clojure的关系,但我仍然不理解.任何人都可以开导我吗?
lisp ×10
clojure ×3
scheme ×2
common-lisp ×1
comparison ×1
database ×1
emacs ×1
haskell ×1
html ×1
javascript ×1
keyword ×1
lisp-2 ×1
quote ×1
racket ×1
sql ×1