lisp

    0熱度

    3回答

    所以我試圖構造一個解釋器,可以處理用戶定義的lambda函數,其中可以有可變數量的參數。代碼看起來有點像這樣: ((lambda (x &optional y z) (func_body)) args)) 眼下,結果我可以是沒有它被評估的正常功能;例如,如果我定義square X = (* X X)和運行我的解釋,我得到: (* X X) 我需要被評估後的上述功能。我已經嘗試了諸如: (l

    2熱度

    1回答

    我試圖創建一個具有默認值&optional參數的lisp宏。不幸的是,參數的處理方式有所不同,具體取決於它是從默認值還是從提供給宏的參數中讀取。下面的代碼片段重現該問題: (setf table1 '((1 2 3) (4 5 6)) table2 '((10 20 30) (40 50 60))) (defmacro test-lambda (f

    0熱度

    1回答

    我正在與使用elisp的人一起工作,我們一直在努力使用多維數組。 的問題是,如果我們嘗試設置使用 (setf (elt (elt m-array 0) 0) 5)) 一個值,我們最終得到的是這樣的 [[0 0 0 5] [0 0 0 5] [0 0 0 5] [0 0 0 5]] 這不是我們想要的。現在Common Lisp有我們需要的支持來解決這個問題。不幸的是,我們只能和elisp一起

    0熱度

    2回答

    我已經幾次閱讀了LOL的第6.7部分,但我仍然無法完全理解以下內容。 以前對外部代碼關閉的綁定現在已經公開供我們修改,即使這些綁定已編譯爲某種效率並早已將其存取符號遺忘了。 如果綁定符號基本上被編譯爲封閉環境中的指針,那麼如何將符號傳遞給已經編譯好的函數,並且函數能夠以某種方式比較符號? 我已經與pantest例子搞亂CLISP中,我可以看到我能夠改變這兩個acc和this內pantest。我可以

    1熱度

    1回答

    我想從列表中更改一個值,然後用另一個參數「返回」listh中的整個列表。我能夠達到這個價值,但是我不知道如何在這個變化的情況下返回列表清單。狀態由((獲取板狀態)(get-xycoordinate狀態)(獲取取向狀態))組成。 get-board返回板,get-xycoordinate返回(x,y),get-xcoordinate返回x個位置。 (define (get-board state)

    0熱度

    2回答

    這是我的lisp代碼。 (defun f (lst) (append (subst (last lst) (first lst) (car lst)) (subst (first lst) (last lst) (cdr lst))) ) (F「(A B C d)) 此代碼的輸出爲(d B C A) 功能運作良好,但它並沒有因爲符號的結束。 我想

    0熱度

    5回答

    下面的功能是給我一個審查表: (define mystery(lambda(m n) (cond ((= m 0) n) ((= n 0) m) (#t (+ 2(mystery(- m 1)(- n 1)))) ))) 前兩個條件簡單,它只是遞歸otherwise是交代不清的我。在我看來,遞歸將繼續,直到

    -2熱度

    1回答

    (defun bubbleUp (n) (cond ((null n) nil) ((null (cdr n)) n) ((> (car n) (car (cdr n))) (append (list (car (cdr n))) (bubbleUp (cons (car n) (cdr (cdr n)))))) (t (a

    1熱度

    1回答

    我看到,如果我想創建一個人工智能軟件,Prolog和Lisp是我應該使用的兩種語言。 對於這兩者來說,這與C++ \ C \ C#無關? 這意味着更容易創建人工智能軟件?或者我可以使用更多的功能來實現我的目標,即與其他我沒有的功能。

    0熱度

    1回答

    我有以下功能將數字輸入轉換爲這些數字的部分翻譯字輸出。 使用產品和商,它將數字的單詞表示分成幾組,然後將數字分組。 例如: (number-name 87969087) -> '(87 million 969 thousand 87) (number-name 1000000) -> '(1 million) 我試着通過完全翻譯那些低於1000以及數字來完成我的問題。我試圖實現一個小於100