連続するアレゴルフ

なんか見覚ある問題だけどネタ元がネタ元だけに流行ってるなぁとか思ってたら完全に乗り遅れた。
一番短そうなのを写経だけでも。

a=[1,3,4,5,6,12,13,15]
r=[]
a.each{r&&n-1==(a=[]+r[-1])[-1]?r[-1]=[a[1],it]:r<<it}
print r

ArrayList#getAt の気が利かないせいで冗長になってしまう。

> ruby -e "p [][1]; p [][-1]"
nil
nil

> groovy -e "println([][1]); println([][-1])"
null
Caught: java.lang.ArrayIndexOutOfBoundsException: Negative array index [-1] too
large for array size 0
        at script_from_command_line.run(script_from_command_line:1)
        at script_from_command_line.main(script_from_command_line)

この結果がどうも気持ち悪い。どっちも例外ならまだ分かるんだが。