Re: MAP (and variants) vs LOOP - Popular opinion observation?

Liste des GroupesRevenir à cl scheme 
Sujet : Re: MAP (and variants) vs LOOP - Popular opinion observation?
De : Nobody447095 (at) *nospam* here-nor-there.org (B. Pym)
Groupes : comp.lang.lisp comp.lang.scheme
Date : 08. Sep 2024, 14:44:44
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <vbk67q$1u3dp$1@dont-email.me>
References : 1
User-Agent : XanaNews/1.18.1.6
B. Pym wrote:

Then suppose you later need the loop/map to collect some of the values
under certain conditions. You might have
 
   (loop for x in (get-list)
         for i from 0
         do (format t "~A - ~A~%" i x)
         if (test x)
         collect (foo x))
 
Gauche Scheme
 
(use srfi-13)  ;; string-upcase
 
(filter-map
  (lambda (x i)  (print i " - " x)
    (and (string? x) (string-upcase x)))
  '(foo "an" 8 "why")
  (lrange 0))
 
0 - foo
1 - an
2 - 8
3 - why
("AN" "WHY")

Suppose you have
 
   (loop for x in (get-list)
         do (format t "~A~%" x))
 
and then it turns out you need to print a numeric index. You can do
 
   (loop for x in (get-list)
         for i from 0
         do (format t "~A - ~A~%" i x))
 
If you start with
 
   (mapc (lambda (x) (format t "~A~%" x)) (get-list))
 
it seems (to me) that it'd be harder to modify it as needed,
 
   (let ((list (get-list)))
     (mapc (lambda (i x) (format t "~A - ~A" i x))
           (range 0 (length list))
           list))
 
(I'm assuming the toolkit includes a RANGE utility, or something similar.)

Gauche Scheme

Shorter than the loop:

(for-each
  (pa$  format #t "~a - ~a\n")
  (lrange 0)
  '(a b c))

0 - a
1 - b
2 - c

Date Sujet#  Auteur
8 Sep 24 * Re: MAP (and variants) vs LOOP - Popular opinion observation?2B. Pym
8 Sep 24 `- Re: MAP (and variants) vs LOOP - Popular opinion observation?1B. Pym

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal