lisp-2

    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) "

    7熱度

    3回答

    做任何lisps支持他們頭上的嵌套s表達?例如 ((f 2) 3 4) 爲其(f 2)推測計算結果爲函數/宏應用上3 4。 是否有可能有一個lisp支持這樣的事情?還是有技術限制,禁止這種做法/使其不切實際?