Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation

Re^3: Sorting dates with the Schwartzian Transform

by johngg (Abbot)
on Aug 03, 2011 at 22:42 UTC ( #918400=note: print w/replies, xml ) Need Help??

in reply to Re^2: Sorting dates with the Schwartzian Transform
in thread Sorting dates with the Schwartzian Transform

... how I would know that the map {} sort {} map {} would be executed in reverse order, but I didn't find it. Any clues?

Both map and sort take a list (which is on the RHS), do some transformation of it then return the transformed list (to the LHS).

my @mapped = map { # some transform code } @unmapped; my @sorted = sort { # sorting code } @unsorted;

The ST code is just an extension of this right-to-left pattern:

  • the first map extracts the sorted dates in the original DD-MM-YYYY format and assigns to the @dates array on the LHS of the assignment operator (=);

  • but it can't do that before the sort has evaluated, sorting the items;

  • which in turn can't do any sorting before the bottom (or rightmost) map has transformed some dates into something sort can work with, taking its raw material from the rightmost part of the expression which is the original, unsorted @dates array.

I hope this makes things a bit clearer.



Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://918400]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (8)
As of 2018-06-19 15:33 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (114 votes). Check out past polls.