http://www.perlmonks.org?node_id=1123114


in reply to Re^2: Golf: Factorials
in thread Golf: Factorials

24 characters using say and an unused punctuation variable:

13:38 >perl -E "$a=1;say$a*=++$}for a..k" 1 2 6 24 120 720 5040 40320 362880 3628800 39916800 13:38 >

:-)

Athanasius <°(((><contra mundum Iustus alius egestas vitae, eros Piratica,

Replies are listed 'Best First'.
Re^4: Golf: Factorials
by eyepopslikeamosquito (Chancellor) on Apr 11, 2015 at 04:49 UTC

    Though we may have strayed a bit from the original golf, yours can be whittled by three strokes:

    > perl -E "$a=1;say$a*=++$}for a..k" > perl -E "say$x*=$_ for++$x..11" 1 2 6 24 120 720 5040 40320 362880 3628800 39916800

      yes a bit from the original post: in fact:
      perl -E "say$x*=$_ for++$x..3,0,1,-1" 1 2 6 0 # must be 1 0 # too 0 # must be undef or Error


      L*
      There are no rules, there are no thumbs..
      Reinvent the wheel, then learn The Wheel; may be one day you reinvent one of THE WHEELS.
Re^4: Golf: Factorials
by Discipulus (Abbot) on Dec 15, 2015 at 10:52 UTC
    also this solution works only for series of consecutive integers starting with 1
    perl -E "$a=1;say$a*=++$}for @ARGV" 0 1 2 3 1 2 6 24 perl -E "$a=1;say$a*=++$}for @ARGV" 1 3 1 2


    L*
    There are no rules, there are no thumbs..
    Reinvent the wheel, then learn The Wheel; may be one day you reinvent one of THE WHEELS.