Topic: "algebraic-data-types"
gcanti/fp-ts
Functional programming in TypeScript
Language: TypeScript - Size: 22.1 MB - Last synced at: 17 days ago - Pushed at: about 2 months ago - Stars: 11,138 - Forks: 510

fluture-js/Fluture
π¦ Fantasy Land compliant (monadic) alternative to Promises
Language: JavaScript - Size: 2.11 MB - Last synced at: 15 days ago - Pushed at: about 1 year ago - Stars: 2,490 - Forks: 84

origamitower/folktale
[not actively maintained!] A standard library for functional programming in JavaScript
Language: JavaScript - Size: 3.22 MB - Last synced at: 16 days ago - Pushed at: over 3 years ago - Stars: 2,043 - Forks: 102

functionaljava/functionaljava
Functional programming in Java
Language: Java - Size: 3.57 MB - Last synced at: 8 days ago - Pushed at: about 2 years ago - Stars: 1,616 - Forks: 254

gigobyte/purify
Functional programming library for TypeScript - https://gigobyte.github.io/purify/
Language: TypeScript - Size: 36.8 MB - Last synced at: 16 days ago - Pushed at: about 2 months ago - Stars: 1,560 - Forks: 59

enkimute/ganja.js
:triangular_ruler: Javascript Geometric Algebra Generator for Javascript, c++, c#, rust, python. (with operator overloading and algebraic literals) -
Language: JavaScript - Size: 7.11 MB - Last synced at: 7 days ago - Pushed at: over 1 year ago - Stars: 1,546 - Forks: 108

hirrolot/datatype99
Algebraic data types for C99
Language: C - Size: 1.15 MB - Last synced at: 14 days ago - Pushed at: 3 months ago - Stars: 1,413 - Forks: 23

solodon4/Mach7
Functional programming style pattern-matching library for C++
Language: C++ - Size: 97.2 MB - Last synced at: 13 days ago - Pushed at: over 3 years ago - Stars: 1,294 - Forks: 77

witchcrafters/witchcraft
Monads and other dark magic for Elixir
Language: Elixir - Size: 6.42 MB - Last synced at: 7 days ago - Pushed at: almost 2 years ago - Stars: 1,209 - Forks: 62

palatable/lambda
Functional patterns for Java
Language: Java - Size: 5.57 MB - Last synced at: 3 days ago - Pushed at: about 2 years ago - Stars: 871 - Forks: 85

fantasyland/static-land
Specification for common algebraic structures in JavaScript based on Fantasy Land
Language: JavaScript - Size: 117 KB - Last synced at: 3 days ago - Pushed at: over 5 years ago - Stars: 775 - Forks: 41

stepchowfun/typical
Data interchange with algebraic data types.
Language: Rust - Size: 1.5 MB - Last synced at: 8 days ago - Pushed at: 19 days ago - Stars: 617 - Forks: 12

derive4j/derive4j
Java 8 annotation processor and framework for deriving algebraic data types constructors, pattern-matching, folds, optics and typeclasses.
Language: Java - Size: 1020 KB - Last synced at: 13 days ago - Pushed at: over 2 years ago - Stars: 571 - Forks: 49

breandan/kotlingrad
π§© Shape-Safe Symbolic Differentiation with Algebraic Data Types
Language: Kotlin - Size: 288 MB - Last synced at: 14 days ago - Pushed at: 6 months ago - Stars: 537 - Forks: 22

adam-mcdaniel/sage
A programming language that's wise beyond its bytes!π±πΏπͺ΄
Language: Rust - Size: 85.8 MB - Last synced at: 13 days ago - Pushed at: 3 months ago - Stars: 507 - Forks: 17

thma/WhyHaskellMatters
In this article I try to explain why Haskell keeps being such an important language by presenting some of its most important and distinguishing features and detailing them with working code examples. The presentation aims to be self-contained and does not require any previous knowledge of the language.
Language: Haskell - Size: 480 KB - Last synced at: 11 days ago - Pushed at: over 1 year ago - Stars: 470 - Forks: 14

