Hope programming language

From Free net encyclopedia

Hope is a small functional programming language, with strong polymorphic typing, algebraic data types, pattern matching, and higher-order functions. It has call-by-pattern evaluation. The first implementation of Hope was strict, but since that one there have been lazy versions and strict versions with lazy constructors. Hope is purely functional.

A factorial program in Hope is

dec fact : num -> num;
--- fact 0 <= 1;
--- fact n <= n*fact(n-1);

Unlike in Haskell, changing the order of the clauses would not change the meaning of the program, because Hope's pattern matching always favors more specific patterns over less specific ones.

External link

Template:Compu-lang-stub