Lists can be specified using list comprehensions.

List comprehensions are constructed from for loops, if guards, and let declarations.
They can be combined in any order, on a single line or split across multiple lines.

file.cue
#n: [1, 2, 3, 4, 5, 6, 7, 8, 9]
#s: ["a", "b", "c"]

// Large square numbers.
a: [
	for x in #n
	let s = x * x
	if s > 50 {s},
]

// Squares of even numbers.
b: [for x in #n if rem(x, 2) == 0 {x * x}]

// The Cartesian product of two lists.
c: [
	for letter in #s
	for number in #n
	if number < 3 {
		"\(letter)-\(number)"
	},
]
TERMINAL
$ cue export file.cue --out cue
// Large square numbers.
a: [64, 81]

// Squares of even numbers.
b: [4, 16, 36, 64]

// The Cartesian product of two lists.
c: ["a-1", "a-2", "b-1", "b-2", "c-1", "c-2"]