Subject: Re: Unable to read a list with 'with-open-file' From: Erik Naggum <erik@naggum.net> Date: Thu, 22 Nov 2001 17:45:32 GMT Newsgroups: comp.lang.lisp Message-ID: <3215439930132888@naggum.net> * Cad Bilbao | (setf myList '()) | (with-open-file (f "c:/input.txt" :direction :input) | (loop for line = (read-line f nil nil) | while line | do ( | (setf myList(append myList line) | );end-do | );end-while | );end-loop | );end-with Well, get rid of the terribly confusing ;end-crap first (the comments do not even match what they say they match), and try to see how other people write their Common Lisp code. If you do things differently from more experienced people, you do _not_ know better because you are new at this. That attitude may be at the core of your problem, actually, since you have not paid attention to how parentheses "work" in Common Lisp. From your indentation style alone, it appears that you think they have a very different function than what they actually have. When you have figured out the invalid function error, retrace your steps and figure out where you got the terrible idea to use append, then do the same for that global variable. Otherwise, you have it mostly right. | But I get this error: | | ------------------//--------------- | LISP error: | (SETF TEST::MYLIST (APPEND TEST::MYLIST LINE)) is invalid as a | function | -----------------//--------------- | | Any suggestion? Than you very much The error message is actually very precise. Try to evaluate ((+ 1 1)) and see what it says. Compare with (+ 1 1). Also count the number of parentheses you use in your code carefully. Get an editor that helps you keep track of them and takes care of that indentention stuff for you, too. /// -- Norway is now run by a priest from the fundamentalist Christian People's Party, the fifth largest party representing one eighth of the electorate. -- Carrying a Swiss Army pocket knife in Oslo, Norway, is a criminal offense.