FunAlg - home



FunAlg to prosty polimorficzny jezyk funkcyjny z algebraicznymi strukturami danych.


Podstawowym celem przy jego tworzeniu byla przejrzysta i czytelna semantyka, oraz dobrze oddajaca ja skladnia.

Jezyk charakteryzuje sie nastepujacymi wlasnosciami:

Przykladowy kod:


type list [a] =
| Nil : unit
| Cons : a * list [a];;

let rec length [a] : list [a] => int =
fun l : list [a] ->
  match l with
  | Nil _ -> 0
  | Cons (_, t) -> inc (length t);;

let rec integers : int => list [int] =
fun i : int ->
  if i = 0 then
    Nil [int] ()
  else
    Cons [int] (i, integers (dec i));;

let ten = length [int] (integers 10);;

Oczywiscie w ramach projektu tworzony jest interpreter jezyka, dostepny w dziale download.