#114
Global take-while
| Difficulty: | Medium |
| Topics: | seqs higher-order-functions |
take-while is great for
filtering sequences, but it limited:
you can only examine a single item of the sequence at a time.
What if you need to keep track of
some state as you go over the sequence?
Write a function which accepts an integer n,
a predicate p, and a sequence.
It should return a lazy sequence of items in the list up to,
but not including, the nth item that satisfies the predicate.
![]() | (= [2 3 5 7 11 13]
(__ 4 #(= 2 (mod % 3))
[2 3 5 7 11 13 17 19 23])) |
![]() | (= ["this" "is" "a" "sentence"]
(__ 3 #(some #{\i} %)
["this" "is" "a" "sentence" "i" "wrote"])) |
![]() | (= ["this" "is"]
(__ 1 #{"a"}
["this" "is" "a" "sentence" "i" "wrote"])) |

