hpaste

recent | annotate | new

Your solution takes successive sublists from [1..] 
So, this will do:

takeSubL [] _ = []
takeSubL (x:xs) ys = take x ys : takeSubL xs (drop x ys)

*Main> takeSubL [3, 1, 4, 2] [1..]
[[1,2,3],[4],[5,6,7,8],[9,10]]