> 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.
