Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
Exercicio1_Trabalho1_PLP
;gnu clisp 2.49.60 (defun flatten (Lista) (cond ((null Lista) (list nil)) ; se a lista for vazia retorna lista com nil ((atom Lista) (list Lista)) ; se a lista for um atom, retorna uma lista com o atom (t (loop for Var in Lista appending (flatten Var))))) ; senao, para cada elemento da lista, juntar o flatten(elemento) (defun number_of_times (Var Lista) (loop for element in Lista count (equal element Var))) (defun remove_elemento (Elemento Lista) (cond ((null Lista) nil) ((equal Elemento (car Lista)) (remove_elemento Elemento (cdr Lista))) (t (cons (car Lista) (remove_elemento Elemento (cdr Lista)))))) (defun conta_elementos (Lista) (cond ((null Lista) nil) (t (cons (list (car (flatten Lista)) (number_of_times (car (flatten Lista)) (flatten Lista))) (conta_elementos (remove_elemento (car (flatten Lista)) (flatten Lista))))))) (princ "vetor original: " ) (print '(a b c d (e f c (g)) h () a)) (terpri) (princ "vetor flatenned: ") (print (flatten '(a b c d (e f c (g)) h () a))) (terpri) (princ "vetor final: ") (print (conta_elementos '(a b c d (e (d) c (g (a))) h () a)))
run
|
edit
|
history
|
help
0
Duplicate list elements recursively
Q1True
HW5
Q1_A
media da lista
L1_soca
Lab4
ClasseLisp
lab1_var2
S17016281_ACTIVIDAD_14