X-Git-Url: http://git.kpe.io/?p=kmrcl.git;a=blobdiff_plain;f=hash.lisp;h=e849783ef99ac775a7716de71386561a365082a6;hp=98e9439d27b6f2bb637750ffd437e57d6fcf2209;hb=54cd6cb1b9550ac2310e2c6dffc9cdecd2bdccd3;hpb=8cc19143317070410f01be0166904ba59a914834 diff --git a/hash.lisp b/hash.lisp index 98e9439..e849783 100644 --- a/hash.lisp +++ b/hash.lisp @@ -19,6 +19,20 @@ ;;; hashs -(defun print-hash (h &optional (stream *standard-output*)) - (maphash #'(lambda (k v) (format stream "~S -> ~S~%" k v)) h) +(defun print-hash (h &key (stream *standard-output*) + key-transform-fn value-transform-fn + (prefix "") (divider " -> ") (terminator "~%")) + (maphash #'(lambda (k v) + (format stream "~A~S~A~S" + prefix + (if key-transform-fn + (funcall key-transform-fn k) + k) + divider + (if value-transform-fn + (funcall value-transform-fn v) + v)) + (when terminator (format stream terminator))) + h) h) +