Sujet : Re: Reading a text file not line by line but at once (beginner)
De : Nobody447095 (at) *nospam* here-nor-there.org (B. Pym)
Groupes : comp.lang.lispDate : 15. Aug 2024, 00:46:26
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <v9jc40$kngb$1@dont-email.me>
References : 1
User-Agent : XanaNews/1.18.1.6
B. Pym wrote:
I have a file which consists of one word per line and I would like to
read it into a single list.
Searching the web[1] I found something which I adapted to my
needs. Basically the code works but it is terribly inefficient. This
is not the fault of the CL Cookbook. Probably I am using a hammer as a
screwdriver.
I'd be happy if you can give me some directions how I can tackle the
problem in a better way.
I like loop for this:
(with-open-file (s "foo.txt" :direction :input)
(loop for line = (read-line s nil)
while line
collect line))
Gauche Scheme
(use gauche.generator)
(with-input-from-file "temp.txt"
(cut generator->list read-line))
Paul Graham, May 2001:
A hacker's language is terse and hackable. Common Lisp is not.
The good news is, it's not Lisp that sucks, but Common Lisp.
newLISP
(let (h (open "output.dat" "read"))
(println (collect (read-line h)))
(close h))
("foo 0" "2 4 6" "8 9")