4f849ebd34
The type inference for collections (tuples, vectors, matrices, and records) has been significantly refactored. This includes: - Introducing distinct `StaticType` variants for `Tuple`, `Vector`, and `Matrix`. - Implementing more robust type checking for these collections, allowing for homogeneous and heterogeneous structures. - Enhancing the `is_assignable_from` method to handle type compatibility between these collection types. - Updating `Value::static_type()` to correctly infer the types of literal collections. - Improving the type inference for map literals to create `Record` types. - Adding comprehensive unit tests for tuple, vector, matrix, and record type inference.
17 lines
397 B
Plaintext
17 lines
397 B
Plaintext
;; Takeuchi Function Benchmark
|
|
;; heavily recursive, benefits significantly from specialization of integer arithmetic
|
|
;; and direct function calls (skipping dynamic dispatch).
|
|
;; Output: 5
|
|
|
|
;; Benchmark: 467.7us
|
|
|
|
(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)
|
|
)
|