Please note, this is a STATIC archive of website www.tutorialspoint.com from 11 May 2019, cach3.com does not collect or store any user information, there is no "phishing" involved.
Tutorialspoint

Execute LISP Online

;; 11) Escriba una función Filtra-vocales que reciba como argumento una lista (con elementos de
;; cualquier tipo y anidada a cualquier nivel de profundidad) y, como respuesta entregue una copia
;; de la lista argumento en la cual se han removido las letras vocales (tanto mayúsculas como
;; minúsculas).
;; Answer: A simbol is not a vowel
(defun vocal? (elem)
    (or (equal current #\a)
		 (equal current #\e)
		 (equal current #\i)
		 (equal current #\o)
		 (equal current #\u)
		 (equal current #\A)
		 (equal current #\E)
		 (equal current #\I)
		 (equal current #\O)
		 (equal current #\U)
		 (equal current "a")
		 (equal current "e")
		 (equal current "i")
		 (equal current "o")
		 (equal current "u")
		 (equal current "A")
		 (equal current "E")
		 (equal current "I")
		 (equal current "O")
		 (equal current "U")))

(defun vowelsFilter (list)
    (let ((current (first list))
         (left (rest list)))
        (cond ((null list) NIL)
            ((listp current) (append (flatten current) (flatten left)))
            ((not (vocal? current)) (append (list current) (flatten left))))))
;; Tests:
(print (vowelsFilter '(1 "a" c (a (#\a) #\c))))      ;; => (1 C A #\c)
(print (vowelsFilter '((4) (#\c) T ("b") (a (b) c))));; => (4 #\c T "b" A B C)
(print (vowelsFilter '(0 #\a (b) 1.2 (4 ("u") 3/2))));; => (0 B 1.2 4 3/2)
(print (vowelsFilter '(2 T "e" ((("o")) ("i") bc)))) ;; => (2 T BC)
(print "================================================")

Advertisements
Loading...

We use cookies to provide and improve our services. By using our site, you consent to our Cookies Policy.