どう書く?org の残骸
隣り合う二項の差 どう書く?org
整数のリストがxsが与えられたときに、隣り合う2要素の差のリストを作る関数diffを作ってください。

いろいろ試して、結局投稿しなかった残骸を置いておきます。

普通に書いたもの
sub diff {
my @a;
push (@a, $_[ $_ + 1 ] - $_[$_]) for 0 .. $#_ - 1;
@a;
}

pairwise を使いたくて書いてみたもの
use List::MoreUtils qw/pairwise/;

sub diff {
my @a = @_[ 1 .. $#_ ];
my @b = @_[ 0 .. $#_ - 1 ];
return pairwise { $a - $b } @a, @b;
}

関数内で再帰
sub diff {
my $a = shift or return;

sub diff_rec {
my $b = $a;
$a = shift or return;
return ( $a - $b, diff_rec(@_) );
}
return diff_rec @_;
}

[PR]
by fkmn | 2007-08-22 23:55 | IT
<< 札幌に行ってきます ヒトラーとessaさんが微妙に... >>


とあるWebアプリケーションエンジニアの日記
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
カテゴリ
以前の記事
ブログパーツ
リンク
検索
タグ
最新のトラックバック
プログラミングが「出来る..
from とりあえず9JP?
Genographic ..
from ナンジャモンジャ
ジュセリーノ
from ありの出来事
くちこみブログ集(ライフ..
from くちこみブログ集(ライフ)(..
以降、丁寧語で行こう!
from エッセイ的な何か
人気ジャンル
ファン
記事ランキング
ブログジャンル
画像一覧

fkmnの最近読んだ本 フィードメーター - フッ君の日常 あわせて読みたい AX