Project Euler #20 solution in Clojure Problem:


  \$n!\$ means \$n × (n − 1) × ... × 3 × 2 × 1\$
  
  For example, \$10! = 10 × 9 × ... × 3 × 2 × 1 = 3628800\$, and the sum of the digits in the number \$10!\$ is \$3 + 6 + 2 + 8 + 8 + 0 + 0 = 27\$.
  
  Find the sum of the digits in the number \$100!\$.


My solution in Clojure:

(reduce + (map (fn[x](Integer. (str x))) (seq (str (apply *' (range 1 101))))))


Questions:


Is there a way to avoid the *' in the factorial bit? (apply *' (range 1 101))
I converted the result of the factorial to a string, then to a sequence, and then mapped an Integer cast to a string cast.  Surely there must be a way to simplify this?
Your first question: you could make range return a list of bigints, and reduce over it

(reduce * (range (bigint 1) 101))


your second question: :


you dont have to explicitly use seq, clojure will automatically treat your string as a seq
you dont have to use the full-blown string to number converter, you could for example use int to get the char code: 

(map #(- (int %) (int \0)) "1234")`

for other ways of getting digits of a number, check out this thread