(dotimes ...) in Clojure's template to parse data from multiple lines does not make sense

dotimes is used for side effects, it does not return a collection of the data being read in the standard input.

Each time, the user has to rewrite it as a for loop in order to collect all the data from multiple lines and do a calculation based on them all together.


We do not have clojure developers in our team, so we are aware that the code we generate may not be perfect. Another reason is that the intermediate language we use to describe how to read the input is imperative and it is sometimes difficult to generate a functional code from it.

Anyway, we would be happy to improve our code generator but, in order to help us, could you please provide concrete examples? Current code vs Suggestion. For different cases (constant and variable number of iterations for instance. With one or multiple things to read for each line, etc).


1 Like

Hi Maxime,

The examples you are asking for are all over the place, easy to find.

I decided to leave the codingame platform after reading that Clojure is likely to stay a “half-supported” language. I don’t see the point of putting my time on it if it leads nowhere. I even suggest that you remove the support for Clojure entirely as its poor support is actually undermining the adoption of the language by new comers, giving them a wrong impression of what it’s like to use it in a real world setup.

My decision is based on those 2 topics:

I hope the template would give something like:

(let [[n m] (->> (str/split (read-line) #" ") (map read-string))
li (repeatedly n read-line)]

;do something

because i need to repeatedly type “repeatedly” with the current template, hahaha