Most Mirah code looks roughly like Ruby code with occasional type annotations. Here are a few quick examples.
Fibonacci
The code for fib is largely unchanged from the Ruby version, with the only obvious difference being the type declaration. Here, a Ruby symbol :fixnum is used. In the JVM backend for Mirah, this ends up compiling to a primitive 32-bit int
def fib(a:fixnum):fixnum
if a < 2
a
else
fib(a - 1) + fib(a - 2)
end
end
Note that the return value of this method, as all methods in Mirah, is inferred from the exit points. The type inference engine will raise an error if multiple exit points have incompatible types.
Note also that fixnum is a synonym for “int” in this case. You can use either or.
More
More samples may be found at Howto and on github
See also MirahHowto