Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
PerlMonks  

Re: Assignments for Subroutines

by aaron_baugher (Deacon)
on Sep 27, 2012 at 13:56 UTC ( #996011=note: print w/ replies, xml ) Need Help??


in reply to Assignments for Subroutines

If you turned these in as-is, I'd be curious to know what grade you got on the assignment. Here would be my answers:

1. Write a subroutine (&evens) that recieves an array of numbers and returns an array containing only even numbers. Give an example of calling the subroutine.
#!/usr/bin/env perl use Modern::Perl; sub evens { return grep { ! ($_ % 2) } @_; } say for evens(1..10);
2. Write a subroutine(&squares) that recieves an array of numbers and squares each number in the array. Note: nothing is returned.

Since the subroutine is supposed to take an array but return nothing, I assume it is to change the array in place. So I'll pass the array as a reference:

#!/usr/bin/env perl use Modern::Perl; sub squares { my $n = shift; $_ *= $_ for @$n; } my @nums = (1..10); squares(\@nums); say for @nums;
3. Write a subroutine(&huge) that returns true if the number sent is greater than 1,000,000 or false(look up what is true and false). Show an example of calling the function.
#!/usr/bin/env perl use Modern::Perl; sub huge { my $n = shift; return 1 if $n and $n > 1_000_000; return ! $n; # reverse the t/f for all other cases } for (-1,0,1,100,1_000_000, 1_000_001){ my $t = huge($_) ? 'true' : 'false'; say "$_ $t"; }

Aaron B.
Available for small or large Perl jobs; see my home node.


Comment on Re: Assignments for Subroutines
Select or Download Code

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (8)
As of 2014-10-02 13:40 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    What is your favourite meta-syntactic variable name?














    Results (60 votes), past polls