Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Mar 28th, 2012  |  syntax: Clojure  |  size: 1.03 KB  |  hits: 40  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. ; Esta es la forma correcta, 4 líneas :O
  2. ; http://www.bestinclass.dk/index.clj/2009/10/python-vs-clojure-evolving.html
  3. (println (reduce +
  4.        (filter #(or (zero? (rem % 3))
  5.                     (zero? (rem % 5)))
  6.             (range 1000))))  
  7.  
  8. ; Este es el camino por el que iba xD
  9.  
  10. (defn pair-test [test-fn n1 n2]
  11.   (if (test-fn n1 n2) "pass" "fail"))
  12.  
  13. (defn is_divisible [a b]
  14.     (if (= 0 (rem a b)) true false))
  15.  
  16. (defn is_even [n]
  17.     (if (= 0 (rem n 2)) true false))
  18.  
  19. ; generar la lista de numeros del 1 al 1000
  20. ; filter de los que sean multiplos
  21. ; sumatoria total
  22.  
  23. (defn problem [n]
  24.     ;(let [numbers (range 1 n)]) ; esto nunca funcionó
  25.     (reduce + 0
  26.         ;(filter (#(if(= 0 (rem % 3)) true false)) (range n)))
  27.         (filter is_even (range n))))
  28.         ;(filter (#(if(= 0 (rem % 3)) true false)) (range n))))
  29.  
  30. (println (is_divisible 5 2))
  31. (println (is_even 6))
  32. (println (problem 10))
  33.  
  34. ;(println
  35.     ;((fn [x] (* x x)) 3)
  36.     ;(filter ((fn [x] (if (= 0 (rem x 2)) true false))) [1,2,3,4])
  37. ;)