wiwinwlh - What I Wish I Knew When Learning Haskell

  •        15

If you want to submit a fix for a typo or fix for code then just submit a pull request, and I'm happy to recompile the resulting document. If for some reason you want to compile the HTML page yourself, then you'll need to compile the preprocessor against Pandoc and then run make to build the page.

http://dev.stephendiehl.com/hask/
https://github.com/sdiehl/wiwinwlh

Tags
Implementation
License
Platform

   




Related Projects

Functional-Programming - Functional Programming concepts, examples and patterns illustrated in Haskell, Ocaml and Python

  •    Haskell

The purpose of this tutorial is to illustrate functional programming concepts in many languages by providing reusable and useful snippets of code, examples, case studies and applications.

reactive-banana - Library for functional reactive programming in Haskell.

  •    Haskell

Reactive-banana is a library for Functional Reactive Programming (FRP), written in Haskell. See the project homepage for documentation, examples and so on.

turbine - Purely functional frontend framework for building web applications

  •    TypeScript

A purely functional frontend framework based on functional reactive programming. Experimental. The JavaScript world is full of frameworks. So why another one? Because we want something different. We want something that is purely functional without compromises. Something that takes the best lessons from existing JavaScript frameworks and couples them with the powerful techniques found in functional languages like Haskell. We want a framework that is highly expressive. Because when functional programming is at its best it gives you more power, not less. Turbine is supposed to be approachable for typical JavaScript developers while still preserving the benefits that comes from embracing purely functional programming.

reflex-dom - Reflex FRP is a composable, cross-platform functional reactive programming framework for Haskell

  •    Haskell

Reflex-DOM is a framework for building web applications in Haskell, based on the Functional Reactive Programming library Reflex. Comprehensive documentation is still a work in progress, but a demo is available and an introductory talk is available at Part 1 / Part 2 (Slides).


hypothesis - Hypothesis is a powerful, flexible, and easy to use library for property-based testing.

  •    Python

Hypothesis is family of testing libraries which let you write tests parametrized by a source of examples. A Hypothesis implementation then generates simple and comprehensible examples that make your tests fail. This simplifies writing your tests and makes them more powerful at the same time, by letting software automate the boring bits and do them to a higher standard than a human would, freeing you to focus on the higher level test logic. This sort of testing is often called "property-based testing", and the most widely known implementation of the concept is the Haskell library QuickCheck, but Hypothesis differs significantly from QuickCheck and is designed to fit idiomatically and easily into existing styles of testing that you are used to, with absolutely no familiarity with Haskell or functional programming needed.

Eta - A powerful language for building scalable systems on the JVM

  •    Haskell

Eta is a pure, lazy, strongly typed functional programming language on the JVM. It is a dialect of Haskell on the JVM. It is pure by default which means that calling a function with the same arguments will yield the same results every time. It is lazy by default which means that data stays in unevaluated state until a function needs to peek inside.

reflex - Reflex FRP is a composable, cross-platform functional reactive programming framework for Haskell

  •    Haskell

Reflex is an fully-deterministic, higher-order Functional Reactive Programming (FRP) interface and an engine that efficiently implements that interface. Reflex-DOM is a framework built on Reflex that facilitates the development of web pages, including highly-interactive single-page apps.

luafun - Lua Fun is a high-performance functional programming library for Lua designed with LuaJIT's trace compiler in mind

  •    Lua

Lua Fun is a high-performance functional programming library for Lua designed with LuaJIT's trace compiler in mind. Lua Fun provides a set of more than 50 programming primitives typically found in languages like Standard ML, Haskell, Erlang, JavaScript, Python and even Lisp. High-order functions such as map, filter, reduce, zip, etc., make it easy to write simple and efficient functional code.

fp-course - Functional Programming Course

  •    Haskell

The course is structured according to a linear progression and uses the Haskell programming language to learn programming concepts pertaining to functional programming. Exercises are annotated with a comment containing the word "Exercise." The existing code compiles, however answers have been replaced with a call to the Haskell error function and so the code will throw an exception if it is run. Some exercises contain tips, which are annotated with a preceding "Tip:". It is not necessary to adhere to tips. Tips are provided for potential guidance, which may be discarded if you prefer a different path to a solution.

