我一直在研究通用Lisp对象协议(CLOS),我遇到了一个疑问。
有没有人知道CLOS中“标准方法组合”和“简单方法组合”的含义是什么?
在“简单方法组合”中,拥有“list”方法组合是什么意思呢?
(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")发布于 2013-05-28 17:53:18
Common Lisp预定义了标准方法组合。这是默认设置。
此外,还有一堆所谓的“简单方法组合”:+、and、append、list、max、min、nconc、or和progn。
请记住,方法组合会查看哪些方法对于特定的参数集是有效的,然后将它们组合到一个方法中,该方法将随参数一起调用。
list方法组合组合了所有适用的主方法(只有这些),并返回所有结果的列表。
+方法组合组合了所有适用的主方法(只有这些),并返回所有结果的总和。
诸若此类。
https://stackoverflow.com/questions/16787217
复制相似问题