Re: compact-number-list
bashで。引数→標準出力。
function compact-number-list() {
local i r prev=-2
for i;do
if ((i != prev + 1));then
print-range $r
r=''
fi
r="$r $i"
prev=$i
done
print-range $r
echo
}
function print-range() {
if (( $# > 1 ));then
echo -n "( $1 "
shift $(($# - 1))
echo -n "$1 ) "
else
echo -n "$1 "
fi
}
# test
echo -n '1 3 4 5 6 12 13 15 ->'
compact-number-list 1 3 4 5 6 12 13 15
# expects:
# 1 3 4 5 6 12 13 15 -> 1 ( 3 6 ) ( 12 13 ) 15
コメント
コメントの投稿
トラックバック
http://emasaka.blog65.fc2.com/tb.php/456-5d25cacf