learn-fp - learn-by-doing course/tutorial for functional programming on scala

  •    Scala

This course/tutorial was created with purpose to better understand functional programming idioms using Scala language. It covers type classes, monoids, functors, applicatives, monads, traversable/foldable, monad transformers, free monad. Material is structured as set of stub/unimplemented functions/classes and tests for them. Your objective is to make all unit tests green. It is learn-by-doing course. NICTA course was a great and interesting challenge for me to do in Haskell. I think Scala community will benefit from the similar course.

egison - Egison is a purely functional programming language with non-linear pattern-matching against non-free data types

  •    Haskell

Egison is the pattern-matching-oriented purely functional programming language. We can directly represent pattern-matching against lists, multisets, sets, trees, graphs and any kind of data types. This is the repository of the interpreter of Egison. For more information, visit our website.

lux - The Lux Programming Language

  •    Clojure

Lux is a new programming language in the making. It's meant to be a functional, statically-typed Lisp that will run on several platforms, such as the Java Virtual Machine and JavaScript interpreters.

fpinscala - Code, exercises, answers, and hints to go along with the book "Functional Programming in Scala"

  •    Scala

This repository contains exercises, hints, and answers for the book Functional Programming in Scala. Along with the book itself, it's the closest you'll get to having your own private functional programming tutor without actually having one. Each chapter in the book develops a fully working library of functions and data types, built up through a series of exercises and example code given in the book text. The shell of this working library and exercise stubs live in exercises/src/main/scala/fpinscala/<chapter-description>, where <chapter-description> is a package name that corresponds to the chapter title (see below). When you begin working on a chapter, we recommend you open the exercise file(s) for that chapter, and when you encounter exercises, implement them in the exercises file and make sure they work.

LiveScript - LiveScript is a language which compiles to JavaScript

  •    LiveScript

is a language which compiles to JavaScript. It has a straightforward mapping to JavaScript and allows you to write expressive code devoid of repetitive boilerplate. While LiveScript adds many features to assist in functional style programming, it also has many improvements for object oriented and imperative programming. Check out livescript.net for more information, examples, usage, and a language reference.

awesome-fp-js - :sunglasses: A curated list of awesome functional programming stuff in js

  •    

This is a curated list of awesome functional programming code and learning resources for JavaScript. As a multi-paradigm programming language, JavaScript can be written in many styles. With these resources we want to help you to make better use of JavaScript’s support for writing programs in a functional way. Functional programming is a style of programming which models computations as the evaluation of expressions. Contrast this with imperative programming where programs are composed of statements which change global state when executed. Functional programming typically avoids using mutable state and favors side-effect free functions and immutable data instead. This encourages writing composable and declarative programs that are easy to reason about.

cats - Lightweight, modular, and extensible library for functional programming.

  •    Scala

Cats is a library which provides abstractions for functional programming in the Scala programming language. The name is a playful shortening of the word category. Scala supports both object-oriented and functional programming, and this is reflected in the hybrid approach of the standard library. Cats strives to provide functional programming abstractions that are core, binary compatible, modular, approachable and efficient. A broader goal of Cats is to provide a foundation for an ecosystem of pure, typeful libraries to support functional programming in Scala applications.

Vavr - Object-functional language extension to Java

  •    Java

Vavr is an object-functional language extension to Java 8, which aims to reduce the lines of code and increase code quality. It provides persistent collections, functional abstractions for error handling, concurrent programming, pattern matching and much more.

Elm - Functional Reactive Programming Language compiles to Javascript

  •    Javascript

Elm is a functional reactive programming (FRP) language that compiles to HTML, CSS, and JS. FRP is a concise and elegant way to create highly interactive applications and avoid callbacks. It aims to make web development more pleasant. Functional Reactive Programming (FRP) is a high-level way to work with interactions. It provides control flow structures for time.

functional-ruby - A gem for adding functional programming tools to Ruby

  •    Ruby

A gem for adding functional programming tools to Ruby. Inspired by Erlang, Clojure, and Functional Java. Two things I love are Ruby and functional programming. If you combine Ruby's ability to create functions sans-classes with the power of blocks, proc, and lambda, Ruby code can follow just about every modern functional programming design paradigm. Add to this Ruby's vast metaprogramming capabilities and Ruby is easily one of the most powerful languages in common use today.