```Subject: Re: [LISP Beginner] Recursion Problem
From: Erik Naggum <erik@naggum.net>
Date: Sun, 11 Nov 2001 19:44:00 GMT
Newsgroups: comp.lang.lisp
Message-ID: <3214496638428058@naggum.net>

* Ingo Rohlfs <irohlfs@irohlfs.de>
| What I'm doing wrong?

Basically, using recursion for this problem, which is only confusing
yourself and wasting a lot of space.  This is a shot with a _much_ more
powerful technique, iteration, using loop, which is very good for this
kind of problem.  (Some would tell you that since it is possible to get
lost in loop, you should not even try it.  Ignore them and trust your own
ability to recognize when you are about to get lost.  The same is true of
recursion, when you get lost in it, it is unsuited for the task.  Some
people, especially those overexposed to Scheme, never seem to grasp this.)

(defun get-elements (sequence)
(loop
for start = 0 then (1+ end)
for end = (position #\Space sequence :start start)
collect (subseq sequence start end)
until (not end)))

///
--
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.

```