Example:
(deftest p04-test (is (= 3 (my-count (list 1 2 3)))))
Solution
There is the built-in count that solves this problem.
I implemented two possible solutions for this problem:
Source 1. This is again a variation on the theme of using the loop/recur construct (that I also used in the previous problems) with an additional parameter binding aka accumulator to keep track of the state—in this case the number of elements encountered so far.
Source 2 I'm not entirely sure if this was really my own idea or if I saw it or something similar somewhere—I should have made a note. This solution uses reduce, a standard higher-order function found in most functional languages. Clojure's implementation allows for a val argument that we use to accumulate the count by incrementing by one for each element in the collection passed as the third argument.
No comments:
Post a Comment