Time <- find-class('Time')
now <- use Time in { now().inspect().reverse() * 3 }
Counter <- [] {
x <- 0
{
inc <- [] {x := x + 1}
dec <- [] {x := x - 1}
get <- [] {x}
}
}
counter <- Counter()
for _ in 0..5 {
print(counter.inc())
}
List <- [*init] {
{
items <- init
add <- [x]{
items.push(x)
}
at <- [idx] {
items.at(idx)
}
map <- [f] {
result <- @[]
for x in items {
result.push(f(x))
}
}
filter <- [f] {
result <- @[]
for x in items {
if f(x) {
result.push(x)
}
else {
result
}
}
}
}
}
ys <- List(2, 4, 6, 8)
use ys in {
add(5)
add(10)
add(15)
items := map([x]{ x * x })
}
print(ys.items.inspect())
ip <- do {
Http <- find-class('Net::HTTP')
Http.get('ident.me', '/')
}
print(ip)
fun <- [] {
print(myVar)
}
fun.closure := {
myVar <- 'Hello World!'
}
fun()
map <- [xs f] {
result <- @[]
for x in xs {result.push(x -> f)}
}
filter <- [xs f] {
result <- @[]
for x in xs {
if f(x) {
result.push(x)
}
else {
result
}
}
}
methods <- Time.methods() -> map([method]{method.to_s()}) -> filter([name]{name.include?('class')})