thautwarm/MLStyle.jl
Julia functional programming infrastructures and metaprogramming facilities
Language: Julia - Size: 2.87 MB - Last synced at: 13 days ago - Pushed at: about 1 year ago - Stars: 410 - Forks: 38

witchcrafters/algae
Bootstrapped algebraic data types for Elixir
Language: Elixir - Size: 675 KB - Last synced at: 13 days ago - Pushed at: over 2 years ago - Stars: 337 - Forks: 19

devexperts/remote-data-ts
RemoteData type
Language: TypeScript - Size: 1.44 MB - Last synced at: 19 days ago - Pushed at: over 1 year ago - Stars: 291 - Forks: 28

pointfreeco/swift-enum-properties π¦
π€ Struct and enum data access in harmony.
Language: Swift - Size: 54.7 KB - Last synced at: 10 days ago - Pushed at: almost 4 years ago - Stars: 197 - Forks: 10

vic/expat
Reusable, composable patterns across Elixir libraries
Language: Elixir - Size: 70.3 KB - Last synced at: 10 days ago - Pushed at: almost 7 years ago - Stars: 176 - Forks: 5

jspahrsummers/adt π¦
Algebraic data types for Python (experimental, not actively maintained)
Language: Python - Size: 105 KB - Last synced at: 10 days ago - Pushed at: about 4 years ago - Stars: 173 - Forks: 14

spotify/dataenum
Algebraic data types in Java.
Language: Java - Size: 228 KB - Last synced at: 4 days ago - Pushed at: over 1 year ago - Stars: 168 - Forks: 16

stylewarning/cl-algebraic-data-type
Algebraic data types in Common Lisp
Language: Common Lisp - Size: 37.1 KB - Last synced at: 9 days ago - Pushed at: 10 months ago - Stars: 139 - Forks: 9

seagreen/plate π¦
Principled schema system for JSON. Work in progress.
Language: Haskell - Size: 43.9 KB - Last synced at: over 1 year ago - Pushed at: over 5 years ago - Stars: 128 - Forks: 5

fogfish/datum
pure functional and generic programming for Erlang
Language: Erlang - Size: 476 KB - Last synced at: 11 days ago - Pushed at: almost 2 years ago - Stars: 125 - Forks: 9

jasonkuhrt/alge
Type safe library for creating Algebraic Data Types (ADTs) in TypeScript. π±
Language: TypeScript - Size: 5.41 MB - Last synced at: 6 days ago - Pushed at: 6 days ago - Stars: 120 - Forks: 4

functionalland/functional
Common Functional Programming Algebraic data types for JavaScript that is compatible with most modern browsers and Deno.
Language: JavaScript - Size: 297 KB - Last synced at: 21 days ago - Pushed at: almost 4 years ago - Stars: 112 - Forks: 2

MasonProtter/SumTypes.jl
An implementation of sum types in Julia
Language: Julia - Size: 159 KB - Last synced at: 25 days ago - Pushed at: 9 months ago - Stars: 110 - Forks: 9

gcanti/fp-ts-codegen
TypeScript code generation from a haskell-like syntax for ADT. Playground:
Language: TypeScript - Size: 1.19 MB - Last synced at: 2 days ago - Pushed at: over 5 years ago - Stars: 106 - Forks: 9

baetheus/fun
Functional programming for deno and javascript. Monads, semigroups, optics, parsers, state management, yadda yadda yadda.
Language: TypeScript - Size: 1.55 MB - Last synced at: 18 days ago - Pushed at: about 1 year ago - Stars: 105 - Forks: 7

blackhole89/macros
A more powerful C/C++ preprocessor.
Language: Haskell - Size: 45.9 KB - Last synced at: 8 months ago - Pushed at: over 5 years ago - Stars: 84 - Forks: 3

Roger-luo/Moshi.jl
nextgen MLStyle: Generic Algebraic Data Type + Pattern Match
Language: Julia - Size: 1.61 MB - Last synced at: 12 days ago - Pushed at: 4 months ago - Stars: 83 - Forks: 5

