From 53dbd43f21b5baf917383c6373da80babbbdc0f8 Mon Sep 17 00:00:00 2001 From: dkf Date: Fri, 26 Nov 2004 10:02:16 +0000 Subject: Added simple foreach example. [FRQ 1073334] --- ChangeLog | 4 ++++ doc/foreach.n | 25 ++++++++++++++++++------- 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index 104a0ad..f5dd49b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2004-11-26 Donal K. Fellows + + * doc/foreach.n: Added simple example. [FRQ 1073334] + 2004-11-25 Donal K. Fellows * generic/tclProc.c (TclObjInterpProc): Make it so that only diff --git a/doc/foreach.n b/doc/foreach.n index 7054708..6c8d28e 100644 --- a/doc/foreach.n +++ b/doc/foreach.n @@ -5,7 +5,7 @@ '\" See the file "license.terms" for information on usage and redistribution '\" of this file, and for a DISCLAIMER OF ALL WARRANTIES. '\" -'\" RCS: @(#) $Id: foreach.n,v 1.4 2004/10/27 12:53:22 dkf Exp $ +'\" RCS: @(#) $Id: foreach.n,v 1.5 2004/11/26 10:02:23 dkf Exp $ '\" .so man.macros .TH foreach n "" Tcl "Tcl Built-In Commands" @@ -51,37 +51,48 @@ The \fBbreak\fR and \fBcontinue\fR statements may be invoked inside \fIbody\fR, with the same effect as in the \fBfor\fR command. \fBForeach\fR returns an empty string. .SH EXAMPLES +This loop prints every value in a list together with the square and +cube of the value: +.CS +'\" Maintainers: notice the tab hacking below! +.ta 32 +set values {1 3 5 7 2 4 6 8} ;# Odd numbers first, for fun! +puts "Value\\tSquare\\tCube" ;# Neat-looking header +\fBforeach\fR x $values { ;# Now loop and print... + puts " $x\\t [expr {$x**2}]\\t [expr {$x**3}]" +} +.CE .PP The following loop uses i and j as loop variables to iterate over pairs of elements of a single list. -.DS +.CS set x {} \fBforeach\fR {i j} {a b c d e f} { lappend x $j $i } # The value of x is "b a d c f e" # There are 3 iterations of the loop. -.DE +.CE .PP The next loop uses i and j to iterate over two lists in parallel. -.DS +.CS set x {} \fBforeach\fR i {a b c} j {d e f g} { lappend x $i $j } # The value of x is "a d b e c f {} g" # There are 4 iterations of the loop. -.DE +.CE .PP The two forms are combined in the following example. -.DS +.CS set x {} \fBforeach\fR i {a b c} {j k} {d e f g} { lappend x $i $j $k } # The value of x is "a d e b f g c {} {}" # There are 3 iterations of the loop. -.DE +.CE .SH "SEE ALSO" for(n), while(n), break(n), continue(n) -- cgit v0.12