|
Tcl - append v lappend v concat
Should you use append, lappend or even concat to add to variable in Tcl?
append puts one string directly on the end of another, without adding any extra characters beyond those in the incoming variables.
lappend treats the target string as a list, and will usually add an extra space on the end of it prior to appending the new item so that the result is also a list with ONE new item added ... the added item being protected using additional characters such as { and } to turn it into a list element if necessary.
concat (and note the different syntax!) takes two LISTS and joins them together - it differs from lappend in that lappend takes the second element as a single item and not as a list. Concat is something that many occasional Tcl users seem to forget about ... and then waste time writing a loop of lappends!
Example - source code
set people "John Joan Jane"
set gatecrashers "Bill Ben Boris"
#
# append adds to string, lappend adds to list
puts $people
append people t
lappend people Julian
puts $people
#
# concat connects two lists, lappend adds one item to a list
set everyone [concat $people $gatecrashers]
puts $everyone
lappend people $gatecrashers
puts $people
In operation:
Dorothy:~/csr1 grahamellis$ tclsh alc
John Joan Jane
((append will add "t" to Jane, lappend adds new item Julian))
John Joan Janet Julian
((concat adds a whole new list))
John Joan Janet Julian Bill Ben Boris
((but lappend adds a single item to the list))
John Joan Janet Julian {Bill Ben Boris}
Dorothy:~/csr1 grahamellis$(written 2007-10-23 06:03:52)
Associated topics are indexed under T206 - Tcl/Tk - Lists
Some other Articles
Away or home - which do I prefer?Sorting in Tcl - lists and arraysTcl - global, upvar and uplevel.Square Bracket protection in TclTcl - append v lappend v concatTcl - using [] or {} for conditions in an if (and while)Dark DawnPictures FramedSomeone else's weddingPerl - progress bar, supressing ^C and coping with huge data flows
|
1891 posts, page by page
Link to page ... 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38 at 50 posts per page
This is a page archived from The Horse's Mouth at
http://www.wellho.net/horse/ -
the diary and writings of Graham Ellis.
Every attempt was made to provide current information at the time the
page was written, but things do move forward in our business - new software
releases, price changes, new techniques. Please check back via
our main site for current courses,
prices, versions, etc - any mention of a price in "The Horse's Mouth"
cannot be taken as an offer to supply at that price.
Link to Ezine home page (for reading).
Link to Blogging home page (to add comments).
|
|