Add recommended targets to debian/rules
[kmrcl.git] / hash.lisp
index 98e9439d27b6f2bb637750ffd437e57d6fcf2209..e849783ef99ac775a7716de71386561a365082a6 100644 (file)
--- a/hash.lisp
+++ b/hash.lisp
 
 ;;; 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)
+