@Raymond I like the illustration a lot.  Perhaps I will use something like
this.
@Marc I think this would likely be like "monad burritos"... it makes sense
to people who understand it in the first place.  Although, I noticed when
trying to explain it today, that I had a concept of "size" in my mind -
it's sort of connected to "layer of abstraction".

On Fri, Oct 2, 2015 at 2:59 PM, Raymond Huang <[email protected]> wrote:

> To follow up on middleware, this is a great picture to demonstrate it.
>
> 687474703a2f2f692e737461636b2e696d6775722e636f6d2f68623864422e706e67
> <https://camo.githubusercontent.com/9dbd86eb82809faf875ab0078771002b7ef357df/687474703a2f2f692e737461636b2e696d6775722e636f6d2f68623864422e706e67>
>
> On Fri, Oct 2, 2015 at 2:43 PM, Marc O'Morain <[email protected]> wrote:
>
>> Could you use Russian Dolls as an analogy? To build a Russian doll (or to
>> build middleware) you start out with the smallest doll, and put it inside
>> the second smallest, which in turn goes inside the third smallest. When
>> opening the doll (calling the function) you start with the largest doll,
>> and open it to reveal the second largest, etc.
>>
>> Imagine the function as a marble, and Russian Dolls as middleware. To put
>> the marble inside the dolls you wrap it in the smallest doll first. To call
>> the function (retrieve the marble) you need to open the largest, outermost
>> doll first.
>>
>>
>>
>> On Fri, Oct 2, 2015 at 8:10 PM, Jason Felice <[email protected]>
>> wrote:
>>
>>> Why is it so hard to describe to new people?
>>>
>>> I mean, the questions I get are (I understand what's happening here, but
>>> I can't describe it well):
>>>
>>> 1. If -> threads things first-to-last, why does the middleware run
>>> last-to-first?
>>> 2. Why is comp backwards?
>>> 3. Wait, so how does each wrapper get a second pass at it?
>>> 4. Why would you do this to me?
>>>
>>> I hope to write a blog or something on this, but I wanted to check in
>>> here first.  Any ideas on how to talk about this?
>>>
>>> Thanks,
>>> -Jason
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To post to this group, send email to [email protected]
>>> Note that posts from new members are moderated - please be patient with
>>> your first post.
>>> To unsubscribe from this group, send email to
>>> [email protected]
>>> For more options, visit this group at
>>> http://groups.google.com/group/clojure?hl=en
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to [email protected]
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> To unsubscribe from this group, send email to
>> [email protected]
>> For more options, visit this group at
>> http://groups.google.com/group/clojure?hl=en
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "Clojure" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> For more options, visit https://groups.google.com/d/optout.
>>
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to [email protected]
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> [email protected]
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to