Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/edumserrano/csharp-functional
csharp-functional provides a set of NuGet packages to drive your coding towards a functional approach as well as enabling Railway Oriented programming
https://github.com/edumserrano/csharp-functional
csharp dotnet functional functional-programming maybe maybe-monad result
Last synced: about 22 hours ago
JSON representation
csharp-functional provides a set of NuGet packages to drive your coding towards a functional approach as well as enabling Railway Oriented programming
- Host: GitHub
- URL: https://github.com/edumserrano/csharp-functional
- Owner: edumserrano
- License: mit
- Created: 2017-08-05T10:52:13.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2022-07-12T12:19:09.000Z (over 2 years ago)
- Last Synced: 2024-05-29T07:12:16.742Z (8 months ago)
- Topics: csharp, dotnet, functional, functional-programming, maybe, maybe-monad, result
- Language: C#
- Homepage: http://csharp-functional.readthedocs.io/en/latest/
- Size: 769 KB
- Stars: 12
- Watchers: 3
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.rst
- License: LICENSE
Awesome Lists containing this project
README
C# Functional
=============|docs| |licence|
==================================================================== ======================================= ================================================
Description NuGet Build Status
==================================================================== ======================================= ================================================
Maybe monad |maybe-nuget| |maybe-build-status|
Result monad |result-nuget| |result-build-status|
HttpResult monad |http-result-nuget| |http-result-build-status|
Result monad extensions |result-extensions-nuget| |result-extensions-build-status|
HttpResult monad extensions |http-result-extensions-nuget| |http-result-extensions-build-status|
Result monad extensions that transforms them into HttpResult monad |result-extensions-http-result-nuget| |result-extensions-http-result-build-status|
Maybe monad extensions that them into Result monad |maybe-extensions-result-nuget| |maybe-extensions-result-build-status|
Simple application of HttpResult monad |http-result-on-http-client-nuget| |http-result-on-http-client-build-status|
==================================================================== ======================================= ================================================Intro
=====This repository started as a learning experience about functional programming concepts. The main trigger was a Pluralsight video from Vladimir Khorikov named `Applying Functional Principles in C# `_.
Installing
=================================================Installation is performed via NuGet. Example for the Maybe monad NuGet package::
PM> Install-Package MaybeMonadBuilding
=================================================This repository adheres to the `F5 manifesto `_ so you should be able to clone, open in Visual Studio and build.
Documentation
=================================================For documentation go `here `_.
To understand better the structure of this repository see the section `About the repository `_.Further material:
* `The Absolute Best Intro to Monads For Software Engineers `_
Licence
=================================================This project is licensed under the `MIT license `_.
.. |docs| image:: https://readthedocs.org/projects/csharp-functional/badge/?version=latest
:alt: Documentation Status
:scale: 100%
:target: http://csharp-functional.readthedocs.io/en/latest/?badge=latest.. |licence| image:: https://img.shields.io/github/license/mashape/apistatus.svg
:alt: licence
:scale: 100%
:target: https://github.com/edumserrano/csharp-functional/blob/master/LICENSE.. |maybe-nuget| image:: https://img.shields.io/nuget/v/MaybeMonad.svg?style=flat
:alt: nuget package
:scale: 100%
:target: https://www.nuget.org/packages/MaybeMonad/.. |result-nuget| image:: https://img.shields.io/nuget/v/ResultMonad.svg?style=flat
:alt: nuget package
:scale: 100%
:target: https://www.nuget.org/packages/ResultMonad/.. |http-result-nuget| image:: https://img.shields.io/nuget/v/HttpResultMonad.svg?style=flat
:alt: nuget package
:scale: 100%
:target: https://www.nuget.org/packages/HttpResultMonad/.. |result-extensions-nuget| image:: https://img.shields.io/nuget/v/ResultMonad.Extensions.svg?style=flat
:alt: nuget package
:scale: 100%
:target: https://www.nuget.org/packages/ResultMonad.Extensions/.. |http-result-extensions-nuget| image:: https://img.shields.io/nuget/v/HttpResultMonad.Extensions.svg?style=flat
:alt: nuget package
:scale: 100%
:target: https://www.nuget.org/packages/HttpResultMonad.Extensions/.. |result-extensions-http-result-nuget| image:: https://img.shields.io/nuget/v/ResultMonad.Extensions.HttpResultMonad.svg?style=flat
:alt: nuget package
:scale: 100%
:target: https://www.nuget.org/packages/ResultMonad.Extensions.HttpResultMonad/.. |maybe-extensions-result-nuget| image:: https://img.shields.io/nuget/v/MaybeMonad.Extensions.ResultMonad.svg?style=flat
:alt: nuget package
:scale: 100%
:target: https://www.nuget.org/packages/MaybeMonad.Extensions.ResultMonad/.. |http-result-on-http-client-nuget| image:: https://img.shields.io/nuget/v/HttpResultMonad.HttpResultOnHttpClient.svg?style=flat
:alt: nuget package
:scale: 100%
:target: https://www.nuget.org/packages/HttpResultMonad.HttpResultOnHttpClient/.. |maybe-build-status| image:: https://eduardomserrano.visualstudio.com/_apis/public/build/definitions/19e4afb6-184b-4d8b-a0e5-a108602592b9/35/badge
:alt: build status
:scale: 100%
:target: https://eduardomserrano.visualstudio.com/_apis/public/build/definitions/19e4afb6-184b-4d8b-a0e5-a108602592b9/35/badge.. |result-build-status| image:: https://eduardomserrano.visualstudio.com/_apis/public/build/definitions/19e4afb6-184b-4d8b-a0e5-a108602592b9/40/badge
:alt: build status
:scale: 100%
:target: https://eduardomserrano.visualstudio.com/_apis/public/build/definitions/19e4afb6-184b-4d8b-a0e5-a108602592b9/40/badge.. |http-result-build-status| image:: https://eduardomserrano.visualstudio.com/_apis/public/build/definitions/19e4afb6-184b-4d8b-a0e5-a108602592b9/43/badge
:alt: build status
:scale: 100%
:target: https://eduardomserrano.visualstudio.com/_apis/public/build/definitions/19e4afb6-184b-4d8b-a0e5-a108602592b9/43/badge.. |result-extensions-build-status| image:: https://eduardomserrano.visualstudio.com/_apis/public/build/definitions/19e4afb6-184b-4d8b-a0e5-a108602592b9/41/badge
:alt: build status
:scale: 100%
:target: https://eduardomserrano.visualstudio.com/_apis/public/build/definitions/19e4afb6-184b-4d8b-a0e5-a108602592b9/41/badge.. |http-result-extensions-build-status| image:: https://eduardomserrano.visualstudio.com/_apis/public/build/definitions/19e4afb6-184b-4d8b-a0e5-a108602592b9/44/badge
:alt: build status
:scale: 100%
:target: https://eduardomserrano.visualstudio.com/_apis/public/build/definitions/19e4afb6-184b-4d8b-a0e5-a108602592b9/44/badge.. |result-extensions-http-result-build-status| image:: https://eduardomserrano.visualstudio.com/_apis/public/build/definitions/19e4afb6-184b-4d8b-a0e5-a108602592b9/42/badge
:alt: build status
:scale: 100%
:target: https://eduardomserrano.visualstudio.com/_apis/public/build/definitions/19e4afb6-184b-4d8b-a0e5-a108602592b9/42/badge.. |maybe-extensions-result-build-status| image:: https://eduardomserrano.visualstudio.com/_apis/public/build/definitions/19e4afb6-184b-4d8b-a0e5-a108602592b9/38/badge
:alt: build status
:scale: 100%
:target: https://eduardomserrano.visualstudio.com/_apis/public/build/definitions/19e4afb6-184b-4d8b-a0e5-a108602592b9/38/badge.. |http-result-on-http-client-build-status| image:: https://eduardomserrano.visualstudio.com/_apis/public/build/definitions/19e4afb6-184b-4d8b-a0e5-a108602592b9/45/badge
:alt: build status
:scale: 100%
:target: https://eduardomserrano.visualstudio.com/_apis/public/build/definitions/19e4afb6-184b-4d8b-a0e5-a108602592b9/45/badge