Questions tagged «lisp»

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

14
是什么使Lisp宏如此特别?
阅读Paul Graham关于编程语言的文章,人们会认为Lisp宏是唯一的选择。作为繁忙的开发人员,在其他平台上工作,我没有使用Lisp宏的特权。作为想了解蜂鸣声的人,请解释一下此功能如此强大的原因。 还请将此与我从Python,Java,C#或C开发的世界中了解的东西联系起来。

13
是否有用于功能编程的软件工程方法?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 3年前关闭。 改善这个问题 今天所讲授的软件工程完全专注于面向对象的编程和“自然”的面向对象的世界观。有一种详细的方法学描述了如何将域模型转换为具有几个步骤和许多(UML)工件(如用例图或类图)的类模型。许多程序员已经内化了这种方法,并且对如何从头开始设计面向对象的应用程序有一个很好的主意。 新的炒作是函数式编程,许多书籍和教程都对此进行了讲授。但是功能软件工程呢?在阅读有关Lisp和Clojure的内容时,我得出了两个有趣的陈述: 功能程序通常是自下而上而不是自上而下的开发(“ On Lisp”,Paul Graham) 功能程序员使用Map,而OO程序员则使用对象/类(“ Rich Hickley的“ Java程序员的Clojure”)。 那么,对功能应用程序(即Lisp或Clojure)进行系统(基于模型?)设计的方法是什么?常见的步骤是什么,我使用什么工件,如何将它们从问题空间映射到解决方案空间?

10
Lisp为什么用于AI?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心寻求指导。 7年前关闭。 我一直在学习Lisp,以扩大我的视野,因为我听说它已用于AI编程。在进行了一些探索之后,我还没有找到AI实例或任何其他使它更倾向于AI的语言。 Lisp过去是因为可用而使用的,还是我只是想缺少一些东西?

6
球拍与Scheme有何不同?
球拍是Scheme的后代。球拍与R6RS有何不同?它增加了什么或带走了什么,或者只是有所不同? 我知道Racket不仅仅是一种语言,它还是多种语言的平台。但我指的是主要的Racket方言。
183 scheme  lisp  racket 

23
学习LISP的最佳方法是什么?[关闭]
从目前的情况来看,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我已经使用Python,PHP,Java和C进行编程已有两年或几年了,而我刚读完Hackers and Painters,所以我想尝试一下LISP! 我知道它与我所知道的完全不同,而且这并不容易。我也认为(如果我错了,请纠正我)围绕LISP的社区和开发方式会更少。所以我的问题是:学习LISP的最佳方法是什么? 我不介意买书或花一些时间。我只是不想浪费它。 “最终”的想法是使用LISP进行Web开发,我知道这并不常见,所以...我知道在选择第一本书或教程并花很多时间去做可能没有的东西之前,先计划好我的学习是很好的成为最好的方法! 谢谢大家的答案! 编辑:我读了《实践通用Lisp》,并且:... ...漫长,艰苦,有趣,并且确实使我在Lisp中滚动,之后,我阅读了这个小编程器,它简短,有趣,并且对我的整体编程非常好。因此,我的建议是先阅读小策划者,然后(几个小时,这是值得的),如果您确定Lisp(或计划或其他方言)不是您要找的东西,您仍然会觉得很有趣递归的新思维方式!
167 lisp  scheme  common-lisp 


30
Lisp在现实世界中
我已经对Lisp(实际上是Scheme)进行了实验,发现它是一门非常美丽的语言,我有兴趣进一步学习。但是,似乎Lisp从未在严肃的项目中使用过,而且我还没有将Lisp列为任何职位发布中所需要的技能。我很高兴听到有人使用Lisp或看到它在“现实世界”中使用过,或者知道它是否被视为纯粹的学术语言。

