Ho un esame venerdì su sta merda di linguaggio del cazzo e non lo so usare 
dato da input almeno un valore e in ordine di significato stampa il numero corrispondente (cioè se gli scrivo 3 2 1 mi riporta 123)
Code:
(defun p-d (x &rest l)
(cond ((null x) 0)
(T (+ (* (p-d (car l) (cdr l)) 10) x))
)
)
NON funziona perchè l benchè sia una lista (e ci possa fare car cdr ecc) la funziona p-d accetta come ingresso degli ATOMI e non delle liste, però &rest l è vista come lista ergo non so come cazzo fargli passare la chiamata ricorsiva. dovrei estrapolare dalla lista l e valori, cosa che nn si può fare (o se si può non so come) dove l è una lista variabile di valori. Da richiesta ci deve essere il &rest, se avessi messo input una stringa e buona notte sarebbe stato una cagata
-------------
accetta 3 input, x = numero, pos = numero list Lista, e sostituisce all'interno di LISTA nella posizione POS il numero X al valore precedente MA
- se la lista è nil in partenza allora crea una lista con unico valore x
- se il pos è maggiore della lunghezza della stringa allora rimpiazza con 0 le posizioni mancanti (es 1 5 '(1 2 3) verrà (1 2 3 0 5))
Code:
(defun porca-mad (x pos list)
(cond ((< pos 0) 'coglione)
((eql pos 1) (cons x (cdr list)))
((null list) (cons 0 (porca-mad x (- pos 1) (cdr list))))
(T (cons (car list) (porca-mad x (- pos 1) (cdr list))))
)
)
qua non riesco a soddisfare entrambe le condizioni di cui sopra, o una o l'altra, cioè la mia condizione limite per uscire dalla chiamata ricorsiva è che la stringa sia null, non riesco a separare il caso in cui sia null solo all'inizio e il caso in cui sia null perchè il pos è maggiore del length della stringa (ovviamente nn esiste in length della stringa in sto linguaggio
)
-------------
sarebbe una sommatoria fatta col metodo ACCUMULA, stesso problema del primo esercizio nn so come cristo chiamare la ricorsione
Code:
(defun sommatoria (x &rest lista)
(cond ;;((null lista) x)
((null x) 0)
(T (+ (sommatoria (car lista) (cdr lista)) x)))
)
se qualcuno ne capisce qualcosa ho un esame venerdì e nn riesco a cavarne un ragno dal buco