in reply to What do you write when learning a new language?

I write a Fibonacci sequence generator for much the same reasons: straightforward math, predictable output, and it requires looping. When it comes time to learn subroutines, I expand it to use a recursive approach to determining if the number is even or odd.

This likewise has the benefit of being expandable to include some simple input, whether it be on the command line or otherwise.

Here's what it would look like if I were writing it in Perl...

#!/usr/bin/perl use strict; use warnings; my $number = 1; my $limit = 20; my @list_of_nums; while ($number < $limit) { push @list_of_nums, $number; $number = $number + $list_of_nums[-2]; } foreach my $item (@list_of_nums) { if (odd($item) eq 'Odd') { print "$item is Odd\n"; } else { print "$item is Even\n"; } } sub even { my $num = shift @_; if ($num == 1) { return 'Even'; } else { return odd(--$num); } } sub odd { my $num = shift @_; if ($num == 1) { return 'Odd'; } else { return even(--$num); } }