If the number of rows and columns in a matrix are equal, then we term the matrix as a *square matrix*. We can easily generate a simple square matrix of size by using the `repeat`

function to repeat a single element as follows:

(defn square-mat "Creates a square matrix of size n x n whose elements are all e" [n e] (let [repeater #(repeat n %)] (matrix (-> e repeater repeater))))

In the preceding example, we define a closure to repeat a value *n* times, which is shown as the `repeater`

. We then use the *thread* macro (`->`

) to pass the element `e`

through the closure twice, and finally apply the `matrix`

function to the result of the thread macro. ...

Start Free Trial

No credit card required