darcsden :: alex -> the -> blob

the programming language

root / examples / lists.the

(x . _) head = x;
"`[1, 2, 3] head` evaluates to:" write;
[1, 2, 3] head print;
-- => 1

"----------" write;

(_ . xs) tail = xs;
"`[1, 2, 3] tail` evaluates to:" write;
[1, 2, 3] tail print;
-- => [2, 3]

"----------" write;

[] .. (bs: List) = bs;
(a . as) .. (bs: List) = a . (as .. bs);
-- OR
-- [] .. bs = bs;
-- (a . as) .. bs = a . (as .. bs);

"`[1, 2, 3] .. [4, 5, 6]` evaluates to:" write;
([1, 2, 3] .. [4, 5, 6]) print;
-- => [1, 2, 3, 4, 5, 6]

"----------" write;

[] map: Block = [];
(x . xs) map: (b: Block) = (b do: x) . xs map: b;
-- OR
-- [] map: _ = [];
-- (x . xs) map: b = (b do: x) . xs map: b;

"`[1, 2, 3] map: { n | n + 1 }` evaluates to:" write;
([1, 2, 3] map: { n | n + 1 }) print;
-- => [2, 3, 4]