That clarifies it - thanks Mike.

Sent from my iPhone

> On 4 Apr 2015, at 05:39, Mike Thompson <[email protected]> wrote:
> 
>> On Friday, April 3, 2015 at 11:29:35 PM UTC+11, Colin Yates wrote:
>> Thanks for the clarification - I would still be nervous about relying
>> on the sequencing though as that feels like an implementation detail.
>> 
>> I am concerned though about the interpretation of "Why? Partially
>> because handlers are given a snapshot of the app-db and can't be
>> nested.". This is still a little ambiguous for me - for example, if it
>> means nested in terms of transactions then it means the opposite of
>> what you think.
>> 
>> The above could be read as "each handler is given the _same_ snapshot
>> of the database" in which case event dispatch sequence is irrelevant,
>> or "the db is the result of reducing each handler onto the snapshot".
>> I really should check the code (but head elsewhere ATM).
>> 
>>> On 3 April 2015 at 13:07, Daniel Kersten <[email protected]> wrote:
>>> Right, I see what you mean. I think I need to think about it some more :)
>>> 
>>> 
>>> 
>>>> On Fri, 3 Apr 2015 at 12:58 Rafał Cieślak <[email protected]> wrote:
>>>> 
>>>>> That is, have the event control which player it gets applied to. This
>>>>> way the handler does not need any knowledge of this at all and can use 
>>>>> path
>>>>> middleware to focus in on only what it cares about (the game board, in the
>>>>> case of selecting a cell).
>>>> 
>>>> I think it's better to fetch the player in the handler, as the cell
>>>> component itself doesn't care about whose turn it is.
>>>> 
>>>> But maybe your solution is more FRP-ish, I don't know. ;)
>>>> 
>>>> --
>>>> Note that posts from new members are moderated - please be patient with
>>>> your first post.
>>>> ---
>>>> You received this message because you are subscribed to the Google Groups
>>>> "ClojureScript" 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].
>>>> Visit this group at http://groups.google.com/group/clojurescript.
>>> 
>>> --
>>> Note that posts from new members are moderated - please be patient with your
>>> first post.
>>> ---
>>> You received this message because you are subscribed to the Google Groups
>>> "ClojureScript" 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].
>>> Visit this group at http://groups.google.com/group/clojurescript.
> 
> 
> I'd think about it this way ...  
> 
> Each time an event is handled, these steps occur:
>   1.  The value in app-db is extracted -- let's call that value db. 
>   2.  Lookup the handler for the event
>   3.  Call this handler passing in db and v.
>   4.  take the return value from step 3, and put it back into app-db 
> 
> That's the cycle. 
> 
> Only once one cycle is complete, can the next event be handled, by performing 
> exactly the same set of steps. 
> 
> If, during the execution of step 3, another event is dispatched, then it will 
> not be handled until "later" -- in another cycle of the loop above. It is 
> simply queued up. 
> 
> That's what I mean about no nesting. Event handling is done via a FIFO 
> conveyor belt. One event can't be handled in the middle of another one is 
> being handled. 
> 
> 
> --
> Mike
> 
> 
> 
> 
> 
> 
> 
> 
> -- 
> Note that posts from new members are moderated - please be patient with your 
> first post.
> --- 
> You received this message because you are subscribed to the Google Groups 
> "ClojureScript" 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].
> Visit this group at http://groups.google.com/group/clojurescript.

-- 
Note that posts from new members are moderated - please be patient with your 
first post.
--- 
You received this message because you are subscribed to the Google Groups 
"ClojureScript" 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].
Visit this group at http://groups.google.com/group/clojurescript.

Reply via email to