23 lines
797 B
Plaintext
23 lines
797 B
Plaintext
;;;; A program's names do not change what the prelude means. The prelude's
|
|
;;;; generics write their type variable bare, (vec-new t), and name
|
|
;;;; parameters t, k and v; a global or a type the program declares under one
|
|
;;;; of those names is the program's, and the prelude's own reading stands.
|
|
|
|
(defonce t [4 i32])
|
|
(defstruct k [x i32])
|
|
(defenum v [lo hi])
|
|
|
|
(defn is-even [x i32] bool (= (% x 2) 0))
|
|
|
|
(defn main [] i32
|
|
(set (at t 0) 7)
|
|
(let [xs [1 2 3 4 5 6]
|
|
evens (filter (slice xs) is-even)]
|
|
(println (length evens)) ; 3
|
|
(println (at evens 2)) ; 6
|
|
(free evens))
|
|
(println (at t 0)) ; 7
|
|
(println (.x (k {.x 5}))) ; 5
|
|
(println (i32 (v 1))) ; 1
|
|
0)
|