Skip to content

Instantly share code, notes, and snippets.

@lagenorhynque
Created June 18, 2018 05:01
Show Gist options
  • Select an option

  • Save lagenorhynque/d2266940bf66d87272c1b8918c55bb80 to your computer and use it in GitHub Desktop.

Select an option

Save lagenorhynque/d2266940bf66d87272c1b8918c55bb80 to your computer and use it in GitHub Desktop.
cljs.user=> (defn leibniz [n-terms]
#_=> (->> (iterate inc 1)
#_=> (filter odd?)
#_=> (map / (cycle [1 -1]))
#_=> (take n-terms)
#_=> (apply +)
#_=> (* 4.0)))
#'cljs.user/leibniz
cljs.user=> (time (leibniz 10000))
"Elapsed time: 51.138105 msecs"
3.1414926535900345
cljs.user=> (time (leibniz 100000))
"Elapsed time: 530.490666 msecs"
3.1415826535897198
cljs.user=> (time (leibniz 1000000))
"Elapsed time: 5867.103103 msecs"
3.1415916535897743
cljs.user=> (defn leibniz' [n-terms]
#_=> (->> (transduce
#_=> (take n-terms)
#_=> +
#_=> (->> (iterate #(+ % 2) 1)
#_=> (map / (cycle [1 -1]))))
#_=> (* 4.0)))
#'cljs.user/leibniz'
cljs.user=> (time (leibniz' 10000))
"Elapsed time: 46.125388 msecs"
3.1414926535900345
cljs.user=> (time (leibniz' 100000))
"Elapsed time: 357.253515 msecs"
3.1415826535897198
cljs.user=> (time (leibniz' 1000000))
"Elapsed time: 3433.809805 msecs"
3.1415916535897743
cljs.user=> (defn leibniz'' [n-terms]
#_=> (->> (iterate #(+ % 2) 1)
#_=> (map / (cycle [1 -1]))
#_=> (take n-terms)
#_=> (apply +)
#_=> (* 4.0)))
#'cljs.user/leibniz''
cljs.user=> (time (leibniz'' 10000))
"Elapsed time: 70.789558 msecs"
3.1414926535900345
cljs.user=> (time (leibniz'' 100000))
"Elapsed time: 456.015960 msecs"
3.1415826535897198
cljs.user=> (time (leibniz'' 1000000))
"Elapsed time: 4224.213782 msecs"
3.1415916535897743
@lagenorhynque

Copy link
Copy Markdown
Author

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