> In short it happens because of the way lists are implemented and because 
it takes the first element from a list (car) and cons it to another list 

Makes sense. That's what I assumed was happening, but wasn't sure. Thanks 
for the help!


On Friday, May 12, 2017 at 12:45:55 PM UTC-5, Peter Damoc wrote:
>
> On Fri, May 12, 2017 at 8:07 PM, Frank Bonetti <[email protected] 
> <javascript:>> wrote:
>
>> > Imagine for a second that the first task takes 2 seconds the second 
>> task 1 second and the third 500ms. They finish in reverse order. If you 
>> want their result immediately after they finish, the results will come in 
>> the wrong order.
>>
>> Totally understand. Why do the commands *start* in reverse order though?
>>
>
> What you are seeing is an artifact of the current implementation. 
> In short it happens because of the way lists are implemented and because 
> it takes the first element from a list (car) and cons it to another list 
> The simplified version of what happens is exemplified by this ellie 
> example:
> https://ellie-app.com/39Qy5qycs8Qa1/0
>
> Now, if you want to go further and ask another *why*, you will have to 
> get very intimate with the rest of the implementation details in order to 
> understand the trade-offs in various approaches and to understand why this 
> one has been chosen. (I can only guess that it was a performance reason) 
>
> If you have enough JS knowledge you can dig deeper into the 
> Platform/Scheduler 
> code 
> <https://github.com/elm-lang/core/blob/master/src/Native/Platform.js#L311>. 
>  
> Elm's JS kernel code is quite readable. 
>
>
>
> -- 
> There is NO FATE, we are the creators.
> blog: http://damoc.ro/
>

-- 
You received this message because you are subscribed to the Google Groups "Elm 
Discuss" 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