*** Welcome to piglix ***

Frege (programming language)

Frege
Frege logo.svg
Paradigm functional, lazy/non-strict
Designed by Ingo Wechsung
First appeared 2011; 6 years ago (2011)
Stable release
3.24 / 12 March 2016; 11 months ago (2016-03-12)
Typing discipline static, strong, inferred
OS Cross-platform
License BSD
Filename extensions .fr
Website github.com/Frege/frege
Influenced by
Haskell

Frege is a non-strict, purely functional programming language for the Java virtual machine in the spirit of Haskell.

It is considered a Haskell dialect or simply "a" Haskell for the Java virtual machine.

Frege has a strong static type system with type inference. Higher rank types are supported, though type annotations are required for that. Frege programs are compiled to Java bytecode and run in a Java virtual machine. Existing Java classes and methods can be used seamlessly from Frege after their types have been properly declared.

The language was designed by Ingo Wechsung, who named it after the German mathematician, logician and philosopher Gottlob Frege.

(Unrelated to the Frege Program Prover).

A summary of differences between Frege and Haskell is listed at the Differences between Frege and Haskell.

The type String is custom defined as an interface with Java strings. String (++) is bound to Java's String (+). Conversion functions to Haskell correspondent:

Literals:

Frege's Monad class does not include the method fail, included in a separate class MonadFail.

Numeric classes for floating point types are also different. Haskell's classes Fractional, RealFrac, RealFloat and Floating are not defined. Haskell's class Real defines toRational while Frege's defines (/):


...
Wikipedia

...