PoslavskySV/rings
Rings: efficient JVM library for polynomial rings
Language: Java - Size: 24.7 MB - Last synced at: 23 days ago - Pushed at: over 1 year ago - Stars: 74 - Forks: 10

Qqwy/elixir-fun_land
Algebraic Data Types for Elixir: Both functional and fun.
Language: Elixir - Size: 175 KB - Last synced at: about 1 month ago - Pushed at: about 2 years ago - Stars: 73 - Forks: 4

mknejp/dotvariant
A type-safe and space-efficient sum type for C# (comparable to discriminated unions in C or C++)
Language: C# - Size: 589 KB - Last synced at: about 2 months ago - Pushed at: 9 months ago - Stars: 71 - Forks: 3

fluture-js/momi
Monadic middleware
Language: JavaScript - Size: 254 KB - Last synced at: 1 day ago - Pushed at: about 4 years ago - Stars: 59 - Forks: 1

zhong-j-yu/rekex
PEG parser generator for Java 17 - grammar as algebraic datatypes
Language: Java - Size: 465 KB - Last synced at: about 1 year ago - Pushed at: over 3 years ago - Stars: 53 - Forks: 6

cyrus-/typy
A fragmentary bidirectional type system as a Python library
Language: Python - Size: 609 KB - Last synced at: 2 days ago - Pushed at: over 6 years ago - Stars: 52 - Forks: 1

alexsasharegan/safe-types
Type safe utils inspired from the Rust language for writing better TypeScript/Flow.
Language: TypeScript - Size: 3.87 MB - Last synced at: 15 days ago - Pushed at: over 2 years ago - Stars: 50 - Forks: 1

fogfish/golem
pure functional and generic programming for Go
Language: Go - Size: 1.31 MB - Last synced at: about 2 months ago - Pushed at: 2 months ago - Stars: 48 - Forks: 5

gdejohn/procrastination
A small, straightforward library bringing the benefits of functional programming to Java 11
Language: Java - Size: 410 KB - Last synced at: about 1 year ago - Pushed at: almost 5 years ago - Stars: 46 - Forks: 3

mercari/RemoteDataK
Algebraic data type (ADT) to represent the state of data that is loading from/to remote sources/destinations
Language: Kotlin - Size: 271 KB - Last synced at: 4 days ago - Pushed at: almost 2 years ago - Stars: 43 - Forks: 2

werediver/sum_types.dart
A code generator enabling sum-types in Dart
Language: Dart - Size: 119 KB - Last synced at: 2 months ago - Pushed at: 7 months ago - Stars: 40 - Forks: 7

usethesource/vallang
Generic immutable recursive data representation API targeted at source code models and more.
Language: Java - Size: 14.2 MB - Last synced at: 3 days ago - Pushed at: 3 days ago - Stars: 35 - Forks: 13

xyzsd/dichotomy
Result, Either, Try, and Maybe monadic types for Java
Language: Java - Size: 327 KB - Last synced at: 29 days ago - Pushed at: 29 days ago - Stars: 35 - Forks: 3

libmir/mir-core
Base software building blocks: Algebraic types (aka sumtype/tagged union/variant), universal reflection API, basic math, and more.
Language: D - Size: 576 KB - Last synced at: 2 months ago - Pushed at: 6 months ago - Stars: 33 - Forks: 19

mmottl/aifad
AIFAD - Automated Induction of Functions over Algebraic Data Types
Language: OCaml - Size: 988 KB - Last synced at: about 1 month ago - Pushed at: 5 months ago - Stars: 30 - Forks: 2

VitorLuizC/bitty
π A mono-repository with functional programming helpers, algebraic data types, util functions, types and even some micro frameworks in TypeScript.
Language: TypeScript - Size: 391 KB - Last synced at: 4 days ago - Pushed at: almost 2 years ago - Stars: 30 - Forks: 1

phenax/enum-fp
Functional Enum type / Sum type for javascript with simple pattern matching
Language: JavaScript - Size: 3.14 MB - Last synced at: 21 days ago - Pushed at: over 1 year ago - Stars: 29 - Forks: 3

