Questions tagged «lisp»

Lisp是一种基于lambda演算的通用功能编程语言(家族),具有将源代码作为数据结构进行操作的能力。

3
为什么c系列是LISP系列而不是数学/ CS计划的标准CS学习团?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 为了自我改善,我一直在熟悉LISP。我注意到的一件事是LISP在数学范式中比在C语言中更重要。语法和设计结构似乎直接反映了算法的实际数学模型。对我来说,为什么即使是基于数学的优秀CS程序也学习C而不是LISP,这对我来说都没有道理。我认为LISP比C更直接采用更高的数学概念。我并不是说您不能在C中对数学结构进行建模。我只是注意到LISP对于数学家来说似乎是一成不变的。 我已经在JAVA学校中阅读了许多Joel Spolsky的咆哮,而没有读到(我同意他的评价),但是我的学校并没有因此而教JAVA。他们在教授诸如指针,算法设计,递归甚至汇编指令之类的基本概念方面非常严格。但是,他们在C和c ++中都完成了这一切。有谁知道原因和/或其历史?

8
在CL和Python之间进行Web开发
我来自Java背景,在阅读了Paul Graham的这篇小文章之后,我开始想知道如何选择一种新的语言,即Common Lisp,以加快工作速度(我是一名Web开发人员)。 我目前正在编写宠物项目,但我有一些未来的业务计划。保罗在论文中谈到LISP是“秘密武器”。我不知道十年后这个说法是否正确,但是我将脚趾插入了一个不错的CL教程中,看起来LISP对于Web开发可能更胜一筹。 Paul还提到Python是我真正熟悉的不错的选择。我的问题是:我将来的Web项目应该选择哪个? 我在想什么: 我不会开发桌面应用程序,因此可以选择我喜欢的任何语言。 python似乎有一个很大的社区,因此与lisp相比,它拥有更多的库/框架 我发现Lisp具有某些功能(例如宏),在其他任何地方都找不到 我通常独自工作或与其他1-2位程序员一起工作,但要找到一个精通Lisp知识的人可能很难 所以你怎么看?

9
资源,以提高您的递归理解?[关闭]
按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 6年前关闭。 我知道什么是递归(当一个patten在其内部重新出现时,通常是一个函数,在有条件的突破后会在其一行上调用自己...对吗?),如果我仔细研究它们,我就能理解递归函数。我的问题是,当我看到新的示例时,最初总是很困惑。如果我看到一个循环,或者一个映射,压缩,嵌套,多态调用等,我仅通过查看就知道发生了什么。当我看到递归代码时,我的思考过程通常是“这是wtf吗?” 其次是“哦,这是递归的”,其次是“如果他们说可以的话,我想它一定有用。” 那么,您在此方面有什么技巧/计划/资源来培养技能吗?递归是一个很奇怪的概念,因此我认为解决它的方法可能同样很奇怪而且很模糊。

3
是否可以将高级语言编译为可读的C ++?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 C ++从许多方面来说都是一门伟大的语言,但是如果没有IDE编写某些东西特别麻烦。作为VIM用户,如果我可以使用更高级的语言,使我能够使用S-Expressions以及可能的类似Lisp的宏编写C ++,这将非常有趣,从而可以生成简洁的代码,同时避免重写相同的模式再三,一而再再而三。 我已经问过freenode并测试了一些想法,例如使用ECL和Bigloo等编译器编译Lisp-> C,但是没有一个生成特别干净的C代码。 在这个问题上有什么作品吗?

9
Greenspun的第十条规则,每个大型项目都包括Lisp解释器吗?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 Greenspun的第十条规则(实际上是唯一一条规则)指出: Any sufficiently complicated C or Fortran program contains an ad hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp. 我的记忆是,有一些关于该主题的论文,也许是针对Borland的Quattro(电子表格)项目的,可能还有其他论文。Google没有帮助,也许没有想到合适的搜索词。我正在寻找支持该主张的论文或文章。

