drop :: Int -> [A] -> [A] -- testing 60 combinations of argument values -- looking through 1 candidates of size 1 -- looking through 1 candidates of size 2 -- looking through 1 candidates of size 3 -- looking through 1 candidates of size 4 -- looking through 1 candidates of size 5 -- looking through 1 candidates of size 6 -- looking through 1 candidates of size 7 -- looking through 5 candidates of size 8 -- looking through 21 candidates of size 9 -- looking through 60 candidates of size 10 -- looking through 136 candidates of size 11 -- looking through 288 candidates of size 12 -- looking through 601 candidates of size 13 drop x y = if null y || x == 0 then y else drop (dec x) (tail y) take :: Int -> [A] -> [A] -- testing 60 combinations of argument values -- looking through 2 candidates of size 1 -- looking through 2 candidates of size 2 -- looking through 2 candidates of size 3 -- looking through 6 candidates of size 4 -- looking through 10 candidates of size 5 -- looking through 14 candidates of size 6 -- looking through 26 candidates of size 7 -- looking through 54 candidates of size 8 -- looking through 122 candidates of size 9 -- looking through 280 candidates of size 10 -- looking through 636 candidates of size 11 -- looking through 1512 candidates of size 12 -- looking through 3618 candidates of size 13 -- looking through 8400 candidates of size 14 -- looking through 19152 candidates of size 15 -- looking through 43184 candidates of size 16 take x y = if null y || x == 0 then [] else head y:take (dec x) (tail y)