in reply to integer partition golf

<homer simpson voice>Mmmmmmm ... gollllf ....</homer simpson voice>

Can I play too?

# 1. Convert "shift" to "pop" to save 2 chars # 2. Convert leading "if" to trailing "&&" to # squeeze out one space char # 3. Convert !(conditional)&&(action) to # (conditional)||(action) for one char # # Savings = 4 chars (86 total chars) sub p{my($n,@e,$o)=@_;$_{$_=join$",sort@_,$/}++||print;p(++$o,--$n,@e) +while$n-1}p(pop)

I've a feeling it can go smaller, though :)

Update  Oh, and ...

# 4. Remove parens from subroutine for 1 char # # Total: 85 chars sub p{my($n,@e,$o)=@_;$_{$_=join$",sort@_,$/}++||print;p(++$o,--$n,@e) +while$n-1}p pop

I still think it can get smaller ...


s''(q.S:$/9=(T1';s;(..)(..);$..=substr+crypt($1,$2),2,3;eg;print$..$/