683d0f4dbe
The `flatten_tuple` function was unnecessarily recursive. It can now simply return the elements of the tuple directly. The VM's destructuring logic has been updated to handle nested destructuring more efficiently. A new integration test case for multi-level destructuring has been added.
28 lines
694 B
Plaintext
28 lines
694 B
Plaintext
;; Benchmark: 969ns
|
|
;; Benchmark-Repeat: 2078
|
|
;; Comprehensive Destructuring Test
|
|
;; Covers: Nested tuples, mixed params, dynamic passing
|
|
|
|
(do
|
|
;; 1. Deeply nested
|
|
(def deep (fn [[a [[b c] d]]] (+ a (+ b (+ c d)))))
|
|
|
|
;; 2. Mixed: Tuple and Single
|
|
(def mixed (fn [[x y] z] (+ (+ x y) z)))
|
|
|
|
;; 3. Dynamic: Passing a list variable
|
|
(def call-dynamic (fn [f data] (f data)))
|
|
|
|
(def data [10 [20 30]])
|
|
|
|
;; Validation
|
|
(if (= (deep [1 [[2 3] 4]]) 10)
|
|
(if (= (mixed [1 2] 3) 6)
|
|
(if (= (call-dynamic (fn [[a [b c]]] (+ a (+ b c))) data) 60)
|
|
"PASS"
|
|
"FAIL-DYNAMIC")
|
|
"FAIL-MIXED")
|
|
"FAIL-DEEP"))
|
|
|
|
;; Output: "PASS"
|