nfjinjing / naga

naga language (planning)

This URL has Read+Write access

naga /
readme.md

Naga

A deeply embeded DSL that compiles to Javascript

note: design / init stage

Test

snippet from src/Language/Naga/test.hs:

main = putStrLn - naga_compile - line fib

fib = 
  function "fib" ["n"] [
    let n = ref "n" in

    if_ (n < 2) [
      return n
    ][
      return ( "fib" ! [n + (-1)] + "fib" ! [n + (-2)] )
    ]
  ]

output:

function fib(n){
  if (n < 2){
    return n;
  }
  else {
    return fib(n + (-1)) + fib(n + (-2));
  };
}