• Stars
    star
    172
  • Rank 221,201 (Top 5 %)
  • Language Idris
  • License
    BSD 3-Clause "New...
  • Created about 11 years ago
  • Updated over 6 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Koans are small lessons on the path to enlightenment. The aim of the Idris Koans project is to provide an easy learning environment in Idris. Your insight will be derived by encountering failing code and fixing them so that they type check.

idris-koans

Koans are small lessons on the path to enlightenment. Previously, the Koans method of learning a language has be used by both: Clojure, Clojurescript, and Ruby. With Ruby Koans being the initial Koans project. The aim of the Idris Koans project is to provide an easy learning environment in which you can learn Idris, and Functional Programming (FP). Insight will be derived by encountering 'failing' code that requires fixing. By fixing the code you will learn more about Idris and FP.

Within the Koans folder you will find the various lessons. Each lesson addresses various topics within FP, and also specific to Idris. Each lesson consists of a series of functions that when passed through the Idris compiler will either: fail to type check, or have the wrong behaviour. To pass each lesson each function needs to be completed or fixed so that it type checks, or has deterministic behaviour.

The files should be attempted in the following order:

  1. 01-Arithmetic.idr
  2. 02-Equality.idr
  3. 03-Boolean.idr
  4. 04-Ranges.idr
  5. 05-Lists.idr
  6. 06-ListComprehensions.idr

Idris Koans is in early development and so the list of Koans and method of interaction is primitive. If you would like to contribute please feel free to do so. However, please read [CONTRIBUTING.md] first. We advised the best way to attempt each Koan is to edit the Koan file in your favourite editor, and compile each Koan in the terminal using the Idris compiler. In future a more interactive environment may be planned. Either a CLI/REPL environment a la Clojure Koans, or Web Based a la Clojurescript Koans may be added.

The latest stable release of Idris can easily be installed using cabal:

$ cabal update; cabal install idris

Although you can also install Idris from source.

For editing Idris there is support for both the Emacs and Vim editors.

More information concerning Idris can be found online from:

More Repositories

1

software-foundations

Software Foundations in Idris
Idris
453
star
2

idris-mode

Idris syntax highlighting, compiler-supported editing, interactive REPL and more things for Emacs.
Emacs Lisp
256
star
3

idris-vim

Idris mode for vim
Vim Script
223
star
4

idris-demos

Collection of Idris tests and demonstration programs
Idris
189
star
5

idris-crypto

Implementation of cryptographic primitives using Idris
Idris
120
star
6

IdrisWeb

A secure web framework, built in the Idris language.
TeX
108
star
7

atom-language-idris

A Idris Mode for Atom.io
TypeScript
99
star
8

IdrisScript

FFI Bindings to interact with the unsafe world of JavaScript
Idris
88
star
9

idris-llvm

Idris LLVM codegen factored out
Haskell
77
star
10

idris-java

Java Code Generator for Idris
Haskell
71
star
11

iQuery

Idris Lib to interact with the DOM and Browser API for the JavaScript backend
Idris
40
star
12

idris-posix

System POSIX bindings for Idris.
Idris
34
star
13

idrispkgs

Old Nix expressions for Idris packaging. Idris support moved into Nixpkgs!
Nix
28
star
14

idris-sublime

A Plugin to use Idris with Sublime
Python
27
star
15

idris-free

Free Monads and useful constructions to work with them
Idris
25
star
16

eff-tutorial

An old tutorial for using `Effects` in Idris.
TeX
24
star
17

idris-cph-exercises

Exercises from the Idris lecture series presented at the ITU Copenhagen on March 11--15, updated to work with latest Idris releases.
Idris
23
star
18

idris-lens

Idris
22
star
19

idris-algebra

This is an attempt at painting as many bikesheds as possible with a typeclass hierarchy for idris reflecting "Algebra"
Idris
18
star
20

usb

libusb binding for idris and Effectful USB programming
C
11
star
21

idris-bot

An IRC bot connected to an Idris REPL
Haskell
10
star
22

idris-java-rts

Java Runtime System for the Idris Programming Language
Java
10
star
23

idris-extras

Various minor modes for editors and some tool support.
TeX
6
star
24

idris-array

primitive flat arrays containing Idris values
Idris
6
star
25

idris-time

A dependently-typed implementation of ISO 8601.
3
star