Methods 与#x27;标准方法组合';和';简单方法组合';在CLOS中
我一直在研究公共Lisp对象协议(CLOS),但遇到了一个疑问 有人知道CLOS中“标准方法组合”和“简单方法组合”的含义吗 在“简单方法组合”中,“列表”方法组合意味着什么Methods 与#x27;标准方法组合';和';简单方法组合';在CLOS中,methods,lisp,common-lisp,clos,method-combination,Methods,Lisp,Common Lisp,Clos,Method Combination,我一直在研究公共Lisp对象协议(CLOS),但遇到了一个疑问 有人知道CLOS中“标准方法组合”和“简单方法组合”的含义吗 在“简单方法组合”中,“列表”方法组合意味着什么 (defgeneric what-are-you? (obj) (:method-combination list :most-specific-last)) (defmethod what-are-you? list ((obj fixnum)) "I am a FIXNUM") (defmethod w
(defgeneric what-are-you? (obj)
(:method-combination list :most-specific-last))
(defmethod what-are-you? list ((obj fixnum))
"I am a FIXNUM")
(defmethod what-are-you? list ((obj float))
"I am a FLOAT")
(defmethod what-are-you? list ((obj number))
"I am a NUMBER")
CommonLisp附带了预定义的标准方法组合。这是默认值 此外,还有一系列所谓的“简单方法组合”:
+
,和,附加,列表,最大值,最小值,NCOC
,或,以及程序
请记住,方法组合会针对某一组参数查看哪些方法是适用的,然后将它们组合成一个有效的方法,并使用参数调用该方法
列表
方法组合组合组合了所有适用的主要方法(只有这些方法),并返回所有结果的列表
+
方法组合组合组合了所有适用的主要方法(只有这些方法),并返回所有结果的总和
等等