This library uses and abuses the features of C# 6+ to provide a functional 'Base class library', that, if you squint, can look like extensions to the language itself.language-ext is an MIT-licensed open source project. Its ongoing development is made possible thanks to the support by these awesome backers. If you'd like to join them, check out the language-ext Patreon campaign. Or if you'd just like to help support the coffee fund, that is very welcome too!.
c-sharp functional-languages monads monad-transformers immutable-collections higher-kinded-types language-ext f-sharpΛ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-schemescrocks 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 applicativeBuild stack-safe purely functional applications and libraries that support parallel and sequential computations where declaration is decoupled from interpretation. Freestyle encourages programs built atop Free algebras that are interpreted at the edge of your application ensuring effects are localized and performed in a controlled environment. Applications built with Freestyle can be interpreted to any runtime semantics supported by the interpreter target type. Freestyle includes all the implicit machinery necessary to achieve seamless dependency injection of @free and @module Algebras. Simply require any of your @free or @module trait as implicits where needed.
functional-programming monads redis kafka spark cassandra architectural-patterns rpc tagless-final free-monads freestyleThe Task(a, b) structure represents values that depend on time. This allows one to model time-based effects explicitly, such that one can have full knowledge of when they're dealing with delayed computations, latency, or anything that can not be computed immediately. A common use for this monad is to replace the usual Continuation-Passing Style form of programming, in order to be able to compose and sequence time-dependent effects using the generic and powerful monadic operations.
fantasy-land folktale monads algebraic promises futures asynchronousThis 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 applicativeAdd the following dependency to your project's build file. Fetch is a library for making access to data both simple and efficient. Fetch is especially useful when querying data that has a latency cost, such as databases or web services.
cats data monads concurrency sequencing parallelism scala-js monix data-fetchingAdd the following dependency to your project's build file.Fetch is a library for making access to data both simple & efficient. Fetch is especially useful when querying data that has a latency cost, such as databases or web services.
scala-js cats monix data data-fetching parallelism concurrency sequencing monadsAbstractions and constructions from math (Category theory, Abstract algebra) implementations in Scala, minimal description, links to good explanations, links to implementations in other FP languages: Haskell, Idris, Purescript, non FP too: Java, C++ and to formalizations in proof assistants: Coq (UniMath, HoTT book), Cubical Agda.
category-theory monads comonads functor applicative-functors contravariant-functors free-monads free-applicative kan-extensions coyoneda yoneda arrows profunctors semigroup monoid day-convolution abstract-algebraA functional implementation of Either in C++14. This library requires a C++ 14 compiler.
monads cpp functional-programming header-only optional maybe either buckarooThis is an implementation of the Freer monad described by Oleg Kiselykov in Free and Freer Monads: Putting Monads Back in the Closet, and the Cofreer comonad, defined by analogy with Freer. The constraints placed on the constructors of PromptF mean that it doesn’t admit a Functor instance, and thus is not very useful with Free. With Freer, you get Functor, Applicative, and Monad instances with PromptF “for free,” complete with the majority of the API defined in Control.Monad.Free.Freer.
comonads monads haskellExceptions in OOP centric langs such as Java are abused for control flow and event signaling. Lack of proper support for Monads, Higher Kinded Types and other facilities leave lang users with no alternative but to choose happy paths as return types of method signatures.In this talk we will cover some examples regarding the misuse of exceptions and proper data types such as Option, Try, Either[E, A] and MonadError[M[_], E] to model absence of values, failing computations and alternate paths in method return types.
exceptions exceptions-raised error-handling functional-programming monadsResources for One Monad to Prove Them All (Functional Pearl) (submitted to Haskell'18) by Jan Christiansen, Sandra Dylus and Finn Teegen.
proof-assistant verification haskell monadsIn practice, Kea is a collection of higher-order functions and standard collection algorithms that abstracts over the difference between atomic vectors, lists and pairlists. In this way Kea resembles the STL for C++ or Underscore for JavaScript. The best way to get Kea is through github. You must install from the releases branch; Kea is in rapid development and breaking changes are frequently made.
functional-programming r anonymous-functions monads lists collectionsUse browserify to use in browser. See examples folder.
monads functional server client browser[Cassandra] atop Freestyle is frees-cassandra. Freestyle Cassandra is Scala Purely Functional driver for Cassandra based on the datastax Java Driver. [frees-cassandra] is a library to interact with cassandra built atop Free and using the Datastax Cassandra Driver for connecting to a Cassandra instance. It follows the [Freestyle] philosophy, being macro-powered.
functional-programming monads cassandra free-monads freestyleFreestyle RPC is a purely functional library for building RPC endpoint-based services with support for RPC and HTTP/2. Also known as frees-rpc, it brings the ability to combine RPC protocols, services, and clients in your Freestyle program, thanks to gRPC.
freestyle functional-programming monads rpc free-monads freestyle-rpc algebra protocol tagless-final
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.