elixir_fun_land - Algebraic Data Types for Elixir: Both functional and fun.

  •        29

FunLand adds Behaviours to define Algebraic Data Types ('Container' data types) to Elixir, including many helpful operations with them. Where applicable, an ADT implementation for Elixir's built-in types like Lists, Maps, Strings and Functions are included. FunLand is based on ideas of the Fantasy Land JavaScript specification for Algebraic Data Types, as well as the implementations of ADTs in other languages, such as Haskell and Idris.

https://github.com/Qqwy/elixir_fun_land

Tags
Implementation
License
Platform

   




Related Projects

static-land - Specification for common algebraic structures in JavaScript based on Fantasy Land

  •    Javascript

This is a specification for common algebraic structures in JavaScript based on Fantasy Land.Fantasy Land uses methods to define interfaces that a type must implement in order to support a particular Algebra. For example values of a type that implements the Monoid algebra must have fantasy-land/empty and fantasy-land/concat methods on them.

witchcraft - Monads and other dark magic for Elixir

  •    Elixir

Witchcraft is a library providing common algebraic and categorical abstractions to Elixir. Monoids, functors, monads, arrows, categories, and other dark magic right at your fingertips. You shouldn't have to learn another language just to understand powerful abstractions! By enabling people to use a language that they already know, and is already in the same ballpark in terms of values (emphasis on immutability, &c), we can teach and learn faster.

elixir-koans - Elixir learning exercises

  •    Elixir

Elixir koans is a fun way to get started with the elixir programming language. It is a tour of the most important features and idiomatic usage of the language. You need to have Elixir installed. Please refer to the official guide for instructions.

OK - Elegant error/exception handling in Elixir, with result monads.

  •    Elixir

Elegant error/exception handling in Elixir, with result monads. The OK module works with result tuples by treating them as a result monad.

elixir-phoenix-realworld-example-app - Exemplary real world application built with Elixir + Phoenix

  •    Elixir

Elixir (Phoenix) codebase containing real world examples (CRUD, auth, advanced patterns, etc) that adheres to the RealWorld spec and API. This codebase was created to demonstrate a fully fledged backend application built with Elixir and Phoenix including CRUD operations, authentication, routing, pagination, and more.


flow-static-land - Implementation of common algebraic types in JavaScript + Flow

  •    Javascript

The idea (faking higher kinded types in Flow) is based on the paper Lightweight higher-kinded polymorphism and elm-brands.

fantasy-land - Specification for interoperability of common algebraic structures in JavaScript

  •    Javascript

An algebra is a set of values, a set of operators that it is closed under and some laws it must obey. Each Fantasy Land algebra is a separate specification. An algebra may have dependencies on other algebras which must be implemented.

elixir-companies - A list of companies currently using Elixir in production.

  •    HTML

A curated list of companies using Elixir in production, organized by industry. Please see CONTRIBUTING for details.

thesis-phoenix - A lightweight, bolt-on, intuitive content editing system for Elixir/Phoenix websites

  •    Elixir

If you are having problems, view README_INSTALL.md for manual instructions. This install script will add Thesis to your config/config.exs and lib/yourapp_web.ex, as well as generate migrations and an authorization module in your lib/thesis_auth.ex.

fast-elixir - :dash: Writing Fast Elixir :heart_eyes: -- Collect Common Elixir idioms.

  •    Elixir

There is a wonderful project in Ruby called fast-ruby, from which I got the inspiration for this repo. The idea is to collect various idioms for writing performant code when there is more than one essentially symantically identical way of computing something. There may be slight differences, so please be sure that when you're changing something that it doesn't change the correctness of your program. Each idiom has a corresponding code example that resides in code.

elixir_style_guide - A community driven style guide for Elixir

  •    Elixir

Liquid architecture. It's like jazz — you improvise, you work together, you play off each other, you make something, they make something. Style matters. Elixir has plenty of style but like all languages it can be stifled. Don't stifle the style.

phoenix-battleship - The Good Old game, built with Elixir, Phoenix, React and Redux

  •    Elixir

The Good Old game built with Elixir, Phoenix Framework, React and Redux. You need to have Elixir v1.2 installed.

elixirschool - Premier destination to learn and master the Elixir programming language

  •    CSS

Elixir School is the premier destination for people looking to learn and master the Elixir programming language. Lessons can now be viewed at ElixirSchool.com.

drab - Remote controlled frontend framework for Phoenix.

  •    Elixir

Drab extends Phoenix Framework to "remote control" UI on the browser, live. The idea is to move all User Interface logic to the server-side, to eliminate Javascript and Ajax calls. First at all, you need to have a Phoenix application, on top of which you will install Drab. If this is a standard app, generated with mix phx.new, you may use Drab Installer to make it running in one, simple step. Otherwise, see Manual Installation section below.

Godello - Trello inspired kanban board made with the Godot Engine and GDScript, powered by an online real-time collaborative backend (Elixir and Phoenix Channels)

  •    GDScript

Trello inspired kanban board made with the Godot Engine and GDScript, powered by an online real-time collaborative backend made with Elixir and Phoenix Channels (with the possibility of additional backend languages and frameworks). ATTENTION: 70% done. Remaining WIP in the branch integrate_elixir. See "Progress" below. In the end, the idea is to showcase Godot as a viable option for native Desktop applications and tools, no matter how simple or complex/advanced the application and the interface are.

timex - A complete date/time library for Elixir projects.

  •    Elixir

Timex is a rich, comprehensive Date/Time library for Elixir projects, with full timezone support via the :tzdata package. If you need to manipulate dates, times, datetimes, timestamps, etc., then Timex is for you! It is very easy to use Timex types in place of default Erlang types, as well as Ecto types via the timex_ecto package. The complete documentation for Timex is located here.

vex - Data Validation for Elixir

  •    Elixir

An extensible data validation library for Elixir. Can be used to check different data types for compliance with criteria.

crocks - A collection of well known Algebraic Data Types for your utter enjoyment.

  •    Javascript

crocks is a collection of popular Algebraic Data Types (ADTs) that are all the rage in functional programming. You have heard of things like Maybe and Either and heck maybe even IO, that is what these are. The main goal of crocks is to curate and provide not only a common interface between each type (where possible of course), but also provide all of the helper functions needed to hit the ground running. There are many options to use crocks to suit the needs of your, projects. When used on the backend or in an environment where size is not a big concern, the entire lib can be brought in and the various elements can be either be plucked off of or referenced by the namespace.

MonadEx - Upgrade your pipelines with monads.

  •    Elixir

MonadEx introduces monads into Elixir. Monads encapsulate state and control the flow of code. A monad's bind operation is similar, but more powerful, than Elixir's built-in pipelines. Monads may be combined to make even more useful constructs. For example, you may want to use a state monad in combination with a result monad. The state monad can track a shared environment and the result monad can keep track of the success or failure state.

phoenix-trello - Trello tribute done in Elixir, Phoenix Framework, React and Redux.

  •    Javascript

Trello tribute done with Elixir, Phoenix Framework, Webpack, React and Redux. You need to have Elixir v1.3 and PostgreSQL installed.






We have large collection of open source products. Follow the tags from Tag Cloud >>


Open source products are scattered around the web. Please provide information about the open source projects you own / you use. Add Projects.