标签: lisp

除了"符号"之外,为什么Clojure还有"关键字"?

我从其他方面了解其他Lisps(特别是Scheme).最近我一直在读关于Clojure的文章.我看到它有"符号"和"关键字".符号我很熟悉,但没有关键字.

其他Lisps有关键字吗?关键字如何与除了具有不同符号(即:冒号)之外的符号不同?

lisp scheme clojure keyword

125
推荐指数
5
解决办法
2万
查看次数

数据库和功能编程是否存在争议?

我已经做了一段时间的Web开发人员,并且最近开始学习一些函数式编程.像其他人一样,我在将这些概念应用于我的专业工作时遇到了一些重大问题.对我来说,主要原因是我看到FP之间保持无状态的目标之间的冲突似乎与我所做的大多数Web开发工作都与数据库密切相关的事实相矛盾,数据库是以数据为中心的.

有一件事,让我更富有成效开发商对事物的OOP侧像MyGeneration d00dads对于.NET,Class对象关系映射器的发现:: DBI对Perl,ActiveRecord的红宝石等,这让我走就走从整天编写插入和选择语句,并专注于作为对象轻松处理数据.当然,我仍然可以在需要它们的时候编写SQL查询,但是否则它在幕后很好地抽象出来.

现在,转向功能编程,好像有很多喜欢的链接FP Web框架的要求写了很多的样板SQL代码,在这个例子中.Weblocks似乎好一点,但它似乎用一种OOP的模型与数据的工作,并且仍然需要代码手动为每个表在数据库中写入这个例子.我想你使用一些代码生成来编写这些映射函数,但这似乎绝对不像lisp.

(注意我没有仔细查看Weblocks或Links,我可能只是误解了它们的使用方式).

所以问题是,对于Web应用程序的数据库访问部分(我认为相当大),或者需要与sql数据库接口的其他开发,我们似乎被迫关闭以下路径之一:

  1. 不要使用功能编程
  2. 以恼人的,非抽象的方式访问数据,涉及手动编写大量SQL或类似SQL的代码链接
  3. 强制我们的功能语言成为伪OOP范例,从而消除了真正的函数式编程的一些优雅和稳定性.

显然,这些选项似乎都不合理.是否找到了绕过这些问题的方法?这里真的有一个问题吗?

注意:我个人最熟悉FP前端的LISP,所以如果您想提供任何示例并了解多种FP语言,那么lisp可能是首选语言

PS:对于Web开发其他方面的特定问题,请参阅此问题.

lisp sql database functional-programming

116
推荐指数
9
解决办法
2万
查看次数

Clojure,Scheme/Racket和Common Lisp有什么区别?

我知道他们是同一个语言家族的方言,称为lisp,但究竟是什么区别呢?如果可能,您是否可以概述语法,特征,功能和资源等主题.

lisp scheme clojure common-lisp racket

112
推荐指数
3
解决办法
3万
查看次数

什么时候在Lisp中使用'(或引用)?

在通过介绍性的Lisp书的主要部分之后,我仍然无法理解特殊运算符(quote)(或等效的')函数的作用,但这已经是我见过的所有Lisp代码.

它有什么作用?

lisp quote

106
推荐指数
5
解决办法
3万
查看次数

Haskell,Lisp和冗长

对于那些在Haskell和一些Lisp中都有经验的人,我很好奇是如何"愉快"(使用一个可怕的术语)是在Haskell和Lisp中编写代码.

一些背景:我学习Haskell现在,稍早有计划和CL(和一点点进军Clojure的)工作.传统上,你可以认为我是动态语言的粉丝,因为它们提供了简洁和快速.我很快就爱上了Lisp宏,因为它给了我另一种避免冗长和样板的方法.

我发现哈斯克尔难以置信的有趣,因为它把我介绍给编码我不知道的方式.它肯定有一些方面似乎有助于实现敏捷性,比如易于编写部分功能.不过,我有点担心失去Lisp的宏(我假设我失去他们,说实话我可能只是没有了解他们吗?)和静态类型系统.

会有人谁做了两个世界编码,像样的数目介意评论经验如何不同,您喜欢哪一种,如果说偏好的态势?

lisp comparison haskell language-comparisons

104
推荐指数
7
解决办法
3万
查看次数

是否可以使用静态类型的完整Lisp变体?

是否可以使用静态类型的完整Lisp变体?这样的事情存在甚至是否有意义?我相信Lisp语言的优点之一就是它的定义简单.静态类型会破坏这个核心原则吗?

lisp programming-languages static-typing

101
推荐指数
4
解决办法
2万
查看次数

在Lisp中进行(严肃的)Web开发是否可行?

显然几乎可以用任何编程语言编写几乎任何类型的应用程序,尤其是像Lisp这样强大的应用程序(无论是Scheme还是Common Lisp).但是将它用于Web开发是否可行?如果是这样,什么应该是一个很好的起点?哪里可以找到这种性质的项目的适当资源(工具,库,文档,最佳实践,示例等)?

lisp

96
推荐指数
6
解决办法
3万
查看次数

Lisp有什么好看的?

我不知道Lisp会说它的好坏.看起来每个使用Lisp的人都喜欢它,但是现在最流行的语言来自C语言.

那么Lisp的内容是如此之大,为什么不再使用它呢?有没有什么关于Lisp的坏事(除了不断数量的括号)?

lisp

96
推荐指数
6
解决办法
4万
查看次数

如何配置emacs以编辑包含Javascript的HTML文件?

我已经开始使用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模式?

问候,

中号

html javascript lisp emacs

91
推荐指数
4
解决办法
2万
查看次数

Lisp-1和Lisp-2有什么区别?

我试图理解Lisp-1和Lisp-2之间的区别以及它与Clojure的关系,但我仍然不理解.任何人都可以开导我吗?

lisp clojure lisp-2

89
推荐指数
2
解决办法
2万
查看次数