performance hash-to-list
-
hi,
ist dieser code halbwegs performant, oder wird lst jedesmal umkopiert

(defun hash-to-list (ht) (progn (setf lst nil) (maphash #'(lambda (key value) (setf lst (cons (cons key value) lst))) ht) lst))
-
Mach dir um die Performance keine Sorgen. Schreib das Programm, benutz einen Profiler und optimier die Funktionen, die es sich lohnt zu optimieren. Wobei ich an deinem Code aber einige Sachen nicht verstehe, zB warum du progn benutzt und den ersten Aufruf zu setf.
Ich würde die Funktion eher so implementieren (bin jetzt aber kein Lisp-Experte)
(defun hash-to-list (hash) (let (list) (maphash #'(lambda (key value) (setf list (nconc list (cons key value)))) hash) list))(nconc dürfte hier schneller sein, da nicht umkopiert, sondern ersetzt wird)