4
请解释保罗·格雷厄姆(Paul Graham)关于Lisp的一些观点
我需要一些帮助来了解Paul Graham的《What Lisp Lisp Different》中的一些要点。 变量的新概念。在Lisp中,所有变量实际上都是指针。值是具有类型的变量,不是变量,分配或绑定变量意味着复制指针,而不是它们指向的指针。 符号类型。符号与字符串的不同之处在于,您可以通过比较指针来测试是否相等。 使用符号树的代码符号。 整个语言始终可用。读取时间,编译时间和运行时之间没有真正的区别。您可以在读取时编译或运行代码,在编译时读取或运行代码,以及在运行时读取或编译代码。 这些要点是什么意思?它们在诸如C或Java之类的语言中有何不同?除Lisp家族语言外,其他语言现在是否具有这些构造?

12
为什么到底是邪恶?
我知道Lisp和Scheme程序员通常会说eval除非绝对必要,否则应避免这样做。对于几种编程语言,我已经看到了相同的建议,但是尚未看到反对使用的明确参数列表eval。在哪里可以找到有关使用潜在问题的说明eval? 例如,我知道GOTO过程编程中的问题(使程序难以阅读且难以维护,很难找到安全性问题,等等),但是我从未见过反对的论点eval。 有趣的是,相同的论点GOTO应该对延续有效,但我看到例如Schemers不会说延续是“邪恶的”-使用它们时应该小心。与eval使用延续的代码相比,他们更不喜欢使用代码(据我所知-我可能是错的)。

6
为什么Clojure除了“符号”外还有“关键字”?
从过去开始,我就对其他Lisps(尤其是Scheme)有所了解。最近,我一直在阅读有关Clojure的文章。我看到它既有“符号”又有“关键字”。我熟悉的符号,但不包含关键字。 其他Lisps是否有关键字?除了具有不同的符号(即冒号)以外,关键字与符号有何不同?
130 lisp  clojure  scheme  keyword 

29
为什么要学习Lisp?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我真的觉得我应该学习Lisp,并且那里有很多好的资源可以帮助我做到这一点。 我不会为复杂的语法所困扰,但是我会在“传统商业程序设计”中找到合适的地方使用它而不是过程语言。 有没有用Lisp编写的商业杀手级应用程序?

10
数据库和函数式编程是否不一致?
我已经从事Web开发已有一段时间了,最​​近开始学习一些函数式编程。像其他人一样,我在将许多这些概念应用于我的专业工作时遇到了很大的麻烦。对我来说,主要原因是我发现FP保持无状态的目标之间存在矛盾,这与我所做的大多数Web开发工作都与数据高度依赖的数据库紧密相关这一事实很不相符。 使我成为OOP方面更具生产力的开发人员的一件事是发现了对象关系映射器,例如用于.Net的MyGeneration d00dads,用于perl的Class :: DBI,用于ruby的ActiveRecord等。这使我远离了从整天编写插入和选择语句开始,并专注于轻松地将数据作为对象使用。当然,当需要使用SQL查询时,我仍然可以编写它们,但是在后台可以很好地抽象它。 现在,转向函数式编程,对于许多FP Web框架(如Links)来说,似乎需要编写许多样板sql代码,如本例所示。Weblocks似乎更好一些,但是它似乎使用了一种OOP模型来处理数据,并且仍然需要为数据库中的每个表手动编写代码,如本例所示。我想您使用了一些代码生成来编写这些映射函数,但是看起来绝对像是非lisp。 (请注意,我没有非常仔细地查看Weblocks或Links,可能只是误解了它们的用法)。 所以问题是,对于Web应用程序的数据库访问部分(我认为这是相当大的),或其他需要与sql数据库进行接口的开发,我们似乎被迫遵循以下路径之一: 不要使用函数式编程 以一种烦人,轻松的方式访问数据,其中涉及手动编写许多SQL或类似SQL的代码ala链接 将我们的函数式语言强制为伪OOP范式,从而消除了真正的函数式编程的某些优雅和稳定性。 显然,这些选择都不是理想的。是否找到了规避这些问题的方法?这里真的有一个问题吗? 注意:我个人最熟悉FP方面的LISP,因此,如果您要提供任何示例并了解多种FP语言,则Lisp可能是首选语言 PS:对于特定于Web开发其他方面的问题,请参见此问题。




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.