After posting, I had the idea of checking out the source for partition-
by, and solved the problem:
(defn partition-when
"Applies f to each value in coll, splitting it each time f returns
the specified value. Returns a lazy seq of partitions."
[f value coll]
(lazy-seq
(when-let [s (seq coll)]
(let [run (cons (first s) (take-while #(not= value (f %)) (next
s)))]
(cons run (partition-when f value (seq (drop (count run) s))))
)
)
)
)
So, I can see basically how this function works, but am not sure what
the when-let gives you. Could someone explain? The documentation makes
no sense to me at the moment:
"
(when-let bindings & body)
bindings => binding-form test
When test is true, evaluates body with binding-form bound to the value
of test
"
What test?
Thanks,
Anthony.
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en