Hej! Jag lovade mot slutet av gu1 att ni skulle få lösningar på dom problem som jag lät er fundera på. Summering av kvadrater - Iterativ processlösning. ------------------------------------------------- ;En funktion som startar det hela: (defun sum-sq-iter (från till) (sum-sq-do från till 0)) ;En funktion som gör själva jobbet. ack är en "ackumulator", ;där resultatvärdet successivt byggs upp: (defun sum-sq-do (från till ack) (if (> från till) ack (sum-sq-do (+ från 1) till (+ ack (* från från))))) Listborttagningsfunktionerna ---------------------------- När jag försökte stoppa in alla (kanske ibland övertydligt) förklarande kommentarer blev funktionerna så väldigt kladdiga. Vill ni ha någon förklaring fråga mej på gu eller la istället. (defun tabort-första-kalle (lista) (cond ((endp lista) '()) ((eq (first lista) 'kalle) (rest lista)) (t (cons (first lista) (tabort-första-kalle (rest lista)))))) (defun tabort-alla-kalle (lista) (cond ((endp lista) '()) ((eq (first lista) 'kalle) (tabort-alla-kalle (rest lista))) (t (cons (first lista) (tabort-alla-kalle (rest lista)))))) (defun tabort-alla (lista element) (cond ((endp lista) '()) ((eq (first lista) element) (tabort-alla (rest lista) element)) (t (cons (first lista) (tabort-alla (rest lista) element))))) (defun tabort-djupt (lista element) (cond ((endp lista) '()) ((atom (first lista)) (if (eq (first lista) element) (tabort-djupt (rest lista) element) (cons (first lista) (tabort-djupt (rest lista) element)))) (t (cons (tabort-djupt (first lista) element) (tabort-djupt (rest lista) element)))))