An open API service providing repository metadata for many open source software ecosystems.

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