Subject: Re: help me with this function From: Erik Naggum <erik@naggum.no> Date: 1996/03/24 Newsgroups: comp.lang.lisp Message-ID: <3036617570947380@arcana.naggum.no> [Kevin P Chugh] | i'm trying to write a function that takes two arguments - one is an | atom the other is a list of lists - for each list within the list, if | the atom matches its first memeber, i want it's second member to be | added to a master list and finally returned- for example: | | (setq mylist '((a b)(a c)(a d))) | (myfunc 'a lst) | | and myfunc would return | | (b c d) | | i've tried using with-collection and collect but i can't get them to work | properly- anyone have any ideas? the body of a function with args car and list could be quite simple: (mapcan (lambda (cons) (if (eq (car cons) car) (cdr cons))) list) it is more instructive for you to write a recursive function. you may note that (myfunc car list) is identical to (myfunc car (cdr list)) if (car list) does not match car. you get the idea. #<Erik> -- in my next life, I want to be my cat