Monica: a lazy functional programming language written in Prolog
Monica is a lazy functional programming language written in SWI-Prolog. Monica is truly lazy as she uses NOR, WHNF, sharing, and lazy constructors. Monica also provides a Hindley-Milner-style parametric polymorphic type system, higher-order functions, argument pattern matching, list comprehensions, macros, and monads. Rather than implementing a simple lambda calculus reduction engine, Monica attempts to mimic Miranda and Haskell as close as possible by providing a complete set of syntactic and semantic features found in these languages.
Help pages