Questions tagged «lisp»

Lisp是一类通用编程语言,受lambda演算的影响,并具有将源代码作为数据结构进行操作的能力。

8
Haskell,Lisp和冗长程度[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 对于那些同时具有Haskell和Lisp风格的经验的人,我很好奇在Haskell vs. Lisp中编写代码是多么“令人愉悦”(使用恐怖的术语)。 背景:我现在正在学习Haskell,之前曾与Scheme和CL一起工作过(并且对Clojure有所涉猎)。传统上,您可以认为我是动态语言的迷,因为它们提供了简洁性和快速性。我很快就爱上了Lisp宏,因为它为我提供了另一种避免冗长和模样的方法。 我发现Haskell 非常有趣,因为它向我介绍了我不知道的编码方式。它肯定有某些方面似乎有助于实现敏捷性,例如易于编写部分函数。但是,我有点担心丢失Lisp宏(我想我丢失了它们;说实话我可能还没有了解它们?)和静态类型系统。 在这两个世界上都做过相当不错的编码的人是否会评论一下体验如何不同,您更喜欢哪一种,以及所说的偏好是视情况而定的?

7
Lisp有什么优点?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 改善这个问题 我对Lisp的了解不够多,无法说出它的好坏。似乎每个使用Lisp的人都喜欢它,但是,当今最流行的语言是C派生的。 那么Lisp到底有什么好用的,为什么不使用更多呢?Lisp到底有什么不好的地方(除了不断增加的括号)?
103 lisp 

11
在Lisp中进行(大量)Web开发是否可行?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 很显然,几乎可以使用任何编程语言编写几乎任何类型的应用程序,尤其是使用Lisp这样强大的语言(无论是Scheme还是Common Lisp)。但是将其用于Web开发是否可行?如果是这样,什么是一个好的起点?在哪里可以找到此类项目的适当资源(工具,库,文档,最佳实践,示例等)?
99 lisp 


5
如何配置emacs来编辑包含Javascript的HTML文件?
我已经开始了使用emacs编辑带有HTML标签和javascript内容的HTML文件的痛苦的第一步。我已经安装了nxhtml并尝试使用它-即设置为对.html文件使用nxhtml-mumamo-mode。但是我不喜欢它。当我编辑代码的Javascript部分时,选项卡缩进不像编辑C / C ++代码时那样。它开始将制表符放入行中,如果您尝试在行前的空白处点击制表符,它将插入制表符,而不是重新制表行。 我不喜欢的另一方面是,它不像通常的C / C ++模式那样进行语法着色。我非常喜欢在编辑HTML文件时使用默认Java模式的行为,但这与HTML代码不能很好地配合使用。:-( 1)是否有更好的模式来编辑带有Javascript部分的HTML文件? 2)有没有办法让nxhtml对javascript部分使用默认的Java模式? 问候, 中号
94 javascript  html  emacs  lisp 

