Solved- append a new atom upon finding specific atom
Posted: Sat Jan 06, 2018 11:47 pm
I've recently started working on LISP as part of my course.
I am trying to add a new atom after every search atom in the list, my code is as below -
This is working fine, but only adding the required atom in first occurrence. Please check example below -
Input: (appendConst 'a 'd '(a c e a m k))
Ouput: (A D C E A M K)
Required Output: (A D C E A D M K)
I tried calling the function recursively, but I can see that it doesn't work, as the no. of arguments are not properly being passed.
Thanks.
I am trying to add a new atom after every search atom in the list, my code is as below -
Code: Select all
(defun appendConst (OLD NEW L)
(cond
((null L) ())
((EQ (car L) OLD) (cons OLD (cons NEW (cdr L))))
(T (cons (car L) (appendConst OLD NEW (cdr L))))
))
Input: (appendConst 'a 'd '(a c e a m k))
Ouput: (A D C E A M K)
Required Output: (A D C E A D M K)
I tried calling the function recursively, but I can see that it doesn't work, as the no. of arguments are not properly being passed.
Code: Select all
(defun appendConst (OLD NEW L)
(cond
((null L) ())
((EQ (car L) OLD) (appendConst (cons OLD (cons NEW (cdr L)))) )
(T (cons (car L) (appendConst OLD NEW (cdr L))))
))