setf

    0熱度

    1回答

    從我的老師告訴我,我應該使用let聲明局部變量和setf聲明全局變量。 我試圖運行下面的代碼: (let (state-list (problem-initial-state problem)) (print state-list)) ,我也得到NIL。 但是,當我嘗試以下方法: (setf state-list (problem-initial-state problem))

    0熱度

    1回答

    這個問題是關於通用Lisp setf宏,以及它如何評估其參數形式(和子形式) - 即只有一次,如果它們碰巧不止一次出現。 (這也部分跟進在Using get-setf-expansion在評論中給出的例子。) ;create a list of two hash tables * (defparameter hts (list (make-hash-table) (make-hash-table

    0熱度

    1回答

    我試圖定義一個宏,該結構將在結構中使用結構的名稱,鍵和哈希表的名稱,並定義函數以訪問和修改鍵下的值哈希值。 (defmacro make-hash-accessor (struct-name key hash) (let ((key-accessor (gensym)) (hash-accessor (gensym))) `(let ((,key-accessor

    2熱度

    1回答

    是一個setf能夠在同一個地方在和CLHS一個位置在弱勢族羣的PAIP? 我試圖找出究竟是什麼一個地方是Common Lisp的,但給我的HyperSpec的解釋 代替正。 1.一種適合用作一般性參考的形式2.這樣的地方提到的概念位置[1]。 只是有限的幫助。 (我知道這是不是真的適合所以這類的問題,但如果有人知道一個很好的文章,解釋setfable /地點/位置我會很感激的鏈接/參考)

    11熱度

    2回答

    下面是這個問題:我不「獲得」setf-expanders,並想了解它們是如何工作的。 我需要了解他們是如何工作的,因爲我有這似乎是爲什麼你應該學會SETF擴張器的典型實例的問題,問題如下: (defparameter some-array (make-array 10)) (defun arr-index (index-string) (aref some-array (parse-

    3熱度

    1回答

    我在Common Lisp(CLISP)中實現了一種演化算法,我遇到了一個問題。 我有一個樹狀類: (defclass node() ((item :initarg :item :initform nil :accessor item) (children :initarg :children :initform nil :accessor children) (nu

    1熱度

    2回答

    在C++中的小數點前的零,我用下面的語句來顯示輸出: // example float x = 0.66004; cout.setf(ios::fixed); cout.setf(ios::showpoint); cout.precision(2); cout << x; 我的輸出看起來像 0.66 如何防止顯示小數點前的零點?我想: .66

    2熱度

    2回答

    我試圖找到一種方法來創建切換行和列的數組副本。 我想通過設置陰影數組指向原始數組的指針,使item [2 1]指向item [1 2]。 使用指針會產生這樣的效果,即在更改原始數組時,陰影數組也會反映該更改。 到目前爲止,我想出了陣列中每個項目都使用長度爲1的位移數組。 它的作品,但結果是陣列的數組。 我的問題是,有沒有更好的方法來做到這一點? 是否有一種方法可以通過陰影數組使用setf來設置原始

    1熱度

    2回答

    目前正在學習Common Lisp的,下面的彼得·塞貝爾的實用的Common Lisp(我在第11章,約集合),我有困難,瞭解背後的引擎蓋setf作品。 考慮以下表達式: (setf a 10) 我完全地理解如何解釋器可以:(1)檢索名爲a變量,和(2)改變它指向到10值。現在 ,我特定集合的情況下,例如列表,載體或哈希表,SETF也可以用來改變由收集包含的值。例如,用向量: (defpara

    6熱度

    3回答

    我知道當你想在Lisp中進行動態/全局綁定時,可以使用defparameter或defvar。我也知道你可以使用defun參數列表或let語句來製作詞彙綁定,幾乎無處不在。 什麼我不知道是它到底是什麼我做當我提出這樣的,其中x未聲明或代碼中使用其他地方的聲明: (setf x 10) 這似乎做工精細,並x似乎不像一個詞彙變量。它實際上是一個動態的全球化,就像我使用defparameter或de