2
我们可以建造一台功能正常的计算机吗?
就像FP一样,最终,我们所有的程序都是结构化的。也就是说,我们制作它们的纯度或功能无关紧要-它们始终会转换为汇编,因此实际上在幕后运行的是指令,状态和循环。我们有点模仿FP。 作为硬件新手,我的问题是:为什么我们不使用实际上以功能样式计算事物的计算机体系结构?例如,一台计算机可能由原始的“功能芯片”组成,例如“ concat”,“ map”和“ reduce”,而程序只会告诉计算机如何在这些芯片之间流动数据以计算所需的结果,例如连接语言。 这真的没有道理,但可以说明我在想什么。

2
Clojure中的方括号和花括号是否仍然是S表达式?
我正在尝试学习Lisp,并查看那里的所有Lips及其差异。 我看到在Scheme的某些实现中,您可以将方括号与圆括号互换使用以提高可读性,因此,由于对它们进行了相同的处理,因此我认为它们仍然像其他所有内容一样只是S表达式。 但是,在Clojure中,我看到方括号和花括号用于表示不同的数据类型,例如向量等。这些还是仍然有效的S表达式,还是必须将它们视为原子?这不是“破坏”整个S表达式的概念,从而使Clojure成为“不纯的” Lisp吗?
12 lisp  clojure 


3
字节码编织与Lisp宏
我一直在阅读人们为Java和C#等语言编写的库,这些库利用字节代码编织来完成诸如拦截函数调用,插入日志记录代码之类的事情。我还一直在阅读Lisp / Clojure宏试图更好地了解如何利用它们。我对宏的了解越多,它们似乎提供的功能与字节码编织库相同。功能是指在编译时处理代码的能力。 我一直在查看的库示例包括AspectJ,PostSharp和Cecil。 有什么可以做的而不是另一种?他们实际上解决了相同的问题,还是我在比较苹果和橙子?

5
函数式编程中的数据结构
我目前正在使用LISP(尤其是Scheme和Clojure),并且想知道函数式编程语言中如何处理典型的数据结构。 例如,假设我想使用图形寻路算法解决问题。通常如何用一种功能编程语言(主要是对可以应用于LISP的纯功能样式感兴趣)来表示该图?我是否会完全忘记图并以其他方式解决问题?

3
为什么迭代版本需要更长的时间?
我查看了http://programming.lispdream.com/blog/2011/06/recursion-vs-iteration/,发现在他执行阶乘函数的递归和迭代实现时,迭代实际上需要更长的时间给定n = 1,000。我不知道为什么(他没有解释,而是说这是对读者的练习)。对不起,我很陌生。

2
编写LISP Web服务的策略/资源?
背景:我想用Common Lisp编写一些功能齐全的Web服务,因为愚人节对我公司其余的开发团队进行了恶作剧。 这有两部分:从MySQL读取信息/将信息写入MySQL数据库,以及通过HTTP接收/处理/响应请求。(实际上,还有第三部分,编写自动化测试,但是我的质量保证合作伙伴将负责该部分。) 经过一番谷歌搜索之后,我在这里找到了很好的资源(http://www.ymeme.com/creating-dynamic-websites-lisp-apache.html),但是我很惊讶似乎只有一个演练。是否有人认识其他人,或者谁可以分享在CLisp中编写Web服务的个人经验?
11 lisp 


4
我应该从Scheme学到什么?
我想知道我可以从Scheme中学习哪些独特的功能来帮助我成为更好的程序员? 我在主流语言方面有很多经验,并且我希望拓宽视野并了解其他语言所缺少的功能方面。我熟悉javascript的闭包,C#的lambda表达式,我想知道我能专注于其他语言中缺少的东西吗?除了Lisp语法外,我觉得到目前为止,我已经用其他语言遇到过。 Scheme / Lisp的独特之处是什么会教给我一些新东西?

1
不基于数组的计算机体系结构
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 瓦德勒(Wadler)撰写的有关函数式编程Monad(Haskell)的原始论文 历史悠久的另一个问题是,是否需要使程序基于数组更新。由于在基于数组的算法和体系结构开发方面投入了大量精力,因此我们将回避这一辩论,并简单地假设答案是肯定的。 没有引用或暗示其他可能的体系结构。我听说过一些适合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.