ocramz/heidi
heidi : tidy data in Haskell
Language: Haskell - Size: 347 KB - Last synced at: 20 days ago - Pushed at: almost 4 years ago - Stars: 27 - Forks: 3

evturn/haskellbook
Solutions to exercises from the book Haskell Programming
Language: Haskell - Size: 603 KB - Last synced at: about 1 year ago - Pushed at: almost 4 years ago - Stars: 26 - Forks: 8

johnthagen/sealed-typing-pep
A PEP to add a `@sealed` typing decorator to Python
Size: 79.1 KB - Last synced at: 1 day ago - Pushed at: about 1 year ago - Stars: 25 - Forks: 0

facile-it/mutoid
Reactive library for data fetching, caching, state management
Language: TypeScript - Size: 3.05 MB - Last synced at: 20 days ago - Pushed at: over 1 year ago - Stars: 25 - Forks: 3

davidmarne/dart_meta_types
a code gen solution for defining sealed classes, data classes, and enum classes for dart.
Language: Dart - Size: 411 KB - Last synced at: about 2 months ago - Pushed at: about 5 years ago - Stars: 25 - Forks: 1

fluture-js/concurrify π¦
Turn non-concurrent FantasyLand Applicatives concurrent
Language: JavaScript - Size: 57.6 KB - Last synced at: 16 days ago - Pushed at: about 5 years ago - Stars: 24 - Forks: 3

jaredly/j3
Another attempt to realize my programming language
Language: JavaScript - Size: 60.2 MB - Last synced at: about 1 month ago - Pushed at: 4 months ago - Stars: 23 - Forks: 0

salvois/DiscriminatedOnions
A stinky but tasty hack to emulate F#-like discriminated unions in C#
Language: C# - Size: 286 KB - Last synced at: 11 days ago - Pushed at: 5 months ago - Stars: 22 - Forks: 2

coplt/Coplt.Union
Tagged union for c#
Language: C# - Size: 167 KB - Last synced at: 11 days ago - Pushed at: about 2 months ago - Stars: 17 - Forks: 0

dmitriz/tiny-cps π¦
Tiny goodies for Continuation-Passing-Style functions (OLDER VERSION), use instead the NEWER `cpsfy`
Language: JavaScript - Size: 561 KB - Last synced at: 13 days ago - Pushed at: over 5 years ago - Stars: 16 - Forks: 0

johnthagen/rust-to-python
A mapping of Rust features and tooling to Python
Size: 36.1 KB - Last synced at: 29 days ago - Pushed at: about 1 month ago - Stars: 14 - Forks: 1

algebraicdb/algebraicdb
[early-wip]A Relational Database Management System with Support for Algebraic Data Types
Language: Rust - Size: 567 KB - Last synced at: 6 months ago - Pushed at: almost 5 years ago - Stars: 13 - Forks: 0

eterps/designing-with-nim-types
Nim translation of Scott Wlaschin's "Designing with types" series
Size: 8.79 KB - Last synced at: 2 days ago - Pushed at: almost 6 years ago - Stars: 13 - Forks: 0

i-am-tom/purescript-data-algebrae π¦
Reified operations for several common data structures.
Language: PureScript - Size: 52.7 KB - Last synced at: 24 days ago - Pushed at: over 6 years ago - Stars: 13 - Forks: 2

plume-lang/plume
Plume is a lightweight programming language that aims to be portable, powerful and easy to learn.
Language: Haskell - Size: 1.3 MB - Last synced at: about 1 month ago - Pushed at: 6 months ago - Stars: 12 - Forks: 2

akrmn/generic-constructors
Language: Haskell - Size: 10.7 KB - Last synced at: over 2 years ago - Pushed at: about 5 years ago - Stars: 12 - Forks: 0

joroKr21/flink-shapeless
ADT support for Flink with Shapeless
Language: Scala - Size: 483 KB - Last synced at: about 2 months ago - Pushed at: over 5 years ago - Stars: 12 - Forks: 3

