While investigating Protobuf I shot from the hip and wrote that: to model money, one should use BigDecimal.
That’s the conventional wisdom and it is correct - in a lot of cases.
It’s fine when you deal with one single currency and you are most of all concerned with the precision of financial calculations.
But what are some other options? let’s find out.
iterate function create a lazy, infinitive sequence based on function calls. The
iterate function takes a function and an initial value as arguments. The first element in the sequence is the initial value, next the function is invoked with the previous element as argument and this continues for each new element. Suppose we have a function
#(+ 2 %) that adds
2 to the input argument. Then if we use this function with
iterate and start with value
1 the first elements of the sequence will be
(+ 2 1),
(+ 2 3),
(+ 2 5). So first element is the initial value, next element is the invocation of the function with input argument
1. The result of this function is
3, which is then the input for the function to calculate the next element and so on.
In the following example code we use
iterate in different scenario’s:
Continue reading →
first function in Clojure returns the first item of a collection. The
next function returns a new sequence with all elements after the first element from a collection. Clojure adds some utility methods to combine
next with different combinations. We can use the function
ffirst which is will return the first element of the first element of a collection and the
nfirst function to get the next elements from the first element of a collection. We can use the function
fnext to get the first element of the next elements of a collection and the function
nnext to get the next elements of the next elements of a collection.
In the following example we use the
Continue reading →