Refactor Examples to use assert_eq
This commit updates all example files to use `assert_eq!` for verifying output, replacing the previous `Output:` comments. This change makes the examples more robust and self-testing. The benchmark results in some examples have also been slightly adjusted, reflecting minor performance variations after the refactoring. Additionally, a runtime panic handling mechanism has been introduced in the VM for function calls, which improves error reporting for unexpected panics.
This commit is contained in:
+15
-16
@@ -1,17 +1,16 @@
|
||||
;; Takeuchi Function Benchmark
|
||||
;; heavily recursive, benefits significantly from specialization of integer arithmetic
|
||||
;; and direct function calls (skipping dynamic dispatch).
|
||||
;; Output: 5
|
||||
|
||||
;; Benchmark: 314.2us
|
||||
;; Takeuchi Function Benchmark
|
||||
;; heavily recursive, benefits significantly from specialization of integer arithmetic
|
||||
;; and direct function calls (skipping dynamic dispatch).
|
||||
;; Benchmark: 339.7us
|
||||
;; Benchmark-Repeat: 7
|
||||
|
||||
|
||||
(do
|
||||
(def tak (fn [x y z]
|
||||
(if (<= x y)
|
||||
z
|
||||
(tak (tak (- x 1) y z)
|
||||
(tak (- y 1) z x)
|
||||
(tak (- z 1) x y)))))
|
||||
|
||||
(tak 12 8 4)
|
||||
(do
|
||||
(def tak (fn [x y z]
|
||||
(if (<= x y)
|
||||
z
|
||||
(tak (tak (- x 1) y z)
|
||||
(tak (- y 1) z x)
|
||||
(tak (- z 1) x y)))))
|
||||
|
||||
(assert-eq 5 (tak 12 8 4))
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user