4
Clojure与其他Lips的比较[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 9年前关闭。 我提出这个问题的目的不是发动一场火焰之战,而是确定每种语言在什么情况下是“从事这项工作的最佳工具”。 我已经阅读了几本有关Clojure的书(编程Clojure,实用Clojure,Clojure 的喜悦以及Clojure in Action的Manning早期访问版),我认为它是一种很棒的语言。我目前正在阅读Let Over Lambda,它主要处理Common Lisp宏,它也是一种非常有趣的语言。 我不是 Lisp专家(更多的是新手),但是这种语言家族和函数式编程一样,让我着迷。 Clojure的优点(和“其他”的缺点): 在JVM上运行。 JVM是一种非常稳定的高性能语言环境,完全符合Sun的梦想:“编写一次,几乎可以在任何地方运行”。我可以在Macbook Pro上编写代码,将其编译为可执行的JAR文件,然后在不进行额外测试的情况下在Linux和Microsoft Windows上运行它。 (热点和其他)JVM支持高质量的垃圾收集以及非常高效的即时编译和优化。几年前,我编写了必须在C中快速运行的所有内容,而现在我毫不犹豫地在Java中这样做。 标准,简单的多线程模型。Common Lisp是否具有标准的多线程程序包? 用[],{}和打破所有括号的单调性#{},尽管Common Lisp专家可能会告诉我,使用阅读器宏,您可以将其添加到CL中。 Clojure的缺点: 在JVM上运行。 无尾递归或连续。Common Lisp是否支持延续?我认为,计划需要两者的支持。 他人的优点(尤其是Lisp的常见缺点)(以及Clojure的缺点): 用户可定义的阅读器宏。 其他优势? 有什么想法吗?其他差异?


30
使用Python与Ruby进行元编程[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意测验或进一步的讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 我目前主要是D程序员,并且正在向我的工具箱中添加另一种语言,最好是一种支持元编程编程语言的工具,而这种编程语言只能用像D这样的静态编译语言来完成。 我已经阅读了一些有关Lisp的内容,我很想找到一种语言,该语言可以实现Lisp的一些出色功能,但是没有Lisp的奇怪语法等。我不想发动一场语言大战,并且我确定Ruby和Python都有它们的取舍,所以我将列出对我个人重要的内容。请告诉我Ruby,Python或其他语言对我来说是否最合适。 重要: 良好的元编程。能够在运行时创建类,方法,函数等。最好,代码和数据之间的区别最小,Lisp风格。 优美,干净,理智的语法和一致,直观的语义。基本上是一种经过深思熟虑,易于使用的现代语言。 多种范例。没有一个范例适合每个项目,甚至一个项目中的每个小子问题。 一种有趣的语言,实际上会影响人们对编程的思考方式。 有一些重要: 性能。如果性能不错,那就太好了,但是当性能是真正的优先事项时,我将改用D。 有据可查。 不重要: 社区的规模,图书馆的可用性等。这些都不是语言本身的特征,并且所有这些都可以很快改变。 职位空缺。我不是专职的程序员。我是一名研究生,编程与我的研究有切向的关系。 最初设计的任何功能都需要考虑到由一百万个代码猴子完成的大型项目。


9
我应该学习哪种Lisp方言?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 改善这个问题 我知道Lisp有几种不同的方言。决定学习Lisp将是一种新的知识体验之后,我想知道该学习哪种Lisp方言,以及为什么。 有没有一个比其他人更受欢迎?它们中的任何一个是否更“完整”,如文档中得到更好的记录和支持?该方言的优缺点是什么?
89 lisp  dialect 

11
使用Vim进行Lisp开发
我已经使用Lisp了一段时间,但是我开始对在Lisp中进行一些“实际”工作变得更加认真。我是Vim的忠实拥护者,想知道如何将Vim用作Lisp开发的编辑器来提高生产力。欢迎插件,工作流程建议等。 请不要说“使用emacs”,因为我已经对Vim有所了解,作为编辑我真的很喜欢它。
87 vim  ide  lisp  common-lisp 

12
函数指针,闭包和Lambda
我现在正在学习函数指针,当我阅读有关该主题的K&R章节时,打动我的第一件事是:“嘿,这有点像闭包。” 我知道这个假设在某种程度上根本上是错误的,并且在网上搜索之后,我没有发现对此比较的任何分析。 那么,为什么C风格的函数指针与闭包或lambda基本不同?据我所知,这与以下事实有关:函数指针仍指向已定义(命名)的函数,而不是匿名定义函数的做法。 为什么在第二种情况下将函数传递给未命名的函数比在第一种情况下传递的只是普通的日常函数更强大? 请告诉我如何以及为什么如此紧密地比较两者是错误的。 谢谢。

15
OS X的最佳Scheme或LISP实现是什么?
我正在寻找一个Scheme或LISP版本,可以用来恢复一些丢失的Lisp开发技能。某些Web功能会很好,但不是必需的。 我研究了Plt和MIT方案,虽然两者看起来都不错,但Plt似乎功能更丰富。我也看过Lisp的实现,但是所有这些看起来都很昂贵。 我赞成免费/廉价的实现,因为这确实很可能只是偶尔的业余编程。您有什么建议?
85 macos  lisp  scheme  racket 

16
Common Lisp中的LET与LET *
我了解LET和LET *(并行绑定和顺序绑定)之间的区别,从理论上讲,这很有意义。但是,在任何情况下,您实际需要LET吗?在我最近查看的所有Lisp代码中,您可以将所有LET替换为LET *,而无需进行任何更改。 编辑:好的,我知道为什么有人发明了LET *(大概是一个宏),可以追溯到何时。我的问题是,考虑到LET *的存在,LET有理由留在身边吗?您是否编写了任何实际的Lisp代码,而LET *不能像普通LET一样有效? 我不赞成效率论点。首先,认识到可以将LET *编译成与LET一样高效的情况似乎并不难。其次,CL规范中有很多东西似乎根本就不是围绕效率而设计的。(如果是你看到了类型声明循环中的最后一次?这些都是如此很难搞清楚我从来没有见过他们使用)前的1980年代末的迪克·加布里埃尔的基准,CL是彻头彻尾的慢。 看来这是向后兼容的另一种情况:明智地,没有人愿意冒险破坏像LET这样的基本功能。这是我的直觉,但是令人欣慰的是,没有人遇到一个愚蠢而简单的案例,而LET使一堆事情比LET *容易得多。
80 lisp  common-lisp 

6
建造LISP机器需要多少个原语?十,七或五?
在此站点上,他们说有10个LISP原语。这些原语是:atom, quote, eq, car, cdr, cons, cond, lambda, label, apply。 http://hyperpolyglot.wikidot.com/lisp#ten-primitives Stevey估计有七个(或五个): LISP思想纯净的一部分是:您只需要七个(或者是五个?)原语即可构建完整的计算机。 http://steve-yegge.blogspot.com/2006/04/lisp-is-not-acceptable-lisp.html 建造LISP机器的最小原语数量是多少(即可以在LISP代码上运行eval / value函数的东西)?(那是谁?) (我可以理解您可以没有atom, label and apply)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.