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. ...