Functional scripting language designed for programming education.

Pyret is a programming language designed to serve as an outstanding choice for programming education while exploring the confluence of scripting and functional programming.

It's under active design and development, and free to use or modify.

data BinTree:
  | leaf
  | node(value, left, right)
end

fun tree-sum(t):
  doc: "Calculate the sum of node values"
  cases(BinTree) t:
    | leaf => 0
    | node(v, l, r) =>
      v + tree-sum(l) + tree-sum(r)
  end
where:
  tree-sum(leaf) is 0
  node4 = node(4, leaf, leaf)
  tree-sum(node(5, node4, leaf)) is 9
end
Information updated 11/15/17
View Comments