Voldríem fer una funció (creixent s) que, donada una seqüència
numèrica s, retorni true si la seqüència s
és estrictament creixent, i false altrament.
a/ Completa aquesta funció per a que sigui correcte, segons el que es demana a l’enunciat:
(defn creixent [s]
(letfn [(auxiliar [sp]
(if (empty? sp)
true
(and (< (first (first sp)) (second (first sp)))
(auxiliar (rest sp)))))]
(let [ss ________ ]
(auxiliar ss))))
b/ Substitueix la funció local auxiliar per un fold,
fent servir la propietat universal del fold
Ara, un cop has fet el que se’t demana als apartats anteriors, envia el resultat al Jutge (però fes cas del que se’t diu a les Observacions)
(defn creixent [s]
(let [ss ________ ]
(fold ____ ____ ss)))
Observacions
foldr i
la definició de foldInput
(creixent '()) (creixent '(56)) (creixent '(5 6)) (creixent '(6 6)) (creixent '(6 5)) (creixent (range 1000)) (creixent '(101 104 156 188 178 190)) (creixent '(101 104 156 156 178 190)) (creixent '(101 104 156 156.5 178 190))
Output
true true true false false true false false true