Re: confused about lists and strings...

Liste des GroupesRevenir à cl tcl 
Sujet : Re: confused about lists and strings...
De : et99 (at) *nospam* rocketship1.me (et99)
Groupes : comp.lang.tcl
Date : 02. Jul 2025, 10:53:02
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <1042vhu$3eavg$1@dont-email.me>
References : 1 2 3
User-Agent : Mozilla Thunderbird
On 7/2/2025 2:34 AM, Mark Summerfield wrote:
On Wed, 2 Jul 2025 11:27:54 +0200, Harald Oehlmann wrote:
 
Am 02.07.2025 um 10:39 schrieb Mark Summerfield:
proc process1 args {
      set first [lindex $args 0]
      puts "first='$first' args='$args' list? [string is list -strict $args]"
      set rest [lrange $args 1 end]
      puts "rest='$rest' list? [string is list -strict $rest]"
}
>
The name "args" is special in TCL returning all remaining arguments as a
list.
>
As you call:
process1 $argv
>
The one argument is put in a list. The result is a matrix (list in list).
>
How to solve:
>
a) don't use "args":
>
proc process1 myargs {
        set first [lindex $myargs 0]
        puts "first='$first' args='$myargs' list? [string is list -strict
$myargs]"
        set rest [lrange $myargs 1 end]
        puts "rest='$rest' list? [string is list -strict $rest]"
}
>
b) use the delist operator:
>
process {*}$argv
>
Hope this helps,
Harald
 Thanks, I hadn't realised that using `args` would give me a list in a list.
I now just pass the list as-is (and called `rest` to avoid confusion!).
This used to confuse me totally. Now I understand (I think) that args and {*} are inverses of each other. If you can get your head around this, then you got it :)
% proc p args {puts [list {*}$args]} ;# so an inverse of an inverse is an identity
% p 1 2 3
1 2 3
% p {1 2 3}
{1 2 3}
% p {1 2 3} {4 5 6}
{1 2 3} {4 5 6}
% p {*}{1 2 3}
1 2 3

Date Sujet#  Auteur
2 Jul 25 * confused about lists and strings...8Mark Summerfield
2 Jul 25 `* Re: confused about lists and strings...7Harald Oehlmann
2 Jul 25  `* Re: confused about lists and strings...6Mark Summerfield
2 Jul 25   +* Re: confused about lists and strings...3et99
2 Jul 25   i`* Re: confused about lists and strings...2Rich
2 Jul 25   i `- Re: confused about lists and strings...1et99
2 Jul 25   +- Re: confused about lists and strings...1Rich
2 Jul 25   `- Re: confused about lists and strings...1Christian Gollwitzer

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal