You have not picked up the Lisp parenthesizing style yet. Do so. It helps. (You let the parens pile up and let your editor pair them for you.)

Your logic is nesting waaay too deep. Lisp, even more than Perl, is lots of little functions that call each other.

To help the structuring of your program, think of your entire program as being the building of a model in which your problem is easily solved. And of course when you build the model you approach it the same way.

Remember, most of Lisp is written in Lisp, and in any significant piece of Lisp code you expect to add customizations to the language for your needs. This again affects how much you need to nest it.

I basically agree with Tilly. Almost always parentheses
should not appear on a line by themselves (don't line them
up like you would line up {} in Perl, etc.). You just pile
them up at the end of a line until you've closed off the
expression that you're finishing (a decent editor will
highlight the starting parens so that you know when you're done).
Then just let the editor
do the indenting and you should have reasonably well formatted
code. You probably do need to break things down more - I don't
think I have anything with more than about 7 or 8 closing parens
in my Lisp code, and even that is pretty rare. (Disclaimer:
I don't necessarily want to present my Lisp code as being
particularly good. It does its job, though. :-)

For a book with lots of
good example (Common) Lisp code, see Paradigms of Artificial
Intelligence Programming by Norvig (which is of interest to
anyone programming in Common Lisp, even those with no interest
in AI). Paul Graham's books are pretty good too, but some of
the code is considerably more abstruse.

I have no idea what the actual application is, what it does or the situation in hand... :o)

with that disclaimer in mind, perhaps you should review your indentation and coding model :o)
I've found several examples of lisp code on the Net (sadly, I am more familiar with Prolog than Lisp) which look pretty normal.. I know I'd be a bit taken aback if I saw a pageful of parantheses :o) (yes, yes, I know.. get an editor that can match parentheses)

It's kind of funny that you post this now I am taking comparitive programming languages right now and we are covering lispyou have piqued my curiosity now i would like to see the program now here is the very fisrt lisp program i have written actually it is not even that just a little function

Just some (hopefully) constructive criticism. If I understand correctly, this is supposed to take a list of numbers and multiply only the negative ones together (or return 1 if there are none)? (Which to be fair, it does.) The intent is a little obscured - the second clause in the cond could be more clearly written - as is, you have the result you want as the third condition of the "and" rather than the result that is returned when the "and" clause tests to true - since "and" returns the value of the last argument if all of them are true, and since a cond clause returns the value of the test if it is true but no result clause is specified, this works, but is unclear. Also, the first comment is misleading. You might want to avoid using the name "alist" here - an alist is a specific type of data structure that Lisp programmers will probably expect to see here if you use that name (that threw me off a little at first!). You can just say "list". Finally, Lisp style generally tells us to avoid having parentheses alone on lines. A cleaned up version might be (oh, I slipped minusp in there too :-):