Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

Re: Re:^3 Passing subroutines as arguments

by mvaline (Friar)
on May 08, 2003 at 20:37 UTC ( #256673=note: print w/ replies, xml ) Need Help??


in reply to Re:^3 Passing subroutines as arguments
in thread Passing subroutines as arguments

Thanks... sorry for the stupid mistake. Here's the corrected code:

#!/usr/bin/perl -w # summation examples from SICP done in Perl use strict; use warnings; my $result = &sum_integers(1, 3); print "sum_integers(1, 3) equals $result\n"; $result = &cube(3); print "cube(3) equals $result\n"; $result = &sum_cubes(1, 3); print "sum_cubes(1, 3) equals $result\n"; $result = &sum_cubes2(1, 3); print "sum_cubes2(1, 3) equals $result\n"; sub sum_integers { my ($a, $b) = @_; if ($a > $b) { return(0); } else { return( $a + &sum_integers(($a + 1), $b) ); } } sub cube { my ($a) = @_; return( $a * $a * $a ); } sub sum_cubes { my ($a, $b) = @_; if ($a > $b) { return(0); } else { return( &cube($a) + &sum_cubes(($a + 1), $b) ); } } sub sum { my ($term, $a, $next, $b) = @_; if ($a > $b) { return(0); } else { return( $term->($a) + &sum( $term, ($next->($a)), $next, $b +) ); } } sub inc { my ($n) = @_; return( $n + 1 ); } sub sum_cubes2 { my ($a, $b) = @_; return( &sum(\&cube, $a, \&inc, $b) ); }


Comment on Re: Re:^3 Passing subroutines as arguments
Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://256673]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (10)
As of 2015-07-30 09:09 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (270 votes), past polls