clos

    5熱度

    1回答

    我有這樣一個 (defclass shape() ((color :initform :black) (thickness :initform 1) (filledp :initform nil) (window :initform nil))) 類是有共同點,口齒不清的功能如何讓這些插槽的列表,如果我只知道這個類的實例?

    4熱度

    2回答

    我需要在運行時創建一個類,可能不需要使用eval。知道該元類協議不完全共Lisp的規範,通過The Common Lisp Object System MetaObject Protocol瀏覽後,我嘗試下面的代碼來創建一個類,實例化,並實例的槽值設置爲一個數字: (defparameter *my-class* (make-instance 'standard-class

    3熱度

    2回答

    我想使用名稱,如elt,nth和mapcar以及我正在創建的新數據結構,但這些名稱指定普通函數,所以我認爲,需要被重新定義爲通用功能。 推測這是重新定義這些名字的糟糕形式嗎? 有沒有辦法告訴defgeneric不要生成程序錯誤並繼續並替換函數綁定? 有沒有一個很好的理由,這些不是通用函數或只是歷史? 這裏請問您認爲的智慧和最佳做法是什麼?

    0熱度

    3回答

    我想知道如何存儲單個變量並在該變量上具有特定功能。我想知道是否有其他方法來創建課程。 具體來說,我創建了一個應用程序,在該應用程序中存儲表示從基準時間(例如2000年1月1日,00:00:00)過去的秒數的時間值。我想對此值執行操作,例如將其從幾秒鐘轉換爲特定時間或日期,或從日期轉換爲特定秒。 我已經做了這個使用類,但它看起來很浪費。具體而言,每次訪問所存儲的值所花費的秒數時間,它看起來將類似於(

    0熱度

    1回答

    我需要創建一個具有類屬性(其槽值)的窗口。 這將是類似describe函數。 我的問題是:如何獲得該類的所有插槽名稱? 我無法找到它的任何內容,只有describe函數。

    0熱度

    1回答

    我可以從LISP中獲取類中的所有方法名稱嗎? 其實我需要的方法,這在他們的名字 SET- 。

    3熱度

    1回答

    我想定義類對象的方法,它們繼承基於類的祖先,就像實例的方法繼承一樣。有沒有辦法做到這一點? 以下是什麼不工作:eql -method專業化。考慮下面這個例子: (defclass animal()()) (defclass bird (animal)()) (defclass woodpecker (bird)()) (defmethod wings-p ((animal-class (e

    2熱度

    1回答

    通用功能slot-definition-readers獲取必須是direct-slot-definition參數。如果一個對象是一個從另一個類繼承的類的實例,我如何獲得該對象的所有有效插槽的讀者?難道我必須手動遍歷樹和在每個超class-direct-slots調用的結果slot-definition-readers,收集的結果,或者是有沒有我不知道的另一種方式?

    2熱度

    2回答

    我想控制值保存在插槽中的方式以及讀取插槽時返回的內容。這裏是我的類定義: (defclass object() ((name :accessor name-access :initform 'noname :initarg :name) (value :accessor value-access :initform 10 :ini

    1熱度

    2回答

    我需要略微推廣子類中的默認插槽值。 例子: (defclass class-a() ((slot-1 :initarg :slot-1 :initform #'identity) <...> other-slots<...>)) 它的子類是 (defclass class-b (class-a) ((slot-2 :initarg :slot-2 :initfor