Anonymous user
Loops/Nested: Difference between revisions
Added Clojure.
(→{{header|Oz}}: improve documentation) |
(Added Clojure.) |
||
Line 126:
}
}</lang>
=={{header|Clojure}}==
We explicitly returns a status flag from the inner loop:
<lang clojure>(ns nested
(:import (java.util Random)))
(let [generator (Random.)]
(defn random-int [max]
"Random integer in [1, max]."
(inc (.nextInt generator max))))
(defn make-vec [n f]
"Calls f n times and returns the result as a vector."
(into [] (map (fn [_] (f)) (range 0 n))))
(defn create-matrix [width height]
(letfn [(create-row [] (make-vec width #(random-int 20)))]
(make-vec height create-row)))
(defn print-matrix [matrix]
(loop [[row & rs] matrix]
(condp = (loop [[x & xs] row]
(println x)
(if (= x 20)
:stop
(if xs
(recur xs)
:continue)))
:continue (when rs (recur rs))
:stop nil)))
(print-matrix (create-matrix 10 10))</lang>
=={{header|Common Lisp}}==
|