我大部分的开发工作都是在Common Lisp中进行的,但有时候我想要切换到Scheme(例如阅读《Lisp in Small Pieces》时、当我想要玩转continuations时或者当我想要在Gauche中进行一些脚本编写时)。在这种情况下,我最不适应的地方是没有Slime(是的,你可...
基本上,何时应该使用 Emacs Lisp 的 function 程序?我没有找到任何例子表明如果将函数作为参数传递,使用 'like-this 还是 #'like-this 会有行为差异。事实上,如果我评估 (eq 'goto-char #'goto-char),它将返回 t。 我遇到的 ...
我听说过函数式编程语言,想学一门。虽然主要是出于兴趣,但我希望这会提高我的编程技能。 我主要使用C#/.NET,所以我的首选是学习F#(因为它在.NET和Visual Studio上很熟悉)。另一方面,我想知道F#是否有像Lisp宏或Haskell高阶函数这样的功能。 你能比较一下F#、H...
我对函数式编程范式还很陌生,但迄今为止我很喜欢它。由于我正在从事游戏开发,我想尝试在纯函数式编程风格中编写一些游戏。我不介意语言 - 不管是 Erlang、Haskell、Lisp 还是 Ruby(我发现它支持函数式编程特性)。 显然,要学习函数式编程(实际上是任何事情),最好的建议就是学习...
我一直在和The Little Schemer一起学习Scheme,并使用PLT-Scheme作为我的环境。 The Little Schemer在递归方面帮助了我很多(现在对我来说很直观),但我被书中介绍“collectors”的部分卡住了,以及将整个函数称为“continuation”。...
有人可以推荐一些解释Homoiconicity概念的文章吗,尤其是使用Clojure进行解释。为什么Clojure是同构的,但在其他语言如Java中很难实现呢?
我正在对一个模块进行字节编译。它给我这个警告: Warning: cl package required at runtime 为什么会出现这个警告? 我很清楚我正在使用 cl 包。 实际上,模块中有一个 (require 'cl) 语句。 如果使用 cl 相关内容有问题吗? 如果有的话,...
我不理解Lisp如何能够同时编译和动态执行。一个语言要想操作、修改和生成代码,难道不必须是解释型的吗?一个语言是否完全可以编译而仍然具有动态性?还是我缺少某些知识点?Lisp到底做了什么使其既能被编译又能够动态执行?
通常代码看起来像这样:(one-thing (another-thing arg1 (f arg5 r)) (another-thing arg1 (f arg5 r))) 为什么它不喜欢这样写?(one-thing (another-thing arg1 (f arg...