Sigrid Solveig Haflínudóttirperf.sl: enable profiling843bdb81 year agoHistory
34 lines · 974 B · Text
RawDownload
;; each benchmark is repeated N times to accomodate;; for the performance increase of current systems(def N 100) ;; "Performance and Evaluation of Lisp Systems" (1985), Richard P. Gabriel(princ "tak:  ")(def (tak x y z)  (if (not (< y x))      z      (tak (tak (- x 1) y z)           (tak (- y 1) z x)           (tak (- z 1) x y))))(time (dotimes (n N) (assert (equal? 7 (tak 18 12 6))))) ;; same as tak, but:;;   (not (<    →   (>=;;   (- ... 1   →   (1-;; this will show how extra calls (no inlining) make things slow(princ "tak_: ")(def (tak_ x y z)  (if (>= y x)      z      (tak_ (tak_ (1- x) y z)            (tak_ (1- y) z x)            (tak_ (1- z) x y))))(time (dotimes (n N) (assert (equal? 7 (tak_ 18 12 6))))) ;; q2 - http://lispology.com/show?314T(princ "q2:   ")(def (q2 x y)  (if (or (< x 1) (< y 1)) 1    (+ (q2 (- x (q2 (- x 1) y)) y)       (q2 x (- y (q2 x (- y 1)))))))(time (dotimes (n N) (assert (equal? 31 (q2 7 8)))))

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t