Timeline for Monad transformers in C# for use in validation
Current License: CC BY-SA 3.0
12 events
when toggle format | what | by | license | comment | |
---|---|---|---|---|---|
Dec 22, 2015 at 19:20 | history | edited | 200_success | CC BY-SA 3.0 |
edited tags; edited title
|
Dec 22, 2015 at 16:35 | answer | added | Ben Aaronson | timeline score: 1 | |
Dec 19, 2013 at 23:24 | answer | added | Mathieu Guindon | timeline score: 1 | |
Dec 6, 2013 at 10:00 | comment | added | abuzittin gillifirca |
Question of 'Is this a Monad?' aside, add a remove(Customer) method to repository and show us how you would bind getById and remove as you would in an actual Delete . write the same code with if &try statements an compare. What happens to the exceptions we get from repository etc when we Delete ?
|
|
Dec 5, 2013 at 16:22 | history | tweeted | twitter.com/#!/StackCodeReview/status/408632449204510720 | ||
Dec 5, 2013 at 14:41 | history | migrated | from programmers.stackexchange.com (revisions) | ||
Dec 4, 2013 at 0:59 | comment | added | Blair Davidson | @jozefg Are you saying that because you have type classes in Haskell / Scala you do not need to manually convert like how I do with .ToTValidationT()? Secondly I am unsure what you mean by the operations get / put and lift? Can you further explain? | |
Dec 3, 2013 at 20:29 | comment | added | Matt H | Just a note, your validation type can be generalized to the Either type, or disjoint union. | |
Dec 3, 2013 at 15:06 | comment | added | daniel gratzer |
I question whether monad transformers are a good idea in C#. For one, they already are semi-unpleasant to use in Haskell (Many people want a better system for combining effects) and two, the reason why they don't suck is because of the typeclass-y prolog we do to make it so that operations like get , put , and tell automagically propogate up a monad stack, this isn't possible in C#. You'd end up with the dreaded lift(lift(lift(foo)))
|
|
Dec 3, 2013 at 15:00 | comment | added | Phoshi | @MattFenwick: You are completely correct, however much of LINQ is inspired by monads and C# uses the terms Select and SelectMany instead of map and bind. It does this faithfully enough that anybody writing monadic code in C# should be quite comfortable using Select/SelectMany. | |
Dec 3, 2013 at 14:52 | comment | added | Matt Fenwick |
+1 for the effort, but I wonder if maybe the non-standard names will be confusing to people familiar with monads? For instance, it looks like your Select is often called map and SelectMany is often called bind . (Not a criticism, just an observation)
|
|
Dec 3, 2013 at 14:22 | history | asked | Blair Davidson | CC BY-SA 3.0 |