Skip to content

Instantly share code, notes, and snippets.

@jirkapenzes
Last active August 29, 2015 14:08
Show Gist options
  • Save jirkapenzes/c026baaa0d9c807462ef to your computer and use it in GitHub Desktop.
Save jirkapenzes/c026baaa0d9c807462ef to your computer and use it in GitHub Desktop.
Project Euler problem 01 - Java vs Clojure (https://projecteuler.net/problem=1)
(defn mod35 [number]
(or
(zero? (mod number 3))
(zero? (mod number 5))))
(reduce + (filter mod35 (range 1 1000)))
(reduce + (
for [number (range 1 1000)
:when (or
(zero? (mod number 3))
(zero? (mod number 5)))
] number))
import java.util.*;
class ProjectEuler_01
{
public static void main (String[] args) throws java.lang.Exception
{
int sum = 0;
for (int number = 0; number < 1000; number++) {
if (number % 3 == 0 || number % 5 == 0) {
sum += number;
}
}
System.out.println(sum);
}
}
@rarous
Copy link

rarous commented Oct 25, 2014

Transduce ;)

(def xf (filter #(or (zero? (mod % 3))
                     (zero? (mod % 5)))))
(transduce xf + (range 1000))

@kolman
Copy link

kolman commented Oct 25, 2014

for je hrozně neidiomatický. Použij filter nebo map:

(defn mod-3-and-5 [x]
   (or
    (zero? (mod x 3))
    (zero? (mod x 5))))
(reduce + (filter mod-3-and-5 (range 1 1000)))

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment