開発環境
- Mac OS X Snow Leopard (OS)
- TextWrangler(Text Editor) (いずれはBBEditを入手したい!)
- Script言語:Perl
『初めてのPerl 第5版』(Randal L. Schwartz, Tom Phoenix, brian d foy 共著、近藤 嘉雪 訳、オライリー・ジャパン、2009年、ISBN978-4-87311-427-9) の15章(スマートマッチとgiven-when), 15.6(練習問題)、5を解いてみる。
5.
やり方の1つ。(「やり方は何通りもある」(TIMTOWTDI(There Is More Than One Way To Do It.)))
コード(TextWrangler)
#!/usr/bin/perl
use 5.010;
use strict;
use warnings;
say "$ARGV[0]の約数を全て表示(ただし1とそれ自身は除く)";
# 好きな数
my $fav_num=10;
given($ARGV[0]){
when(!/^\d+$/){say "Not a Number.";}
my @divisors=&divisorts($_);
my @list;
when(!(@divisors~~2)){say "奇数";continue}
when(@divisors~~2){say "偶数";continue}
when(@divisors~~$fav_num){
say "好きな数の倍数";continue}
when(@divisors~~@list){say "素数";}
default{say "約数: @divisors";}
}
sub divisorts{
my $number=shift;
my @divisors=();
foreach my $divisor(2..$number/2){
push @divisors,$divisor unless $number % $divisor;
}
return @divisors;
}
コマンドラインに99(奇数), 11(奇数、素数), kamimura(NaN)、50(偶数、好きな数(10)の倍数)をそれぞれ指定して確認。
入出力結果(Ternimal)
ファイルの用意が必要な場合はO'Reilly Japan - 初めてのPerl 第5版の関連ファイルのプログラム例に含まれているものを使用しています。
0 コメント:
コメントを投稿