Git Product home page Git Product logo

awesome-functional-python's Introduction

Awesome Functional Python

A curated list of awesome things related to functional programming in Python.

Official documentation

  • Functional Programming HOWTO - "In this document, we’ll take a tour of Python’s features suitable for implementing programs in a functional style".

Books

Free books / ebooks

Non-free books

Talks

Introductory

  • Functional Programming with Python (slides), Alexey Kachayev, UA PYCon 2012.
  • Purely Functional Programming in Python: Pure Fun (slides), Christopher Armstrong, PyTenessee 2015.
  • Functional Programming with Python (video), Mike Müller, PyCon US 2013.
  • Using Functional Programming for efficient Data Processing and Analysis (video), Reuben Cummings, PyCon US 2017.

Advanced or specialized

  • Functionalish programming in Python with effect (video), Robert Collins, NZ PyCon 2015.
  • Monadic Parsing in Python (slides), Alexey Kachayev, KyivPy 2014.
  • Immutability and Python - Introducing Pyrsistent (slides), Tobias Gustafsson, 2014.
  • Understanding Transducers (slides, video), Austin Bingham, PyCon Belarus 2015.

Data science oriented

  • Functional Performance with Core Data Structures (video), Matthew Rocklin, PyData SV 2014.
  • Old School - Functional Data Analysis (video), Matthew Rocklin, PyData NYC 2013.
  • Learning Data Science Using Functional Python (video, slides), Joel Grus, PyData Seattle 2015.

Other resources

Video lectures

Blog posts

Scientific papers

Libraries

General

  • toolz ★1500 - "A functional standard library for Python".
  • funcy ★1300 - "A fancy and practical functional tools".
  • fn.py ★2100 - "Functional programming in Python: implementation of missing features to enjoy FP" (unmaintained since 2014).
  • hask ★500 - "Haskell language features and standard libraries in pure Python".
  • PyFunctional ★390 - "Python library for functional programming with collections in a data pipeline style".
  • more-itertools ★330 - "More routines for operating on iterables, beyond itertools".
  • Effect ★200 - "Effect isolation in Python, to facilitate more purely functional code".
  • Pydash ★160 - "The kitchen sink of Python utility libraries for doing "stuff" in a functional way. Based on the Lo-Dash Javascript library".
  • Underscore.py ★220 - "A Python port of excellent javascript library underscore.js".
  • pyramda ★30 - "Python package supporting heavy functional programming through currying. Translation of the Ramda library from javascript to python".
  • PyMonad - "a small library implementing monads and related data abstractions -- functors, applicative functors, and monoids -- for use in implementing functional style programs".
  • Amino - "functional data structures and type classes".

Immutable / persistent data structures

  • Pyrsistent ★500 - "Persistent/Immutable/Functional data structures for Python".
  • Funktown ★60 - "Immutable Data Structures for Python".
  • Discodb ★50 - "An efficient, immutable, persistent mapping object".
  • Pysistence - "Pysistence is a project that seeks to make functional programming in python easier".

Other / specialized

  • Transducers - "This is a port of the transducer concept from Clojure to Python, with an emphasis on providing as Pythonic as interpretation of transducers as possible, rather than reproducing Clojurisms more literally".
  • Tranducers-Python - "Transducers are composable algorithmic transformations".
  • RxPy - "Reactive Extensions for Python".
  • python-lenses - "A python lens library for manipulating deeply nested immutable structures".

Languages

Functional programming languages that are not Python but are related to the Python ecosystem:

  • Hy - "A dialect of Lisp that’s embedded in Python".
  • Coconut - "Simple, elegant, Pythonic functional programming".
  • Mochi - "A dynamically typed programming language for functional programming and actor-style programming.".
  • Tydy - "Tydy is a statically typed, functional-first programming language in the ML tradition. tydy is an implementation of Tydy as a Python library."
  • dg (aka dogelang) - "A programming language that compiles to CPython bytecode, much like Scala compiles to JVM's. That essentially means that dg is an alternative syntax for Python 3."
  • pixie - "A lightweight and native lisp built in RPython". (Discussion on HN)
  • Pycket - "A rudimentary Racket implementation using RPython".
  • (How to Write a (Lisp) Interpreter (in Python)) and (An ((Even Better) Lisp) Interpreter (in Python)) - a couple of famous articles by Peter Norvig.

(More languages that compile to Python)

awesome-functional-python's People

Contributors

sfermigier avatar

Watchers

 avatar  avatar

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.