tasks a-s
This commit is contained in:
parent
47bf37c096
commit
b83f433714
12433 changed files with 156208 additions and 123 deletions
12
Task/Pascals-triangle/Clojure/pascals-triangle-1.clj
Normal file
12
Task/Pascals-triangle/Clojure/pascals-triangle-1.clj
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
(defn pascal [n]
|
||||
(let [newrow (fn newrow [lst ret]
|
||||
(if lst
|
||||
(recur (rest lst)
|
||||
(conj ret (+ (first lst) (or (second lst) 0))))
|
||||
ret))
|
||||
genrow (fn genrow [n lst]
|
||||
(when (< 0 n)
|
||||
(do (println lst)
|
||||
(recur (dec n) (conj (newrow lst []) 1)))))]
|
||||
(genrow n [1])))
|
||||
(pascal 4)
|
||||
8
Task/Pascals-triangle/Clojure/pascals-triangle-2.clj
Normal file
8
Task/Pascals-triangle/Clojure/pascals-triangle-2.clj
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
(defn nextrow [row]
|
||||
(vec (concat [1] (map #(apply + %) (partition 2 1 row)) [1] )))
|
||||
|
||||
(defn pascal [n]
|
||||
(assert (and (integer? n) (pos? n)))
|
||||
(let [triangle (take n (iterate nextrow [1]))]
|
||||
(doseq [row triangle]
|
||||
(println row))))
|
||||
7
Task/Pascals-triangle/Clojure/pascals-triangle-3.clj
Normal file
7
Task/Pascals-triangle/Clojure/pascals-triangle-3.clj
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
(def pascal
|
||||
(iterate
|
||||
(fn [prev-row]
|
||||
(->>
|
||||
(concat [[(first prev-row)]] (partition 2 1 prev-row) [[(last prev-row)]])
|
||||
(map (partial apply +) ,,,)))
|
||||
[1]))
|
||||
Loading…
Add table
Add a link
Reference in a new issue