make-instance

Das Macro make-instance (mit Alias new) erwartet mindestens ein Argument. Das erste Argument muss der Name einer Klasse (ein Symbol) sein. Bei der Ausführung des Macros wird eine Instanz dieser Klasse erzeugt. Für die Instanz wird die Methode initialize aufgerufen, wobei die restlichen Argumente übergeben werden. Das Resultat des Aufrufs von initialize ist zugleich das Resultat des Aufrufs von make-instance.

Das Macro ist anhand von allocate-instance und initialize definiert:

(setq make-instance
  (mlambda args
    (cons
      (quote initialize)
      (cons
        (list
          allocate-instance
          (first args))
        (rest args)))))