Ich möchte einige Integer-Arithmetik durchführen und überprüft, ob SBCL könnte mehr Geschwindigkeit gewinnen, wenn ich explizite Informationen über die type
von Werten, die ich verwende. Während ich declare
in einem defun
oder let
direkt direkt tun konnte, um dies zu tun, verstehe ich nicht, wo man die Aussage innerhalb eines loop
Konstrukts setzt.Wie man den Typ einer Schleifenvariable deklariert
Ich bin auf die Dokumentation des iterate
Pakets gestoßen, das solche Möglichkeiten bietet, aber für den Moment im Loop bleiben wollte.
Ein Stub Beispiel könnte wie folgt aussehen:
(loop :for i from 1 upto 100 :collect
(loop :for j from i upto 100
:collect (* i j)))
Wie kann ich sagen, dass Lisp i
und j
sind z.B. vom Typ fixnum
?
Weglassen 'of-Code prägnant macht Baumuster zur, aber IMO, * weniger * lesbar. – sds
@sds: Ich benutze das die ganze Zeit. Da nur FIXNUM und FLOAT für die kurze Notation sinnvoll sind, sehe ich kein Lesbarkeitsproblem. Die OF-TYPE-Notation ist im Code, den ich gesehen habe, relativ selten. –
Ich verbeuge mich vor Ihnen Erfahrung :-) – sds