标签: lisp

各种ANSI CL实现有何不同?

当我开始从Practical Common Lisp学习CL时,就像书中所说的那样,我开始使用Allegro CL编译器.我停止使用它,因为它的商业,但免费的位没有给我留下深刻的印象.它需要连接到远程服务器才能获得一些许可.

我切换到'clisp'并使用它.现在,我听说过SBCL并计划开始使用它.

所以,问题是:各种ANSI CL实现有何不同?使用一个在另一个上的任何实际经验?

谢谢.

lisp common-lisp

29
推荐指数
4
解决办法
1万
查看次数

如何在Clojure中实现延迟序列?

我喜欢Clojure.困扰我的一个问题是我不知道如何实现懒惰的序列,或者它们是如何工作的.

我知道懒惰序列只评估序列中要求的项目.它是如何做到的?

  • 什么使得延迟序列如此高效以至于它们不会消耗太多堆栈?
  • 为什么你可以在延迟序列中包装递归调用,并且不再为大型计算获得堆栈溢出?
  • 懒惰序列消耗什么资源来做它做的事情?
  • 在什么情况下懒惰序列效率低下?
  • 在什么情况下懒惰序列最有效?

lisp clojure lazy-evaluation lazy-sequences

29
推荐指数
3
解决办法
3588
查看次数

在Lisp(Clojure,Emacs Lisp)中,列表和引用之间有什么区别?

从阅读关于Lisp的介绍材料,我现在认为以下内容是相同的:

(list 1 2 3)

'(1 2 3)
Run Code Online (Sandbox Code Playgroud)

但是,从我在Clojure和Emacs Lisp中使用引用形式时遇到的问题来看,它们并不相同.你能告诉我有什么区别吗?

lisp elisp list clojure quote

29
推荐指数
3
解决办法
3069
查看次数

Haskell是Lisp吗?

我一直在阅读Doets和Eijck撰写的《 Haskell逻辑,数学和编程之路》(2004)。这似乎是一本受人尊敬的书,但是当我声称Haskell是Lisp家族的一员时,我感到震惊。这个准确吗?我将用S表达式,不纯函数和列表作为Lisps的特征,并将其作为唯一的复合数据结构。Haskell没有任何东西。该主张有什么理由?

lisp haskell language-comparisons

29
推荐指数
3
解决办法
6722
查看次数

实际使用咖喱功能?

有很多关于如何理解函数的教程,以及stackoverflow中的许多问题.然而,在阅读了The Little Schemer,几本书,教程,博客文章和stackoverflow主题之后,我仍然不知道这个简单问题的答案:"有什么关系?" 我明白如何理解一个功能,而不是"为什么?" 在它背后.

有人可以向我解释一下curried函数的实际用法(在每个函数只允许一个参数的语言之外,使用currying的必要性当然非常明显.)

编辑:考虑到TLS的一些例子,有什么好处

(define (action kind)
    (lambda (a b)
        (kind a b)))
Run Code Online (Sandbox Code Playgroud)

而不是

(define (action kind a b)
    (kind a b))
Run Code Online (Sandbox Code Playgroud)

我只能看到更多的代码,没有更多的灵活性......

lisp scheme haskell functional-programming currying

29
推荐指数
2
解决办法
4598
查看次数

在编程语言和范例的背景下,"纯粹"意味着什么?

换句话说,是什么让一种语言变得纯洁?

例如,Smalltalk被认为是纯粹的面向对象语言.可以说Haskell和Lisp是纯函数式语言.

当我们说纯粹时,这是否意味着他们不具备其他编程范式(这远非事实),还是意味着它们被设计用于那种"纯粹的"X范式?

lisp language-agnostic paradigms haskell

29
推荐指数
2
解决办法
4274
查看次数

(交互式)在Emacs Lisp函数中意味着什么?

Emacs Lisp函数通常像这样开始:

(lambda () (interactive) ...
Run Code Online (Sandbox Code Playgroud)

"(互动)"有什么作用?

lisp emacs

28
推荐指数
3
解决办法
4075
查看次数

28
推荐指数
1
解决办法
1万
查看次数

对于使用一流函数无法做到的Lisp宏,你能做些什么?

我想我理解Lisp宏及其在编译阶段的作用.

但是在Python中,您可以将函数传递给另一个函数

def f(filename, g):
  try:                                
     fh = open(filename, "rb") 
     g(fh)
  finally:
     close(fh) 
Run Code Online (Sandbox Code Playgroud)

所以,我们在这里得到懒惰的评价.我可以用宏做什么而不用函数作为第一类对象?

lisp python macros

28
推荐指数
4
解决办法
5842
查看次数

这些天学习LISP有用吗?

前几天我在车库出售时拿到了一本LISP书,只是想知道是否值得花一些时间.

lisp

27
推荐指数
6
解决办法
9813
查看次数