I need some help cause I have no enough knowledge to complete my task. So what's the goal.
I need to define a a function which places a simbol * before every less-than-zero (-1..-5 etc.) element.
For ex. I've (setq a'(1 ,2 ,3 ,-1, -5 ,7 ,-8) a list. So then I should call a function forex MyFunc(x)
(Myfunc A) then I should get (1, 2, 3 ,*-1, *-5, 7 ,8) (i use commas here to separate elements of course no commas in the code).
I'm trying to write this function already 5 days but still can't .
Can someone help me?
So what I get
- Code: Select all
(defun myfunc (a x)
(cond ((null x) nil)
((< (car x) 0) (cons a (myfunc a (cdr x))))
(T (cons (car x) (myfunc a (cdr x))))))
But it just replaces every less-than-zero in a list X to A. But I need a function with just one parameter X-which represents a list.