<!--lint disable double-link-->

# Awesome Frege [![Awesome](https://awesome.re/badge.svg)](https://awesome.re)

> Useful resources for the [Frege](https://github.com/Frege/frege) programming language

You might also like [awesome-haskell](https://github.com/krispo/awesome-haskell).

*Please read the [contribution guidelines](contributing.md) before contributing.*

## Contents

<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->

- [Introduction](#introduction)
  - [Overview](#overview)
  - [First Steps](#first-steps)
  - [Comparisons](#comparisons)
  - [Official Resources](#official-resources)
- [Community](#community)
  - [Chat](#chat)
  - [Questions](#questions)
  - [Social Media](#social-media)
- [Information](#information)
  - [Articles & Blogs](#articles--blogs)
  - [Books](#books)
  - [Conferences](#conferences)
  - [Courses](#courses)
  - [Talks](#talks)
- [Libraries](#libraries)
  - [Android](#android)
  - [Big Data](#big-data)
  - [Databases](#databases)
  - [Email](#email)
  - [Graphics](#graphics)
  - [GUI](#gui)
  - [Web Frameworks](#web-frameworks)
- [Sample Applications](#sample-applications)
  - [Games](#games)
  - [Media](#media)
  - [Web](#web)
- [Tools](#tools)
  - [Build Tools](#build-tools)
  - [IDEs](#ides)
  - [REPLs](#repls)
  - [Unit Testing](#unit-testing)

<!-- END doctoc generated TOC please keep comment here to allow auto update -->

## Introduction

### Overview

- [Frege](https://github.com/Frege/frege) - Official website.

### First Steps

- [Getting Started](https://github.com/Frege/frege/wiki/Getting-Started) - First steps with Frege on the command line.
- [Examples](https://github.com/Frege/frege/tree/master/examples) - Some code examples.
- [Template](https://github.com/tfausak/fregexample) - Template for Frege projects.
- [Trending](https://github.com/trending?l=frege) - Trending projects on GitHub.

### Comparisons

- [Frege vs. Haskell](https://github.com/Frege/frege/wiki/Differences-between-Frege-and-Haskell) - Differences between Frege and Haskell.
- [Frege vs. Scala](https://stackoverflow.com/questions/17905322/what-are-the-main-differences-between-scala-and-frege-in-programming-paradigms) - Differences between Scala and Frege.

### Official Resources

- [Language Reference](http://www.frege-lang.org/doc/Language.pdf) - Description of the language and its implementation.
- [Standard Library API](http://www.frege-lang.org/doc/fregedoc.html) - Frege API documentation.
- [Java Runtime API](http://www.frege-lang.org/doc/index.html) - Java API documentation.
- [FAQ](https://github.com/Frege/frege/wiki/Frequently-Asked-Questions) - Frequently asked questions.
- [Wiki](https://github.com/Frege/frege/wiki) - Official wiki.
- [Changelog](https://github.com/Frege/frege/wiki/New-or-Changed-Features) - Official changelog.

## Community

### Chat

- [Gitter](https://gitter.im/Frege/frege) - Gitter channel.
- [IRC](https://webchat.freenode.net/?channels=%23frege) - IRC channel.

### Questions

- [Google Group](https://groups.google.com/forum/#!forum/frege-programming-language) - Frege Google Group.
- [Stack Overflow](https://stackoverflow.com/questions/tagged/frege) - Frege tag on Stack Overflow.

### Social Media

- [Twitter](https://twitter.com/fregelang) - Official Twitter account.
- [reddit](https://www.reddit.com/r/frege/) - Frege subreddit.
- [Dierk König](https://twitter.com/mittie) - Core contributor and Groovy expert.

## Information

### Articles & Blogs

- [InfoQ](https://www.infoq.com/news/2015/08/frege-haskell-for-jvm) - InfoQ article on Frege.
- [Frege Wiki](https://github.com/Frege/frege/wiki/Articles) - List of more articles on the Frege wiki.
- [Frege Programming Language](http://fregepl.blogspot.com) - Blog of Ingo Wechsung.
- [JAXenter](https://jaxenter.de/frege-haskell-jvm-54617) - Interview with Ingo Wechsung (German).

### Books

- [Frege Goodness](https://www.gitbook.com/book/dierk/fregegoodness/details) - Book by Dierk König.
- [Frege Quick Reference](https://www.gitbook.com/book/ingo60/frege-quick-reference/details) - Book by Ingo Wechsung.
- [Learn You a Frege for Great Good!](https://github.com/y-taka-23/learn-you-a-frege) - Frege adaptation of Learn You a Haskell for Great Good!.
- [Frege Wiki](https://github.com/Frege/frege/wiki/Books) - List of more books on the Frege wiki.

### Conferences

- [ICFP](http://www.icfpconference.org/) - International Conference on Functional Programming.

### Courses

- [FP101x](https://www.edx.org/course/introduction-functional-programming-delftx-fp101x-0) - Introduction to Functional Programming on edX.

### Talks

- [Overview](https://www.youtube.com/watch?v=1P1-HXNfFPc) - Frege, a Haskell for the JVM by Dierk König.
- [Frege vs. Haskell](https://www.youtube.com/watch?v=o2qwNlVeyA4) - FregeDay: Roadmap for resolving differences between Haskell and Frege (Ingo Wechsung).
- [ICFP Videos](https://www.youtube.com/channel/UCwRL68qZFfub1Ep1EScfmBw) - Videos about functional programming.
- [Frege Wiki](https://github.com/Frege/frege/wiki/Talks) - List of more talks on the Frege wiki.

## Libraries

- [Frege Wiki](https://github.com/Frege/frege/wiki/Libraries) - List of libraries on the Frege wiki.

### Android

- [FregeAndroid](https://github.com/trilogysci/FregeAndroid) - Frege interface to the Android API.
- [frege-on-android](https://github.com/ppelleti/frege-on-android) - How to use Frege on Android.
- [FregeAndroid](https://github.com/mchav/FregeAndroid) - Proof of concept Android application in Frege.
- [GeoQuiz-Frege](https://github.com/mchav/GeoQuiz-Frege) - Port of the BigNerd Ranch GeoQuiz application in Frege.
- [froid](https://github.com/mchav/froid) - Library for using Frege in Android development.

### Big Data

- [Spark](https://github.com/sw1sh/frege-spark) - Apache Spark with Frege.

### Databases

- [Sirocco](https://github.com/fregelab/sirocco) - Frege library for relational databases.
- [frege-dbc](https://github.com/DellCliff/frege-dbc) - JDBC with Frege.

### Email

- [Frege Email](https://github.com/y-taka-23/frege-email) - SMTP library for Frege.

### Graphics

- [Frege-RayTracer](https://github.com/mchav/Frege-RayTracer) - Ray tracer in Frege.

### GUI

- [FregeFX](https://github.com/Frege/FregeFX) - Frege bindings for JavaFX.

### Web Frameworks

- [Chinook](https://github.com/fregelab/chinook) - Frege web framework based on SparkJava.
- [Fregelet](https://github.com/mmhelloworld/fregelet) - Frege web framework based on servlet.
- [Play](https://github.com/mmhelloworld/hello-play-frege) - Play framework with Frege.

## Sample Applications

### Games

- [2048](https://github.com/tfausak/fr2048) - Frege clone of 2048.
- [frech](https://github.com/Ingo60/frech) - Fully functional chess engine.

### Media

- [Zwana](https://github.com/mchav/Zwana) - Piano using Java Midi.

### Web

- [RESTful Todo Manager](https://github.com/y-taka-23/restful-todo) - Task list manager written in Frege.
- [Play Framework](https://github.com/mmhelloworld/hello-play-frege) - Play application written in Frege.
- [Fervor](https://github.com/mchav/fervor) - Server for local directories.

## Tools

### Build Tools

- [Leiningen](http://leiningen.org/) - Project automation for Frege and Clojure.
- [Leiningen Template](https://github.com/Frege/frege-lein-template) - Template for frege-lein projects.
- [gottlob](https://github.com/mchav/gottlob) - Build tool for Frege.

### IDEs

- [fregIDE](https://github.com/Frege/eclipse-plugin/wiki/fregIDE-Tutorial) - Eclipse plugin for Frege.
- [intellij-frege](https://github.com/carymrobbins/intellij-frege) - Frege support for IntelliJ IDEA.
- [frege-idea-plugin](https://github.com/Dierk/frege-idea-plugin) - Language support for Frege in IntelliJ IDEA.

### REPLs

- [Console REPL](https://github.com/Frege/frege-repl) - REPL on the console.
- [GUI REPL](https://github.com/Dierk/frepl-gui) - GUI based REPL.

### Unit Testing

- [FrUnit](https://github.com/melrief/FrUnit) - JUnit for Frege.
