Implementeu una funcions solucions que ens doni totes les permutacions correctes de n parells de parèntesis tot seguint l’esquema backtracking descrit als apunts de l’assignatura.
Recordeu afegir al vostre codi solució el següent:
(defn bTck [succ obj] ;; ja coneixeu flip i foldr, les fem servir aquí (letfn [(bTck' [v] (cond (empty? v) [] (obj (peek v)) (conj (bTck' (pop v)) (peek v)) :else (let [x (peek v)] (recur (foldr (flip conj) (pop v) (succ x))))))] (fn [inicial] (bTck' [inicial]))))
Input
(solucions 3)
Output
(()()() ()(()) (())() (()()) ((())))