【激突】関数型言語 VS オブジェクト指向言語2at TECH【激突】関数型言語 VS オブジェクト指向言語2 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト313:デフォルトの名無しさん 12/04/14 01:11:55.03 >>311 そしたら、こうだな。 sub com { my ($mod, $zz, $num, $str) = @_; $str .= $zz if 0 == $num % $mod; $str ? ($num, $str) : $num } sub fizz {com(3, 'Fizz', @_)} sub buzz {com(5, 'Buzz', @_)} sub gizz {com(7, 'Gizz', @_)} print "$_: " . gizz(buzz(fizz($_))) . "\n" for qw(1 3 5 7 15 21 35 105); 実効例: $ perl p_FizzBuzzGizzAret.pl 1: 1 3: Fizz 5: Buzz 7: Gizz 15: FizzBuzz 21: FizzGizz 35: BuzzGizz 105: FizzBuzzGizz perlのscalar context/list contextを巧みに?利用してるんで、 それを知らない人には分かりにくいかもしれず、申し訳ないんだか… ※もうちょっと考えて出題して欲しいな、言っちゃ悪いがこういった仕様策定ミスをcodeでカバーすることに何の意味が… 314:デフォルトの名無しさん 12/04/14 01:16:27.94 perlのscalar context/list contextの説明。 関数の引数にフラグを一個追加したもの つまり、 foo(value, false) ・・・ スカラ呼び出し foo(value, true) ・・・ リスト呼び出し foo(value, flag)関数の説明 flagがfalseの場合、スカラタイプの値を返します。 flagがturの場合、リストタイプの値を返します。 まあ、こんなもん。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch