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.
[edit]