Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

When would you use functional programming?

by Ovid (Cardinal)
on Oct 16, 2002 at 18:50 UTC ( #205797=perlmeditation: print w/ replies, xml ) Need Help??

Help for this page

Select Code to Download


  1. or download this
    my @list = qw/ 7 5 2 2 /;
    my $prod = shift @list;
    $prod *= $_ foreach @list;
    
  2. or download this
    # bad.  Alters @_
    sub head { shift }
    
    # good.  Preserves @_
    sub head { $_[0] }
    
  3. or download this
    i = j + 1
    j = 6
    
  4. or download this
    prodList lst =
        if (length lst)==1 then head lst
    else head lst*(prodList (tail lst))
    
  5. or download this
    sub head { $_[0] }
    sub tail { @_[1..$#_] }
    ...
        ? head @_ 
        : (head @_) * prod_list( tail @_ ) 
    }
    
  6. or download this
    sub factorial { prod_list( 1 .. $_[0] ) }
    
  7. or download this
    #!/usr/bin/perl -w
    use strict;
    ...
    sub factorial { prod_list 1 .. $_[0] }
    
    print factorial shift;
    
  8. or download this
    sub factorial { 
      my $result = 1;
      $result   *= $_ for 1 .. $_[0];
      $result
    }
    
  9. or download this
    @new_list =
      map  { $_->[0] }
      sort { $a->[1] <=> $b->[1] }
      map  { [ $_, expensive_func( $_ ) ] }
        @old_list;
    
  10. or download this
    # who says Perl has too much punctuation? :)
    sub prod_list { 1 == @_ ? $_[0] : $_[0] * prod_list( @_[1..$#_] ) }
    

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlmeditation [id://205797]
Approved by ajt
Front-paged by broquaint
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (9)
As of 2015-05-24 07:27 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    In my home, the TV remote control is ...









    Results (471 votes), past polls