2011年5月23日月曜日

開発環境

  • 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) の4章(サブルーチン), 4.12(練習問題)、3を解いてみる。

 

3.

やり方の1つ。(「やり方は何通りもある」(TIMTOWTDI(There Is More Than One Way To Do It.)))

コード(TextWrangler)

#!/usr/bin/perl

use strict;
use warnings;

# 数の合計を個数で割って平均を計算して
# 返すサブルーチン
sub average {
  my $sum = 0;
  foreach (@_){
    $sum +=$_;
    }
    $sum / @_;
}

# 数のリストを受け取って、その中から平均よりも
# 大きなもののリストを返すサブルーチン
sub above_average {
  my $average = &average (@_);
  my @list;
  foreach (@_){
    if ( $_ > $average ){
      push @list,$_;
      }
 }
 @list;
}

# 問題のテストプログラム
my @fred = above_average(1..10);
print "\@fred is @fred\n";
print "(Should be 6 7 8 9 10)\n";
my @barney = above_average(100, 1..10);
print "\@barney is @barney\n";
print "(Should be just 100)\n";

入出力結果(Ternimal)

0 コメント:

コメントを投稿