Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Re: Assignments for Subroutines

by aaron_baugher (Curate)
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 surveying the Monastery: (4)
As of 2015-07-04 23:29 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 (60 votes), past polls