---
page_title: values - Functions - Configuration Language
description: The values function returns a list of the element values in a given map.
---

# `values` Function

`values` takes a map and returns a list containing the values of the elements
in that map.

The values are returned in lexicographical order by their corresponding _keys_,
so the values will be returned in the same order as their keys would be
returned from [`keys`](/language/functions/keys).

## Examples

```
> values({a=3, c=2, d=1})
[
  3,
  2,
  1,
]
```

## Related Functions

* [`keys`](/language/functions/keys) returns a list of the _keys_ from a map.
