- 8

Correct, easy to use Option type for TypeScript. Like Scala options; see the introductory blog post. Note: You can use JavaScript instead of TypeScript, but it's not as fun.

https://github.com/bcherny/tsoptionTags | typescript monad functional-programming adt algebra algebraic-data-type haskell option optional maybe fantasy fantasyland functor sanctuary type typesafe null safe |

Implementation | TypeScript |

License | MIT |

Platform |

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.

functional-programming fantasy-land specification monad functor monoid adt algebraic algebraic-data-types algebracrocks 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.

adt predicate-functions lift unary-functions functor composition curry monoid monad pair fp functional monadic monads fantasy applicativeOptional is a robust option/maybe type for C#.The core concept behind Optional is derived from two common functional programming constructs, typically referred to as a maybe type and an either type (referred to as Option<T> and Option<T, TException> in Optional).

option-type safety functional-programmingAn 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.

fantasy-land functional specification algebraic monad applicative functor monoid semigroup chain applyΛ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.

functional-programming kotlin-library monads monad-transformers functional-data-structure kotlin fp-types free-monads tagless-final mtl for-comprehension category-theory metaprogramming kategory funktionale optics recursion-schemesThis 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.

course functional-programming monad monoid functor typeclasses functional-idioms monad-transformers tutorial comonads monads applicativeAn extension to the core Scala library for functional programming. It provides purely functional data structures to complement those from the Scala standard library. It defines a set of foundational type classes (e.g. Functor, Monad) and corresponding instances for a large number of data structures.

scala-extension scala-library functor monadPoint-free wrappers for fantasy-land. Functions are curried using lodash's curry function, and receive their data last. Gives us aliases with our familar haskell names as well. pointfree-fantasy implements a point-free version of the fantasy-land spec, in order to promote a less cluttered, more Haskell-like approach to algebraic programming. We'll justify this approach using Functor as an example.

functional fantasy pointfree tacitWitchcraft 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 type-class functor monad category applicative traversable operators algebraic-data-types algebraEta 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.

programming-language functional-language jvm-language concurrency functional-programmingMaybe is a type that wraps optional values. It can either be a Just (has some value) or a Nothing (has no value). In JavaScript, it is a better way of handling null and undefined. Instead of writing an if statement, ternary expression, or && shorthand to check if a value is present you can just map over it instead and assign the result of this expression or return it. You can also chain operations together, often leading to much cleaner code.

maybe js optional option just nothing some nonePattern matching is an abstraction mechanism that can greatly simplify source code. Commonly, pattern matching is built into a language to provide better syntax, faster code, correctness guarantees and improved diagnostics. Mach7 is a library solution to pattern matching in C++ that maintains many of these features. All the patterns in Mach7 are user-definable, can be stored in variables, passed among functions, and allow the use of open class hierarchies. Next example demonstrates that the library can deal efficiently and in a type-safe manner with non-polymorphic classes like boost::variant as well.

pattern-matching pattern variant visitor visitor-pattern algebraic-data-types adttl;dr Show me how to write, say, the Either sum type with Derive4J!.This project has a special dedication to Tony Morris' blog post Debut with a catamorphism. I'm also very thankful to @sviperll and his adt4j project which was the initial inspiration for Derive4J.

algebraic-data-types optics functional-programming algebra visitor-pattern annotation-processor java-8 derive4j catamorphisms visitor laziness functional streamsZIO is a zero-dependency Scala library for asynchronous and concurrent programming. It is powered by highly-scalable, non-blocking fibers that never waste or leak resources, ZIO lets you build scalable, resilient, and reactive applications that meet the needs of your business.

concurrency asynchronicity functional-programming queues streams promises stm asynchronous concurrent concurrent-programming asynchronous-programming concurrent-data-structureUr is a programming language in the tradition of ML and Haskell, but featuring a significantly richer type system. Ur is functional, pure, statically typed, and strict. Ur supports a powerful kind of metaprogramming based on row types. This type safety is just the foundation of the Ur/Web methodology. It is also possible to use metaprogramming to build significant application pieces by analysis of type structure. For instance, the demo includes an ML-style functor for building an admin interface for an arbitrary SQL table. The type system guarantees that the admin interface sub-application that comes out will always be free of the above-listed bugs, no matter which well-typed table description is given as input.

SubHask is a radical rewrite of the Haskell Prelude. The goal is to make numerical computing in Haskell fun and fast. The main idea is to use a type safe interface for programming in arbitrary subcategories of Hask. For example, the category Vect of linear functions is a subcategory of Hask, and SubHask exploits this fact to give a nice interface for linear algebra. To achieve this goal, almost every class hierarchy is redefined to be more general. SubHask is a work in progress. This README is intended to be a "quick start guide" to get you familiar with the current status and major differences from standard Haskell.

Flexible functional API that's specifically designed to reduce types verbosity (especially maintainability concerns) and complexity (thanks to powerful helpers). When I was first starting with Redux and TypeScript I was trying to use redux-actions to simplify maintainability of action-creators. I was struggling and results were intimidating: incorrect type signatures and broken type-inference cascading throughout the entire code-base (read more detailed comparison).

redux-actions typescript static-typing redux action-creator typesafe actions fluxFunfix is a library of type classes and data types for Functional Programming in JavaScript, TypeScript and Flow. Inspired by Scala, Cats and Monix.

fp functional-programming typescript flowtype es2015 type-classes async concurrency futuresImplementation of STL (Standard Template Library) in TypeScript. TSTL is an open-source project providing features of STL, migrated from C++ to TypeScript. You can enjoy the STL's own specific containers, algorithms and functors in the JavaScript. If TypeScript, you also can take advantage of type restrictions and generic programming with the TypeScript.

typescript stl container collection iterator algorithm critical-section mutex semaphore hashmap treemap tstl typescript-stl typescript-standard-template-library functor exception functional utility thread numeric special_math vector deque list forward_list stack queue priority_queue set multiset unordered_set unordered_multiset map multimap unordered_map unordered_multimap treeset treemultiset hashset hashmultiset treemultimap hashmultimap shared_mutex timed_mutex shared_timed_mutex unique_lock shared_lock timed_semaphore latch barrier flex_barrier
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.**