steinerkelvin/rustie-ts
Small TS library to type and safely handle `serde` JSON serializations of Rust enums.
Language: TypeScript - Size: 34.2 KB - Last synced at: 2 days ago - Pushed at: 7 months ago - Stars: 11 - Forks: 0

underlay/tasl
An algebraic data model for strongly typed semantic data
Language: TypeScript - Size: 3.84 MB - Last synced at: 23 days ago - Pushed at: about 3 years ago - Stars: 11 - Forks: 1

functionalland/functional-io
IO methods as valid Task monads perfect to write great point-free software in JavaScript that is compatible with most modern browsers and Deno.
Language: JavaScript - Size: 146 KB - Last synced at: 2 months ago - Pushed at: over 4 years ago - Stars: 11 - Forks: 0

alexandrepiveteau/elm-algebraic-graph
Algebraic graphs for Elm
Language: Elm - Size: 2.93 KB - Last synced at: about 2 months ago - Pushed at: almost 6 years ago - Stars: 11 - Forks: 0

Columpio/RInGen
Regular Invariant Generator and SMTLIB2 code transformer
Language: SMT - Size: 2.18 MB - Last synced at: about 2 years ago - Pushed at: almost 3 years ago - Stars: 10 - Forks: 2

chakravala/FieldAlgebra.jl
Field-algebra based on Group / Ring symbolic vector module extension
Language: Julia - Size: 40 KB - Last synced at: 24 days ago - Pushed at: about 2 months ago - Stars: 9 - Forks: 0

aelassas/functional-cs
Functional Programming in C#
Language: C# - Size: 1.79 MB - Last synced at: 4 days ago - Pushed at: 6 months ago - Stars: 9 - Forks: 5

ootidea/ts-tagged-union
A library for defining and manipulating algebraic data types in TypeScript.
Language: TypeScript - Size: 574 KB - Last synced at: 5 days ago - Pushed at: 8 months ago - Stars: 9 - Forks: 0

gianluparri03/ruffini π¦
Pyhton implementation for Polynomials, Monomials and lot more!
Language: Python - Size: 5.95 MB - Last synced at: over 1 year ago - Pushed at: almost 5 years ago - Stars: 9 - Forks: 0

thiagopbueno/pyddlib
pyddlib is a Python3 library for manipulating decision diagrams.
Language: Python - Size: 266 KB - Last synced at: 4 days ago - Pushed at: about 8 years ago - Stars: 9 - Forks: 2

pythological/python-cons
An implementation of Lisp/Scheme-like cons in Python
Language: Python - Size: 71.3 KB - Last synced at: 29 days ago - Pushed at: 9 months ago - Stars: 8 - Forks: 3

emptybutton/Act
Library for FP sugar
Language: Python - Size: 1.26 MB - Last synced at: 2 months ago - Pushed at: over 1 year ago - Stars: 8 - Forks: 0

RoryStokes/ad-ts
Bringing Pattern Matching and other ADT and Functional Programming concepts to TypeScript
Language: TypeScript - Size: 437 KB - Last synced at: 10 months ago - Pushed at: over 2 years ago - Stars: 8 - Forks: 2

Trehinos/any_of
A general optional sum of product type which can be Neither, Left, Right or Both.
Language: Rust - Size: 2.73 MB - Last synced at: about 1 month ago - Pushed at: 2 months ago - Stars: 7 - Forks: 0

aelassas/functional-ts
Functional Programming in TypeScript
Language: TypeScript - Size: 1.29 MB - Last synced at: 4 days ago - Pushed at: 6 months ago - Stars: 7 - Forks: 2

hirrolot/poica π¦
A research programming language on top of C macros
Language: C - Size: 1020 KB - Last synced at: 7 months ago - Pushed at: 7 months ago - Stars: 7 - Forks: 0

lapets/uxadt
Universal (cross-language) extensible representation for algebraic data type instances.
Language: Python - Size: 729 KB - Last synced at: 3 days ago - Pushed at: over 7 years ago - Stars: 7 - Forks: 0

