erg 0.6.53

The Erg programming language
Documentation
assert [1, 2].concat([3, 4]) == [1, 2, 3, 4]

assert [1, 2, 3, 1, 2].count(1) == 2
assert ["a", "b", "c"].count("a") == 1

assert [1, 1, 2].dedup() == [1, 2]
assert [0.0, 0.1, 10.0, 20.0, 20.1].dedup((lhs, rhs) -> abs(lhs - rhs) < 1.0) == [0.1, 10.0, 20.1]

assert [-2, -1, 0, 1, 2].partition(x -> x >= 0) == ([0, 1, 2], [-2, -1])

l = ![1]

l.push! 2
assert l == [1, 2]

l.extend! [3, 4]
assert l == [1, 2, 3, 4]

l.update_nth! 0, x -> x + 2
assert l == [3, 2, 3, 4]

l.sort!()
assert l == [2, 3, 3, 4]

discard l.pop! 0
assert l == [3, 3, 4]

l.remove! 3
assert l == [3, 4]

l.reverse!()
assert l == [4, 3]

l.clear!()
assert l == []

l2 = [![1]].repeat 3
l2[0].push! 2
ans: List(List(Nat)) = [[1, 2], [1], [1]]
assert l2 == ans

l3 = [1, 2, 3, 4]
assert l3.from(2) == [3, 4]
assert l3.from(2).from(1) == [4]
assert l3.from(5) == []

l4 as List Obj = l3
assert 1 in l4
assert not "a" in l4

add x: [Int; _] = x + x
mul x: [Int; _] = x * len([])

_ = add [1, 1]
_ = mul [1, 1]