lisp-2

    7热度

    3回答

    做任何lisps支持他们头上的嵌套s表达?例如 ((f 2) 3 4) 为其(f 2)推测计算结果为函数/宏应用上3 4。 是否有可能有一个lisp支持这样的事情?还是有技术限制,禁止这种做法/使其不切实际?

    2热度

    2回答

    在Ubuntu上,如果我跑MIT-计划,它会显示一个功能的程序: 1 ]=> (define (sq x) (* x x)) ;Value: sq 1 ]=> (sq 3) ;Value: 9 1 ]=> sq ;Value 11: #[compound-procedure 11 sq] 和伯克利的STK将显示sq作为封闭: STk> (define (sq x) (* x

    7热度

    4回答

    我正在阅读Peter Norvig的人工智能编程范式,我遇到了一个我自己无法解决的问题(这是我对Lisp的介绍)。这个问题确实很小,但显然不是我的小脑袋可以解决的问题。 为什么当一个函数的值是lambda时,将该函数用作列表的第一个元素是错误的。例如: Lisp语言: (defun some-func() #'(lambda (x) x)) ;; At REPL ;; Does n

    2热度

    3回答

    我想存储像print函数的变量,这样我就可以输入一些短像p,如: 在Scheme: (define print display) (print "Hello world\n") ;; alternate way (define print 'display) ((eval print) "Hello world\n") 同样的方法似乎并不Common Lisp工作: (defvar p

    3热度

    1回答

    在Clojure中,我可以定义一个函数序列,然后调用他们就像他们自己被任何其他值,像这样: (doseq [op [+ - * /]] (println (op 1 2 3 4))) 产生以下的输出: 10 -8 24 1/24 nil 试图做同样的Common Lisp中导致什么,但错误: (dolist (op '(+ - * /)) (print (op

    2热度

    3回答

    在Clojure中可调用的对象,哈希映射和向量实行invoke,使得它们可被用作功能,例如 (let [dict {:species "Ursus horribilis" :ornery :true :diet "You"}] (dict :diet)) lein> "You" ,或者对于载体, (let [v [42 613 28]] (v

    5热度

    4回答

    我知道Common Lisp对函数和变量有不同的绑定环境,但我相信它还有另一个用于tagbody标签的绑定环境。还有更多的绑定环境吗?如果是这样,那么将Common Lisp分类为Lisp-2是否公平? 这些问题不意味着迂腐或骑自行车脱落,我只是想更好地了解Common Lisp的,并希望得到一些指引到哪里更深入地研究它的规范。

    0热度

    2回答

    目前与亚历山大的curry咖喱功能必须调用funcall。但是,可以设置新功能的symbol-function,这样我们就可以在没有它的情况下将其视为真正的功能。画报上https://lispcookbook.github.io/cl-cookbook/functions.html#with-the-alexandria-library: (defun adder (foo bar) "