I currently am having an issue where I have to read a text file from the command line containing at least one integer. I’m reading the file, doing a regular-expression match to ignore whitespace.
(re-seq #"[0-9]+" (slurp (first *command-line-args*)))
After this I have to write a whole function just to convert this sequence of strings into a sequence of integers. Apparently I cannot map Integer. to the sequence (unless I am using map incorrectly).
Is there some elegant way of handling this, something similar to map? Or do I have to go through recursively popping off first and casting it to Integer. to get this to work?
I am currently learning Clojure, and as I learn bits I am going back and doing little programmer quizzes I used to pick up other languages.
You’re looking for
Integer/parseInt.You have to wrap
Integer/parseIntin an anonymous function because Java methods aren’t functions.read-stringwould also work in this case:read-stringreads any object from a string, not just integers. So, if you did(read-string "1.0")you’d get back a double. When reading from outside sources, it’s usually better to limit what can be read to precisely what you need, which is an integer in this case. Therefore, I recommend using my first example.