welcome-to-fp-workshop - Support material for the “Introduction to Functional Programming” workshop @ the "Welcome to Functional Programming" day of YOW! Lambda Jam, Sydney, 2018

  •        2

This repository contains the supporting material for the Introduction to Functional Programming workshop @ the "Welcome to Functional Programming" day of YOW! Lambda Jam, Sydney, 2018. If you like to learn more Haskell, check out our online tutorial Learning Haskell.




Related Projects

functional-programming-jargon - Jargon from the functional programming world in simple terms!

  •    Javascript

Functional programming (FP) provides many advantages, and its popularity has been increasing as a result. However, each programming paradigm comes with its own unique jargon and FP is no exception. By providing a glossary, we hope to make learning FP easier. The number of arguments a function takes. From words like unary, binary, ternary, etc. This word has the distinction of being composed of two suffixes, "-ary" and "-ity." Addition, for example, takes two arguments, and so it is defined as a binary function or a function with an arity of two. Such a function may sometimes be called "dyadic" by people who prefer Greek roots to Latin. Likewise, a function that takes a variable number of arguments is called "variadic," whereas a binary function must be given two and only two arguments, currying and partial application notwithstanding (see below).

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.

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.

Functional-Light-JS - A book about functional programming in JavaScript. @FLJSBook on twitter.

  •    Javascript

This book explores the core principles of functional programming (FP) as they are applied to JavaScript. But what makes this book different is that we approach these principles without drowning in all the heavy terminology. We look at a subset of FP foundational concepts that I call "Functional-Light Programming" (FLP) and apply it to JavaScript.Note: Despite the word "Light" in the title, I do not consider or recommend this book as a "beginner", "easy", or "intro" book on the topic. This book is rigorous and full of gritty detail; it expects a solid foundation of JS knowledge before diving in. "Light" means limited in scope; instead of being more broad, this book goes much deeper into each topic than you typically find in other FP-JavaScript books.

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.

functional-javascript-workshop - A functional javascript workshop

  •    Javascript

Many functional programming learning resources will teach you to write functional code, but it's often highly indirect, deeply abstracted, requires understanding complex relationships between custom library calls, and doesn't represent the reality of how people actually write JavaScript.The goal of this workshop is to create realistic problems that can be solved using terse, vanilla, idiomatic JavaScript.


  •    Javascript

fn.js is a JavaScript library built to encourage a functional programming style & strategy. View the documentation and introduction.

purrr - A functional programming toolkit for R

  •    R

purrr enhances R’s functional programming (FP) toolkit by providing a complete and consistent set of tools for working with functions and vectors. If you’ve never heard of FP before, the best place to start is the family of map() functions which allow you to replace many for loops with code that is both more succinct and easier to read. The best place to learn about the map() functions is the iteration chapter in R for data science. The following example uses purrr to solve a fairly realistic problem: split a data frame into pieces, fit a model to each piece, compute the summary, then extract the R2.

arrow - Functional companion to Kotlin's Standard Library

  •    Kotlin

Λrrow is a library for Typed Functional Programming in Kotlin. Arrow aims to provide a lingua franca of interfaces and abstractions across Kotlin libraries. For this, it includes the most popular data types, type classes and abstractions such as Option, Try, Either, IO, Functor, Applicative, Monad to empower users to write pure FP apps and libraries built atop higher order abstractions.

wiwinwlh - What I Wish I Knew When Learning Haskell

  •    Haskell

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.

DeepLearning-NLP - Introduction to Deep Learning for Natural Language Processing

  •    Jupyter

This repo accompanies the Introduction to Deep Learning for Natural Language Processing workshop to explain the core concepts of deep learning with emphasis on classifying text as the application. Python data stack is used for the workshop. Please refer to the installation instructions document. That document also has instructions on how to run a script to check if the required packages are installed.

FP-Course-ITMO - Slides and other materials for functional programming lectures ITMO university

  •    Haskell

Here you can find plan and presentations on the Haskell course authored by Dmitry Kovanikov and Arseniy Seroka. This course is always under development and always improving constantly because there's no limit for the best Haskell course.

fn.py - Functional programming in Python: implementation of missing features to enjoy FP

  •    Python

Fn.py library provides you with missing "batteries" to get maximum from functional approach even in mostly-imperative program. More about functional approach from my Pycon UA 2012 talks: Functional Programming with Python.

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.

mostly-adequate-guide - Mostly adequate guide to FP (in javascript)

  •    Javascript

You likely use it every day at work. This makes it possible to practice and apply your acquired knowledge each day on real world programs rather than pet projects on nights and weekends in an esoteric FP language.

Nest - A progressive Node.js framework for building efficient and scalable server-side applications, heavily inspired by Angular

  •    TypeScript

A progressive Node.js framework for building efficient and scalable server-side applications, heavily inspired by Angular. Nest is a framework for building efficient, scalable Node.js server-side applications. It uses modern JavaScript, is built with TypeScript (preserves compatibility with pure JavaScript) and combines elements of OOP (Object Oriented Programming), FP (Functional Programming), and FRP (Functional Reactive Programming).

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.