私はHaskellのに新しいです、と私は機能はRubyのslice_whenのような働きたいのHaskellの同等:Rubyのslice_when
slice_when ルビー
a = [1,2,4,9,10,11,12,15,16,19,20,21]
b = a.slice_when {|i, j| i+1 != j }
p b.to_a #=> [[1, 2], [4], [9, 10, 11, 12], [15, 16], [19, 20, 21]]
ハスケル
ghci > slice_when (\x y -> x+1 /= y) [1,2,4,9,10,11,12,15,16,19,20,21]
=> [[1, 2], [4], [9, 10, 11, 12], [15, 16], [19, 20, 21]]
どうもありがとうございました。
限りプレリュード機能として、[ 'break'](http://hackage.haskell.org/package/base-4.9.0.0/docsがあります/Prelude.html#v:break)、これは一度行います。 'slice_when'の振る舞いを得るために再帰的にブレークを使用することはあまり難しいことではありませんが、それを実行する前奏関数はありません。確かに['split'](http://hackage.haskell.org/package/split-0.2.3.1/docs/Data-List-Split.html)パッケージに必要なものがあります。 – luqui
おっと、わかりました、 'slice_when'はペアで動作します。これはもう少し複雑になります。 – luqui