davidchase/elmentary
Your one-stop shop for Algebraic Data Types (ADT) in elm :deciduous_tree:
Language: Elm - Size: 26.4 KB - Last synced at: 1 day ago - Pushed at: over 8 years ago - Stars: 7 - Forks: 0

thephoeron/hyperlattices
Generalized Lattice data-types for Common Lisp
Language: Common Lisp - Size: 601 KB - Last synced at: about 1 year ago - Pushed at: almost 2 years ago - Stars: 6 - Forks: 0

mverleg/java-result
Algebraic Result type in Java 15+, return type for oprations that can fail
Language: Java - Size: 299 KB - Last synced at: about 2 months ago - Pushed at: about 3 years ago - Stars: 6 - Forks: 0

Toobo/Enum
Single-class, Rust-inspired enum implementation for PHP
Language: PHP - Size: 48.8 KB - Last synced at: almost 2 years ago - Pushed at: almost 6 years ago - Stars: 6 - Forks: 0

Portfoligno/JavaParser-for-Scala
Facilitate analysis of JavaParser AST by Scala pattern matching
Language: Scala - Size: 286 KB - Last synced at: about 2 years ago - Pushed at: about 6 years ago - Stars: 6 - Forks: 0

aiya000/hs-algebra
Test algebra type class by QuickCheck.
Language: Haskell - Size: 2.93 KB - Last synced at: 2 days ago - Pushed at: over 9 years ago - Stars: 6 - Forks: 0

cpressey/Destructorizers
The destructorizer for booleans is quite popular. It's called "if"
Size: 8.79 KB - Last synced at: 3 months ago - Pushed at: over 1 year ago - Stars: 5 - Forks: 1

coyorkdow/result
rust style error handling for cpp
Language: C++ - Size: 21.5 KB - Last synced at: 29 days ago - Pushed at: almost 2 years ago - Stars: 5 - Forks: 0

owaismohsin001/Sunlight-lang
Sunlight lang is a dynamic, lazy, and functional programming language that compiles to Lua and JS
Language: Haskell - Size: 801 KB - Last synced at: 4 days ago - Pushed at: about 4 years ago - Stars: 5 - Forks: 0

mckayb/phantasy
Functional Programming Helpers and Data Types for PHP
Language: PHP - Size: 443 KB - Last synced at: 6 months ago - Pushed at: over 4 years ago - Stars: 5 - Forks: 0

mckayb/phantasy-types
Sum Types and Product Types in PHP
Language: PHP - Size: 26.4 KB - Last synced at: 3 months ago - Pushed at: over 6 years ago - Stars: 5 - Forks: 0

luochen1990/json-strict
Type Specification for JavaScript/JSON
Language: JavaScript - Size: 1.73 MB - Last synced at: 13 days ago - Pushed at: almost 9 years ago - Stars: 5 - Forks: 1

choonkeat/sumtype-go
Fastest and simplest pattern matching sum types in Go. Don't be jealous of Rust anymore.
Language: Go - Size: 37.1 KB - Last synced at: 2 days ago - Pushed at: 8 months ago - Stars: 4 - Forks: 0

MelbourneDeveloper/nadz
Carefully crafted monads, such as Result and Option for exhaustive pattern matching in Dart.
Language: Dart - Size: 344 KB - Last synced at: 3 days ago - Pushed at: 12 months ago - Stars: 4 - Forks: 0

Zeta611/type-safe-programming
SLConf 2024: νμ μΌλ‘ μμ νκ² νλ‘κ·Έλλ°νκΈ°
Language: TeX - Size: 6.99 MB - Last synced at: about 2 months ago - Pushed at: over 1 year ago - Stars: 4 - Forks: 0

matteoantoci/fat-arrow-ts
Fat Arrow is a library for Typed Functional Programming in TypeScript compatible with Node.js and all major browsers.
Language: TypeScript - Size: 1020 KB - Last synced at: 29 days ago - Pushed at: over 1 year ago - Stars: 4 - Forks: 0
