---
name: "list"
section: "3tcl"
platform: "linux"
package: "tcl8.6-doc"
version: "8.6.16+dfsg-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/list/3tcl"
---

# list(3tcl)

Create a list

```

```

## NAME

list - Create a list

## SYNOPSIS

**list** ?*arg arg ...*?

```

```

## DESCRIPTION

This command returns a list comprised of all the *arg*s, or an empty string if no *arg*s are specified. Braces and backslashes get added as necessary, so that the **lindex** command may be used on the result to re-extract the original arguments, and also so that **eval** may be used to execute the resulting list, with *arg1* comprising the command's name and the other *arg*s comprising its arguments.  **List** produces slightly different results than **concat**:  **concat** removes one level of grouping before forming the list, while **list** works directly from the original arguments.

## EXAMPLE

The command

```
list a b "c d e  " "  f {g h}"
```

will return

```
a b {c d e  } {  f {g h}}
```

while **concat** with the same arguments will return

```
a b c d e f {g h}
```

## SEE ALSO

[lappend(3tcl)](/lappend/3tcl.md), [lindex(3tcl)](/lindex/3tcl.md), [linsert(3tcl)](/linsert/3tcl.md), [llength(3tcl)](/llength/3tcl.md), [lrange(3tcl)](/lrange/3tcl.md), [lrepeat(3tcl)](/lrepeat/3tcl.md), [lreplace(3tcl)](/lreplace/3tcl.md), [lsearch(3tcl)](/lsearch/3tcl.md), [lset(3tcl)](/lset/3tcl.md), [lsort(3tcl)](/lsort/3tcl.md)

## KEYWORDS

element, list, quoting
