From Newsgroup: comp.lang.lisp
Christopher Browne wrote:
(loop with array = #(1 4 9 16 "Foo" "Bar" 'frobozz |Bogomatic|)
for i across array
for j from 0 by 1
do
(format t "Element ~D is ~A~%" j i))
Element 0 is 1
Element 1 is 4
Element 2 is 9
Element 3 is 16
Element 4 is Foo
Element 5 is Bar
Element 6 is 'FROBOZZ
Element 7 is Bogomatic
We can make it shorter by using a Lispy language instead of CL.
Gauche Scheme
(use srfi-43) ;; vector-for-each
(vector-for-each
(cut print "Element " <> " is " <>)
#(1 4 9 16 "Foo" "Bar" 'frobozz |Bogomatic|))
Element 0 is 1
Element 1 is 4
Element 2 is 9
Element 3 is 16
Element 4 is Foo
Element 5 is Bar
Element 6 is 'frobozz
Element 7 is Bogomatic
Another vector library.
(use scheme.vector)
(vector-for-each-with-index
(cut print "Element " <> " is " <>)
#(1 4 9 16 "Foo" "Bar" 'frobozz |Bogomatic|))
--- Synchronet 3.21a-Linux NewsLink 1.2