Giter Site home page Giter Site logo

idris-koans's Introduction

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:

idris-koans's People

Contributors

gramosg avatar jfdm avatar pseudonom avatar silky avatar simonewebdesign avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

sguzman

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.