EYG’s type system builds upon a proven mathematical foundation by using row typing.
EYG programs are all independent of the machine they run on. Any interaction with the world outside your program is accomplished via an effect.
Any effect can be intercepted using a handler. This allows the response from the outside world to be replaced.
Other languages have the possiblity of closure serialisation, but EYG’s runtime is designed to make them efficient.
Hot code reloading – If you change the code the behaviour will update immediatly if safe.
EYG has a prototyped strongly typed shell environment.
EYG is built to support multiple runtimes. […] In the future EYG will be available in many more places, e.g. arduino, CLI’s and IPaaS. EYG makes this easy by having a carefully designed minimal AST.
Code example (from landing page):
let initial = 10
let handle = (state, message) -> !int_add(state, 1)
let render = (count) -> {
let count = !int_to_string(count)
!string_append("the total is ", count)
}
{render: render, handle: handle, init: initial}
GitHub Repository, Apache 2.0
deleted by creator



