This is the official repository for the reference implementation of the Hades Programming Language (standard library & interpreter).
with console from std:io
console.out("Hello world")
with list fixed from std:collections
with console from std:io
var fruits = list.of({"Apple", "Banana", "Mango", "Kiwi", "Avocado"})
fruits
|> map(??, {x => x.toLower()})
|> filter({x => x.startsWith("a")})
//if ?? is not in the parameters, the method is inserted as the first parameter
|> forEach(??, {x => console.out(x)})
with console from std:io
func myFunction(a int) requires a < 10
console.out("a is smaller than 10")
end
func myFunction(a int) requires a > 10
console.out("a is greater than 10")
end
myFunction(5) // a is smaller than 10
myFunction(17) // a is greater than 10
with msg from std:io
with sleep from std:time
func ping()
receive(m)
{:ping, data} => {_ =>
sleep.seconds(1)
send(data, :pong)
}
end
ping()
end
func pong()
receive(m)
{:pong, data} => {_ =>
sleep.seconds(1)
send(data, :ping)
}
end
pong()
end
var pingPid = spawn({_ => ping()}
var pongPid = spawn({_ => pong()}
send(pingPid, {:ping, pongPid})
with console from std:io
func fib(n)
if((n is 0) or (n is 1))
put n
end
put fib(n-1) + fib(n-2)
end
fib(10) |> console.out
with console from std:io
func fib(n int64) -> int64
if((n is 0) or (n is 1))
put n
end
put fib(n-1) + fib(n-2)
end
fib(10) |> console.out
Learning Hades and writing your first programs.
Instructions for downloading HadesLang and/or embedding it into your programs.
Hades basics and quick introduction into the language.
Current coding style for HadesLang.
The official HadesLang specification.
Documentation and definition of the Hades standard library.
Documentation for HadesLang tools.
Examples of Hades in use.