Fusing a syntax tree - that's a great model for building intuition - I'll 
give it some thought and see what I can come up with over the next few 
days. Thx a lot, Chris

On Saturday, May 24, 2014 8:53:24 AM UTC+10, Gabriel Gonzalez wrote:
>
>  My main comment is that this would be really valuable if you kept 
> expanding out the last part (Section 7) so that it was a tree of `M`s and 
> then show how `runEffect` collapsed those `M`s into a single `IO` action.
>
> I did something very similar for my Stanford pipes lecture and it went 
> over really well.  People *really* like seeing the syntax trees that pipes 
> expand out to and understanding how the composition operators fuse the 
> syntax trees together.
>
> You can check out the first section of the slides, which you can find here:
>
> http://www.scs.stanford.edu/14sp-cs240h/slides/pipes-slides.html#%281%29
>
> You'll see that I did something very similar, except for a `Producer`-only 
> subset of `pipes`.  Once people understand how the `do` notation translates 
> to syntax trees they usually "get it".
>
> On 5/23/14, 3:33 PM, Chris Mahon wrote:
>  
> That's an error - thx for letting me know - should be:
>
> yield 1 >> yield 2, etc.
>
> I have updated the article.
>
> On Saturday, May 24, 2014 7:59:56 AM UTC+10, Pierre R wrote: 
>>
>> Are you sure this part is correct  (the 1 becomes 2, ...) ?
>>
>> yield :: Monad m => a -> Proxy x' x a' a m a'yield a = Respond a Pure
>> producer'' :: Proxy X () () Int IO ()producer'' 
>>
>>   = yield 1 >> yield 1
>>   
>>   = yield 1 >>= \_ -> yield 1
>>   
>>   = Respond 1 Pure >>= \_ -> Respond 1 Pure
>>   
>>   = Respond 1 (\v -> Pure v >>= \_ -> Respond 2 Pure)
>>   
>>   = Respond 1 (\v -> Pure v >>= \_ -> Respond 2 (\v' -> Pure v'))
>>
>> Cheers
>>
>> On Friday, May 23, 2014 4:35:12 AM UTC+2, Chris Mahon wrote: 
>>>
>>> I completed the unfinished parts of the article, mainly the reduction of 
>>> the sample effect at the end. Will update with any feedback. thx, Chris
>>>
>>> On Thursday, May 22, 2014 8:21:32 AM UTC+10, Gabriel Gonzalez wrote: 
>>>>
>>>>  Alright, then I will try to complete the bidirectional tutorial as 
>>>> soon as possible.
>>>>
>>>> On 5/21/14, 7:13 AM, Chris Mahon wrote:
>>>>  
>>>> Thanks for those links, very interesting. I'll shelve that idea for a 
>>>> bi-directional article then - look forward to your tutorial on the subject 
>>>> - I'm not sure I would have had much to write on the subject anyway.
>>>>
>>>> On Wednesday, May 21, 2014 11:12:09 PM UTC+10, Gabriel Gonzalez wrote: 
>>>>>
>>>>>  I'm still reading your article, and I will give more comments later 
>>>>> today, but I just wanted to mention that there used to be a bidirectional 
>>>>> pipes tutorial back in the 3.* cycle:
>>>>>
>>>>>
>>>>> https://hackage.haskell.org/package/pipes-3.3.0/docs/Control-Proxy-Tutorial.html#g:2
>>>>>
>>>>> I deleted in the transition to 4.0.0, mainly because people were 
>>>>> complaining about the high complexity of `pipes` and one of the goals of 
>>>>> the 4.0.0 release was to show that you could program entirely in a 
>>>>> unidirectional subset of `pipes`.  However, I plan to add a bidirectional 
>>>>> tutorial back again soon.
>>>>>
>>>>> You might also find this Stack Overflow answer I wrote helpful:
>>>>>
>>>>>
>>>>> http://stackoverflow.com/questions/23185690/event-handler-stack/23187159#23187159
>>>>>
>>>>> On 5/21/14, 4:38 AM, Chris Mahon wrote:
>>>>>  
>>>>> Hi all,
>>>>>
>>>>> I'm working on an article titled pipes 
>>>>> deconstructed<http://cmahon.github.io/posts/pipes-deconstructed/>and 
>>>>> would really appreciate feedback before I put the final touches on it. 
>>>>> My aim is to explain the underlying co-routine mechanics via a reduction 
>>>>> of 
>>>>> a simple example to Proxy form. While I found it useful to get to grips 
>>>>> with the pipes implementation for my own edification, I'm really not sure 
>>>>> whether anyone else would find this level of detail useful so apart from 
>>>>> any comments on style, correctness, etc., please let me know if I'm off 
>>>>> on 
>>>>> a self-indulgent tangent of no wider interest!
>>>>>
>>>>> Was also thinking of writing a short article illustrating 
>>>>> bi-directional pipes usage as I couldn't find much detail on the subject 
>>>>> in 
>>>>> the pipes tutorial and I leaned how to send data upstream while digging 
>>>>> into the pipes code. Simple example towards the end of a short note I 
>>>>> just 
>>>>> wrote on fix. <http://cmahon.github.io/notes/haskell/#fix>
>>>>>
>>>>> I've just created my blog and the limited content that's there is all 
>>>>> work in progress at the moment so a bit rough and ready in places. 
>>>>>
>>>>> Anyway, thanks in advance for your help,
>>>>>
>>>>> Chris 
>>>>>  -- 
>>>>> You received this message because you are subscribed to the Google 
>>>>> Groups "Haskell Pipes" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>>> an email to [email protected].
>>>>> To post to this group, send email to [email protected].
>>>>>
>>>>>
>>>>>   -- 
>>>> You received this message because you are subscribed to the Google 
>>>> Groups "Haskell Pipes" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>> an email to [email protected].
>>>> To post to this group, send email to [email protected].
>>>>
>>>>
>>>>     -- 
> You received this message because you are subscribed to the Google Groups 
> "Haskell Pipes" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected] <javascript:>.
> To post to this group, send email to [email protected]<javascript:>
> .
>
>
>  

-- 
You received this message because you are subscribed to the Google Groups 
"Haskell Pipes" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].

Reply via email to