1
16
这有点像骑自行车,只是需要练习。试着用它解决一些问题,也许吧 ProjectEuler 最终它会发出咔嗒声。 有人提到《小阴谋家》这本书,这本书读得很好。虽然它针对的是一个计划,但实际问题值得研究。 祝你好运 |
2
14
嗯,对我来说,我遇到的问题和我开始做OCAML时遇到的问题一样,但关键是你必须开始思考 你想从代码中得到什么 和 不 数学思考 就像这样:
只需考虑一般情况和基本情况,并且您正在发送数据而不是修改它(除非您想要修改它;)。 祝你好运 |
3
6
你可以退房 The Little Schemer . |
4
5
http://www.defmacro.org/ramblings/lisp.html 从常规命令式程序员(Java、C#等)的角度来看,这是一个非常简单、循序渐进的lisp思维入门。 |
5
4
出于教育目的,我推荐PLT计划。它是一个可移植且功能强大的环境,具有非常好的示例和更好的文档。它将帮助您以一种非常清晰的方式逐步发现函数式编程背后的思想。选择一个要实现的小应用程序将帮助您学习新语言。 此外,H.Abelssn、G.Sussman和J.Sussman的《计算机程序的结构和解释》是一本关于方案(和编程)的非常好的书。 当做
|
6
4
|
7
4
关于Lisp的一些想法,不是Clojure特有的(我不是Lisp专家,所以我希望它们大部分是正确和有用的): AST编码我对编译器或解释器理论知之甚少,但每次我用Lisp编写代码时,我都会惊讶地发现它就像是在直接构建AST。
一种可编程程序设计语言所以代码块只是嵌套列表,列表操作是语言的一部分。因此,您可以非常轻松地编写生成Lisp代码的Lisp代码(请参见Lisp宏)。这使Lisp成为一种可编程(本身!)编程语言。 DSL 或者Lisp中的解释器非常简单(另请参见 meta-circular evaluation 不要重启任何东西在大多数Lisp系统中,代码(包括文档)可以在运行时进行内省和热交换。 然后,大多数Lisp系统都有一些从CLOS派生的对象系统,这是一种高级(与许多OOP实现相比)和可配置的对象系统(参见 The Art of the Metaobject Protocol 所有这些特性都是很久以前发明的,但我不确定它们在许多其他编程语言中是否可用(尽管大多数都在追赶,例如闭包),因此您必须“重新发现”并通过实践来习惯这些特性(参见其他答案中的书籍)。 |
8
3
记住:都是数据! |
9
2
编写一些Lisp擅长的简单经典函数,如
了解Lisp对于这类无副作用的功能程序是很好的。 它对于有状态的副作用(非功能性)程序也很有用,但这些程序更像是“程序”而不是“功能”。
|
10
2
容易的
好吧,好吧,你的大脑可能没有Emacs。说真的,您需要做的是真正擅长递归。当试图将递归的概念扩展到规范示例之外时,这可能是一个很大的大脑扭曲,但最终会导致更流畅的lispy代码。 而且,很多人都会被括号挂断,我真的不知道为什么-语法非常简单和一致,可以在几分钟内掌握。对我来说,我在学习C++和java之后来到了方案,我一直认为“函数”和“运算符”之间的区别是错误的二分法,看到区别消除是令人振奋的。 就函数式编程而言,只要您能够理解函数是一级值并且可以传入和传出其他函数这一事实,您就应该可以了。随着时间的推移,这一点的有用性将变得越来越明显,但是您可以编写函数获取和函数返回函数就足够了。 最后,我不确定Clojure对宏有什么支持,但它们被认为是lisp的重要组成部分。不过,在您对上述各项非常熟悉之前,我不会担心学习它们——尽管宏非常有用且用途广泛,但与我提到的其他技术相比,它们的使用频率也较低。 |
11
1
|
12
1
一个巨大的帮助是参加一门课程,比如。。。嗯。。。LISP!:)家庭作业会迫使你们面对很多概念,在学期结束之前很久,我就明白了。
|
13
1
祝你好运我花了大约一半的时间才完成了大学的“编程语言”课程,然后计划“点击”。然而,一旦发生了这种情况,一切都变得有意义了,我爱上了函数式编程。 用Lisp编写一个Lisp解释器。 |
14
1
如果你还没有读过alrady,那就读一读是什么让lisp成为一种独特的语言。如果您不先这样做,您将尝试在其他一些编程语言中做同样的事情。 然后试着实现一些小事情(试着让它对你有用,否则你可能没有动力)。 Lisp in a box 这是一个让你的脚湿透的好方法。 |
15
1
对我来说,重要的是确保你以“口齿不清”的方式做每件事。不要想‘在Java中,我会在这里使用for循环,在Lisp中,我该如何处理for循环?’但是要阅读足够多的示例和教程(正如有人指出的, SICP 这是完美的)当代码看起来是“Lisp-y”时,您可以开始发现并识别公共语言范例。 我当然知道看到我刚写的一些代码时的感觉,并且直觉地知道它对于该语言和平台/框架来说是正确的习惯用法——我认为,这是当它“点击”时的感觉。 编辑 |
16
1
谁说它会点击? 我总是感到困惑 但是如果你想一想在lisp宏后面隐藏多少抽象是可能的。然后你的大脑就会爆炸。 :) |
17
1
我会去查一下编程Clojure。这是一本适合非口齿不清的人的好书。 |
18
1
除了其他销售员已经提出的建议外,这是我的2美分:
|
lightning_missile · 词法范围和共享对象 6 年前 |
Alexandru Popa · SBCL中奇怪的宏扩展错误 6 年前 |
Jacky · 编辑列表中的每个偶数索引元素 6 年前 |
HappyFace · lisp典型缩进约定背后的规则是什么? 6 年前 |
Jorge · 在公共Lisp中初始化计数器变量 6 年前 |
Rorschach · cl循环破坏性修改cons单元 6 年前 |