September Morn Update
This commit is contained in:
parent
4e2d22a71d
commit
aac6731f2c
6856 changed files with 141342 additions and 21127 deletions
16
Task/Fibonacci-sequence/Clojure/fibonacci-sequence-10.clj
Normal file
16
Task/Fibonacci-sequence/Clojure/fibonacci-sequence-10.clj
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
(ns fib.core)
|
||||
(require '[clojure.core.async
|
||||
:refer [<! >! >!! <!! timeout chan alt! go]])
|
||||
|
||||
(defn fib [c]
|
||||
(loop [a 0 b 1]
|
||||
(>!! c a)
|
||||
(recur b (+ a b))))
|
||||
|
||||
|
||||
(defn -main []
|
||||
(let [c (chan)]
|
||||
(go (fib c))
|
||||
(dorun
|
||||
(for [i (range 10)]
|
||||
(println (<!! c))))))
|
||||
|
|
@ -1,6 +1,11 @@
|
|||
(defn fib [n]
|
||||
(case n
|
||||
0 0
|
||||
1 1
|
||||
(+ (fib (- n 1))
|
||||
(fib (- n 2)))))
|
||||
(letfn [(fib* [n]
|
||||
(if (zero? n)
|
||||
[0 1]
|
||||
(let [[a b] (fib* (quot n 2))
|
||||
c (*' a (-' (*' 2 b) a))
|
||||
d (+' (*' b b) (*' a a))]
|
||||
(if (even? n)
|
||||
[c d]
|
||||
[d (+' c d)]))))]
|
||||
(first (fib* n))))
|
||||
|
|
|
|||
|
|
@ -1,8 +1,6 @@
|
|||
(def fib
|
||||
(memoize
|
||||
(fn [n]
|
||||
(case n
|
||||
0 0
|
||||
1 1
|
||||
(+ (fib (- n 1))
|
||||
(fib (- n 2)))))))
|
||||
(defn fib [n]
|
||||
(case n
|
||||
0 0
|
||||
1 1
|
||||
(+ (fib (- n 1))
|
||||
(fib (- n 2)))))
|
||||
|
|
|
|||
|
|
@ -1,16 +1,8 @@
|
|||
(ns fib.core)
|
||||
(require '[clojure.core.async
|
||||
:refer [<! >! >!! <!! timeout chan alt! go]])
|
||||
|
||||
(defn fib [c]
|
||||
(loop [a 0 b 1]
|
||||
(>!! c a)
|
||||
(recur b (+ a b))))
|
||||
|
||||
|
||||
(defn -main []
|
||||
(let [c (chan)]
|
||||
(go (fib c))
|
||||
(dorun
|
||||
(for [i (range 10)]
|
||||
(println (<!! c))))))
|
||||
(def fib
|
||||
(memoize
|
||||
(fn [n]
|
||||
(case n
|
||||
0 0
|
||||
1 1
|
||||
(+ (fib (- n 1))
|
||||
(fib (- n 2)))))))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue