11fc1e0e48
The 'again' macro is a new addition to the macro system, allowing for recursive macro expansion. This commit introduces the necessary AST nodes, macro expansion logic, and an integration test to ensure its functionality. The `soa_series.myc` example has also been updated to demonstrate its usage.
17 lines
466 B
Plaintext
17 lines
466 B
Plaintext
;; Output: 228
|
|
;; Benchmark: 1.4us
|
|
;; Benchmark-Repeat: 1406
|
|
(do
|
|
(def my_ticks (series 100 {:price :float :volume :int :msg :text}))
|
|
|
|
(push my_ticks {:price 10.5 :volume 100 :msg "A"})
|
|
(push my_ticks {:price 11.2 :volume 200 :msg "B"})
|
|
(push my_ticks {:price 15.5 :volume 300 :msg "C"})
|
|
|
|
(repeat n 100 (push my_ticks {:price (+ n 15.5) :volume (ceil (/ n 300)) :msg "??"})
|
|
)
|
|
|
|
(def prices (.price my_ticks))
|
|
|
|
(+ (prices 0) (prices 1))
|
|
)
|