Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

Re (tilly) 4: (Golf as well): List of Partitions

by tilly (Archbishop)
on May 07, 2001 at 01:04 UTC ( #78389=note: print w/replies, xml ) Need Help??


in reply to Re: Re (tilly) 2: (Golf as well): List of Partitions
in thread (Golf as well): List of Partitions

Nice, now slimed down to 64 on the knowledge that the partitions are always sorted from largest number to smallest...
sub P{ [@_],map{my$i=$_;map$$_[0]>$i?():[$i,@$_],P($_[0]-$i)}1..$_[0]-1 }
UPDATE
Saved an additional char because my map could be commified.

UPDATE 2
Scraping the barrel for 61:

sub P{ my$i;[@_],map{map$$_[0]>$i?():[$i,@$_],P($_[0]-++$i)}2..$_[0] }

Replies are listed 'Best First'.
Re: Re (tilly) 4: (Golf as well): List of Partitions
by jynx (Priest) on May 07, 2001 at 09:39 UTC

    Tilly, i would say something, but it would sound clunky compared to the beautiful code above. It would be nice if i could ++ you more than once for that snippet.

    One question though, what's commified? i'm not sure if i've ever heard the term...

    jynx

      Here is what I mean by commified. Consider the following 2 versions of the same map statement:
      ...map{"@$_\n"}@a... ...map"@$_\n",@a...
      The first form is more general, you can put more complex logic inside the block. The second form replaces the block with a comma and shaves a character. Often you can shave a few characters off of someone's solution by seeing that a few map's or grep's can switch over to the version with the comma.

      Sometimes it is not obvious that you can. So sometimes I just have to try it out. As in the case:

      ...map{$$_[0]>$i?():[$i,@$_]}P($n-$i)... ...map$$_[0]>$i?():[$i,@$_],P($n-$i)...
      Incidentally the following version is the same size, but has slightly nicer (IMHO) output:
      sub P{ my$i=pop;[$i],map{--$i;map$$_[0]>$i?():[$i,@$_],P($_-1)}2..$i }

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://78389]
help
Chatterbox?
[ambrus]: This is different from MS Word, which was already a good editor in the pre-unicode days (in word for windows versions 2 and 6, which ran on windows 3 but also on windows 95), only it wasn't trying to solve the task of writing maths papers back then.
[Discipulus]: ah ok, sounds reasonable; with no fear: Perl all life long
[ambrus]: Mind you, LaTeX is currently still useful for writing math paper or snippet content without styling in such a way that the
[ambrus]: formatting conventions of a journal or website can be quickly applied to it, and MS Office and LibreOffice has not quite solved this (although it's better for this than it used to be),
[ambrus]: which is sort of a drawback compared to the ages of typewritten manuscripts representing content only to which the typesetter applies formatting, but that process required much more manual labor.
[ambrus]: If you want to typeset a manuscript, you can still do much less work then in the manual typesetting ages and get good formatting.
[ambrus]: All with only cheap modern computers and software.
[ambrus]: Something you can have at home and your corner print shop, without a whole printing press's worth of equipment.

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (9)
As of 2017-09-26 11:16 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    During the recent solar eclipse, I:









    Results (293 votes). Check out past polls.

    Notices?