Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: "B. Pym" Newsgroups: comp.lang.lisp Subject: Re: Why don't people like lisp? Date: Fri, 13 Sep 2024 01:34:06 -0000 (UTC) Organization: A noiseless patient Spider Lines: 31 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Injection-Date: Fri, 13 Sep 2024 03:34:06 +0200 (CEST) Injection-Info: dont-email.me; posting-host="088de5f0d7e4cb39f2d25d50d7c5c4ef"; logging-data="562276"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18dtovrQA3KTNkT9aSKYs02" User-Agent: XanaNews/1.18.1.6 Cancel-Lock: sha1:1A3DgXiYjoqQFuziLzdZfLh+Q4M= Bytes: 1597 Raffael Cavallaro wrote: > How about loop for greater clarity than either do or Python? > > (loop > for a = 1 then b > and b = 1 then (+ a b) > do (print a)) > > Which neatly demonstrates the power of macros as well. If there's a In CL (COBOL-Like), in order to print an endless sequence of fibonacci numbers, one has to use a macro whose source code is over 60 kilobytes in size. In Scheme, he can simply use recursion. (This is actually shorter than the "loop" version.) (let fib ((a 1) (b 1)) (print a) (fib b (+ a b))) Since CL (COBOL-Like) is not a Lispy language, it does not have much support for recursion. A "do" loop is shorter than the "loop" loop. (do ((a 1 b) (b 1 (+ a b))) (#f) (write (list a)))