Questions tagged «lisp»

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

5
如何使Clojure函数采用可变数量的参数?
我正在学习Clojure,并且正在尝试定义一个函数,该函数采用可变数量的参数(可变参数函数)并将它们相加(是的,就像+过程一样)。但是,我不知道如何实现这种功能 我所能做的是: (defn sum [n1, n2] (+ n1 n2)) 当然,该功能仅采用两个参数和两个参数。请教我如何使其接受(和处理)数量不确定的参数。

2
在哪里学习如何实际使用Common Lisp [关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow的主题。 5年前关闭。 改善这个问题 我是一名试图学习Common Lisp的C ++程序员。我看过《 Lisp之地》等书籍,并阅读了许多有关Lisp各种优点的在线文章。但是,我需要一些建议。 我所读到的有关Common Lisp的几乎所有内容都与它的惊人性,完成它的速度有多惊人以及它如何惊人地解决了30年前现代编程语言的许多问题有关。此外,还有多么惊人的宏,以及如何在Lisp中使用每个编程范例(OO,功能,基于actor的对象等等),以及列表如何成为最终的数据结构。基本上把Lisp当作一种研究语言,并说它是多么与众不同和具有革命性。 所有这些东西可能都是正确的,但是问题是我还没有多少东西可以做一些实际的事情,例如读取文件并将其拆分为单词并对其进行一些处理。为了学习Common Lisp,我对学习Common Lisp并没有兴趣,但是为了让我以前在C ++中所做的事情变得更快,出错更少。 因此,我的问题是什么是最好的资源(无论是网站,书籍还是其他任何东西),该资源重点在于教授如何使用Common Lisp执行常见的编程任务,例如 如何读取文件 如何读取文件,替换文件中的单词并将结果写回到文件中 遍历目录和其他文件系统中的文件 与SQL数据库交互 通过套接字进行通信 诸如Web服务器之类的线程 创建GUI 对二进制文件执行操作 编写一个解析器(不是Lisp中Lisp的解释器,据我了解这就像Lisp的5行一样) 与操作系统(例如,用C或C ++编写的东西)进行交互以完成Lisp无法本地完成的工作 如何用C语言编写Lisp扩展名(可以吗?) 嵌入lua解释器(可以吗?) 而且也不太实际,立即注意到,如何实现共同的数据结构,口齿不清,如堆,栈,二叉搜索树等,但可能只是使用像Lisp的列表操作car,并cdr以正确的方式。我不知道。 我高度怀疑,使用Lisp不可能实现以上任何一项(除了清单中的最后两个例外),否则人们不会非常喜欢它。我读过的上述内容提到了许多用Lisp(Yahoo!网站商店)编写的现实世界软件。 但是,在以前使用(the?)命令性语言进行编程之后,我急于使用我所获得的新知识来编写实际的应用程序。那么用Lisp学习编写实用软件的最快方法是什么? 顺便说一句,我看到彼得·塞贝尔的实践Common Lisp的,但是,以TOC来看,它只是触及了一些我想学习使用Lisp的做的事情。 我是否可以再提出一个问题(对不起,如果将两个问题合并为一个问题),在哪里可以找到对Lisp函数和内容的引用? 我真的很想喜欢Lisp。
79 lisp  common-lisp 

14
如何使用Lisp或Scheme进行网络编程?
我通常用PHP,Ruby或Perl编写Web应用程序。我正在研究Scheme,我想尝试使用这种语言的一些Web项目。但是我找不到最佳的环境。 我正在寻找以下功能: 一种获取请求参数的简单方法(类似:get-get#key,get-post#key,get-cookie #key)。 MySQL访问。 HTML表单生成器,处理,验证器等。 用于过滤用户输入数据的助手(诸如htmlentities,用于转入查询的转义变量等)。 牙线。 与GNU / Linux友好。 因此,在此先感谢所有答复。
78 lisp  scheme 

4
Scheme和Common Lisp之间的实际区别是什么?(或Lisp的其他两种方言)
注意:我不是在问要学习哪个,哪个更好或者类似的东西。 我选择了SICP的免费版本,因为我觉得读起来会很高兴(我听说过很多不错的东西,并且我对编程的这种方面很感兴趣)。 我知道Scheme是Lisp的方言,我想知道:Scheme与Common Lisp之间的实际区别是什么? 似乎有很多关于“ CL具有更大的stdlib ...方案对于实际编程不利的..”,但实际上并没有说“这是因为CL是这个/拥有这个”。

3
如何看懂Lisp / Clojure代码
非常感谢所有美丽的答案!无法仅将其中一个标记为正确 注意:已经是Wiki 我是函数编程的新手,虽然我可以阅读函数式编程中的简单函数,例如,计算数字的阶乘,但我发现很难阅读大函数。部分原因是因为我无法找出函数定义中较小的代码块,部分原因是因为我很难( )在代码中进行匹配。 如果有人可以引导我阅读一些代码并提供一些有关如何快速解密某些代码的提示,那将是很好的。 注意:如果我盯着它看10分钟,我就能理解该代码,但是我怀疑如果用Java编写相同的代码,那将花费我10分钟。因此,我认为要熟悉Lisp风格的代码,我必须更快地做到这一点 注意:我知道这是一个主观问题。我在这里没有寻求任何可证明的正确答案。只是关于您如何阅读此代码的注释,将受到欢迎并且非常有帮助 (defn concat ([] (lazy-seq nil)) ([x] (lazy-seq x)) ([x y] (lazy-seq (let [s (seq x)] (if s (if (chunked-seq? s) (chunk-cons (chunk-first s) (concat (chunk-rest s) y)) (cons (first s) (concat (rest s) y))) y)))) ([x y & zs] (let [cat (fn cat …
76 clojure  lisp 


17
我应该学习哪个Lisp?[关闭]
从目前的情况来看,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我应该学习哪个Lisp(方言),为什么? CL和Scheme之间的碎片化减慢了吸收速度(至少对我而言!)。 因此,请给我“真实答案”! 我已经尝试阅读功能比较,它们似乎陷入了esoterica(我不完全了解)的困境,例如方言是否完全尾部递归等。我希望大家(共同)可以使不透明的差异变得清晰。 我喜欢的东西 良好的库支持,良好的环境和Unicode支持。 我不喜欢的事 火焰战。一开始有用的功能,但会干扰长期学习。 更新 我一直在使用MzScheme,一旦获得了readline支持,我会感觉很好。我没有在Unix上运行GUI,因此对我来说这似乎是一个不错的环境选择。 我也很高兴Clojure在debian上易于安装.deb软件包,因此更容易使用。这是一个巨大的胜利。尽管下面有些人很容易发火,但进入门槛低仍然是一个胜利。我喜欢被人喂。 在阅读了很多SICP之后,我确实更好地了解了尾递归的问题。
71 lisp  clojure  scheme 

18
Lisp灵活性的实际例子?[关闭]
从目前的情况来看,这个问题不适合我们的问答形式。我们希望答案能得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 有人试图将Lisp卖给我,这是一种超级强大的语言,可以完成所有工作,然后再做一些。 是否有一个实际的Lisp的电源的代码示例?(最好与以常规语言编码的等效逻辑一起使用。)

9
为什么Lisp社区如此分散?[关闭]
从目前的情况来看,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 首先,不仅有该语言的两个主要方言(Common Lisp和Scheme),而且每个方言都有许多单独的实现。例如,Chicken Scheme,Bigloo等……每个都有细微差别。 从现代的角度来看,这很奇怪,因为如今的语言倾向于具有确定的实现/规范。考虑一下Java,C#,Python,Ruby等,其中每个都有一个单独的权威站点,您可以从中找到API文档,下载等。当然,Lisp早于所有这些语言。但是话又说回来,甚至C / C ++也已经标准化(或多或少)。 这个社区的分裂是由于Lisp的年龄造成的吗?还是不同的实现/方言旨在解决不同的问题?我知道有充分的理由使Lisp永远不会像在单一的确定性实现中成长起来的语言那样统一,但是在这一点上,有充分的理由使Lisp社区不应该朝这个方向发展吗?
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.