(defclass person ()
( (name :accessor person-name
:initform 0
:documentation "The person's name." )
(age :accessor person-age
:initform 0
:documentation "The person's age, defaults to 0 if not provided." ))
(:documentation "A simple class representing a person.") )
(setf a (make-instance 'person))
(time (loop for i from 1 to 100000 do (slot-value a 'name)));1,068,051pc
(time (loop for i from 1 to 100000 do (person-name a)));1,054,566pc
(defmacro n0 (list nn)
`(elt ,list (case ,nn ('a 1) ('b 2) ('c 3) (t 4))) )
(defsetf n0 (list nn) (store)
`(setf (elt ,list (case ,nn ('a 1) ('b 2) ('c 3) (t 4))) ,store) )
(setf a (make-array 32))
(time (loop for i from 1 to 100000 do (n0 a 'a)));802,950pc
(defun (setf k) (new-value list index)
(setf (elt list (case index ('a 1) ('b 2) ('c 3) (t 4))) new-value) )
(defun k (list index)
(elt list (case index ('a 1) ('b 2) ('c 3) (t 4))) )
(setf a (make-array 32))
(time (loop for i from 1 to 100000 do (k a 'a)));2,174,185pc
(defstruct a b c d e)
(setf a (make-a))
(time (loop for i from 1 to 100000 do (a-b a)));287,310pc