# Frege

> functional programming language

**Wikidata**: [Q5501320](https://www.wikidata.org/wiki/Q5501320)  
**Source**: https://4ort.xyz/entity/frege

## Summary
Frege is a purely functional programming language named after the German philosopher Gottlob Frege. Released in 2011, it is described as being isomorph to the lambda calculus and is distinctively influenced by the object-oriented language Java. The language is cross-platform and its source code is hosted publicly on GitHub.

## Key Facts
- **Classification:** Frege is a purely functional programming language.
- **Paradigm:** It operates under the functional programming and purely functional programming paradigms.
- **Initial Release:** The language was published in 2011.
- **Naming:** It is named after Gottlob Frege.
- **Influences:** The language's design is influenced by Java and entity Q34010.
- **File Extension:** Frege source files use the extension `.fr`.
- **Operating System:** It is cross-platform.
- **Latest Version:** Version 3.24 was released on April 8, 2018.
- **Repository:** The source code is maintained at `https://github.com/Frege/frege`.

## FAQs
### Q: What type of programming language is Frege?
A: Frege is a purely functional programming language. It is designed to be isomorph to the lambda calculus, adhering strictly to functional programming principles.

### Q: Who or what is Frege named after?
A: The language is named after Gottlob Frege, a reference acknowledged in its structured data properties.

### Q: When was the latest stable version of Frege released?
A: According to available release data, version 3.24 was released on April 8, 2018. Other recent stable versions include 3.23.288 (released August 19, 2015).

## Why It Matters
Frege occupies a specific niche in the programming language ecosystem as a **purely functional** language that bridges concepts from distinct programming traditions. While many functional languages exist, Frege is uniquely characterized by its influence from **Java**, a dominant object-oriented language. This influence suggests a design philosophy that attempts to reconcile or utilize Java's ecosystem or syntax familiarity within a strict functional paradigm.

The language matters to developers and computer scientists because it offers a "pure" implementation of functional programming—defined as being **isomorph to the lambda calculus**. This mathematical rigor provides a reliable environment for computation where functions are first-class citizens and side effects are managed strictly. Unlike languages that mix paradigms, Frege's commitment to purity ensures that programs are predictable and easier to verify mathematically.

Furthermore, Frege is an open-source project maintained on GitHub with a consistent history of releases between 2011 and 2018. Its **cross-platform** nature ensures that it can be utilized on various operating systems, making it accessible for a wide range of development environments. By combining the theoretical strictness of the lambda calculus with the practical reach of cross-platform availability and Java-influenced design, Frege serves as a significant tool for those exploring the boundaries of functional programming.

## Notable For
- **Purity:** Being a "purely functional programming language" that is isomorph to the lambda calculus.
- **Cross-Paradigm Influence:** Being a functional language explicitly influenced by Java (an object-oriented language).
- **Cross-Platform Compatibility:** The ability to run on any operating system.
- **Open Source:** Active development history with source code available on GitHub.

## Body

### Programming Paradigm and Design
Frege is strictly defined as a **purely functional programming language**. In computer science, this classification means the language treats all computation as the evaluation of mathematical functions and avoids changing state and mutable data. The structured data explicitly notes that the language is **"isomorph to the lambda calculus,"** indicating a strong theoretical foundation in formal logic systems. Despite this functional purity, the language lists **Java**—a class-based, object-oriented language—as a key influence. This suggests a unique synthesis of functional theory with design elements potentially borrowed from the object-oriented world.

### History and Versioning
The language was officially published in **2011**. Its development has been tracked through a series of stable releases hosted on GitHub. The progression of these releases demonstrates active maintenance over several years:
*   **2013:** Versions 3.21.190 (Aug) and 3.21.297 (Nov).
*   **2014:** Versions 3.21.402 (Mar) and 3.21.500 (Mar).
*   **2015:** Versions 3.22.324 (Jan) and 3.23.288 (Aug).
*   **2018:** The release of version **3.24** and version **1.8** occurred on April 8, 2018.

### Technical Specifications
*   **File Extension:** Developers write Frege code in files ending in the **.fr** extension.
*   **Platform:** The language is designated as **cross-platform**, meaning it is not restricted to a single operating system.
*   **Repository:** The codebase is accessible at `https://github.com/Frege/frege`, with a specific wiki available at `https://github.com/Frege/frege/wiki/_pages`.
*   **Identity:** The language has a Google Knowledge Graph ID of `/g/11bc5kd91_` and a Wikidata description identifying it simply as a "functional programming language."

## References

1. [Release 3.23.288. 2015](https://github.com/Frege/frege/releases/tag/3.23.288)
2. [Release 3.22.324. 2015](https://github.com/Frege/frege/releases/tag/3.22.324)
3. [Release 3.21.500. 2014](https://github.com/Frege/frege/releases/tag/3.21.500)
4. [Release 3.21.402. 2014](https://github.com/Frege/frege/releases/tag/3.21.402)
5. [Release 3.21.297. 2013](https://github.com/Frege/frege/releases/tag/3.21.297)
6. [Release 3.21.190. 2013](https://github.com/Frege/frege/releases/tag/3.21.190)
7. [Release 3.24. 2018](https://github.com/Frege/frege/releases/tag/3.24public)
8. [Release 1.8. 2018](https://github.com/Frege/frege/releases/tag/3.24public)
9. [Source](https://api.github.com/repos/Frege/frege)