• This repository has been archived on 14/Oct/2019
  • Stars
    star
    149
  • Rank 247,776 (Top 5 %)
  • Language
    C#
  • Created about 12 years ago
  • Updated almost 7 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

DEPRECATED! Monads for .NET is helpers for C# which makes easier every day of your developer life. Now supports .NET 3.5-4.0, Silverlight 3-5 and Windows Phone 7.

WARNING: Project depreacted in favor of native C# syntax. Please, don't use it for new projects.


Monads for .NET

Monads for .NET is helpers for C# which makes easier every day of your developer life. Now supports .NET 3.5-4.0, Silverlight 3-5 and Windows Phone 7.

In functional programming, a monad is a programming structure that represents computations. Monads are a kind of abstract data type constructor that encapsulate program logic instead of data in the domain model. A defined monad allows the programmer to chain actions together to build a pipeline to process data in various steps, in which each action is decorated with additional processing rules provided by the monad. Programs written in functional style can make use of monads to structure procedures that include sequenced operations, or to define some arbitrary control flows (like handling concurrency, continuations, side effects such as input/output, or exceptions).

More information about monads at Wikipedia.


Supported platforms

  1. .NET 3.5-4
  2. Silverlight 3-5
  3. WP7
  4. XNA

Installing

  1. Just reference "Monads.dll" file and add "using System.Monads;" to your code.
  2. Install via nuget.

Nuget

PM> Install-Package Monads

Nuget link

Contribution

I'm glad to see your contributions for Monads.NET. Just fork the project and pull request when you're ready.

Contacts

Feel free to communicate with me by twitter or e-mail:

License

Released under the MIT license.

Benefits (code samples)

Before

string workPhoneCode;

if (person != null)
{
  if (person.Work != null)
  {
    if (person.Work.Phone != null)
    {
       workPhoneCode = person.Work.Phone.Code;
    }
  }
}

After

string workPhoneCode = person.With(p=>p.Work).With(w=>w.Phone).With(p=>p.Code);

More info at wiki:

  1. Monads for objects
  2. Monads for collections
  3. Argument checking
  4. Events

More Repositories

1

Knockout-MultiModels

Plugin for Knockout JS library which allows to use few view models for single view.
JavaScript
25
star
2

hexo-covers

Microbrowser covers for Hexo static site generator
JavaScript
20
star
3

hexo-related-posts

Hexo plugin that generates related posts list with TF/IDF algorithm
JavaScript
18
star
4

hexo-feed

RSS, Atom and JSON Feed generator for Hexo static site generator
JavaScript
14
star
5

yandex-cloud-functions-router

Node router for Yandex Cloud Functions
TypeScript
11
star
6

cqrs-spirit

Lightweight library to implement CQRS pattern with .NET Core applications.
C#
8
star
7

AjaxAuthenticationHandling

JavaScript
7
star
8

hexo-images

Toolset to opimize images for Hexo static site generator
JavaScript
6
star
9

hexo-broken-links-checker

Broken links checker for Hexo static site generator
JavaScript
5
star
10

hexo-generator-redirect

Redirect pages generator for Hexo static site generator
JavaScript
4
star
11

hexo-search-indexer

Search index generator for Hexo static site generator
JavaScript
1
star
12

AspNetLessIntegrationSample

Code samples for http://blog.zwezdin.com/ru/264
C#
1
star
13

app-info

Utility package to display app info in browser console
TypeScript
1
star
14

typescript-swagger-client

Utility package to generate typescript client by Swagger definition
EJS
1
star
15

prettier-config

Shareable prettier configuration
JavaScript
1
star
16

eslint-config

Shareable configuration for eslint (node)
JavaScript
1
star
17

azure-app-insights-copy-button

Chrome extension that adds "Copy" button for every App Insights record
JavaScript
1
star
18

react-modals

Utility package to handle modals in React
TypeScript
1
star
19

semantic-release-sls-yandex-cloud

Plugin for semantic-release to deploy serverless app to yandex cloud
TypeScript
1
star
20

semantic-release-commits-config

Preset for semantic release
JavaScript
1
star
21

node-logger

Winston logger configuration
TypeScript
1
star