List
Background
Section titled “Background”Given a file named “pen.json” with:
{ "type": "library", "dependencies": {}}Create an empty list
Section titled “Create an empty list”Given a file named “Foo.pen” with:
f = \() [number] { [number]}When I run pen build
Then the exit status should be 0.
Create a list with an element
Section titled “Create a list with an element”Given a file named “Foo.pen” with:
f = \() [number] { [number 1]}When I run pen build
Then the exit status should be 0.
Create a list with two elements
Section titled “Create a list with two elements”Given a file named “Foo.pen” with:
f = \() [number] { [number 1, 2]}When I run pen build
Then the exit status should be 0.
Join lists
Section titled “Join lists”Given a file named “Foo.pen” with:
f = \(xs [number]) [number] { [number ...xs, ...xs]}When I run pen build
Then the exit status should be 0.
Create a list of a union type
Section titled “Create a list of a union type”Given a file named “Foo.pen” with:
f = \() [number | none] { [number | none 1, none]}When I run pen build
Then the exit status should be 0.
Coerce elements of a spread list
Section titled “Coerce elements of a spread list”Given a file named “Foo.pen” with:
f = \(xs [number]) [number | none] { [number | none ...xs]}When I run pen build
Then the exit status should be 0.
Use if-list expression
Section titled “Use if-list expression”Given a file named “Foo.pen” with:
f = \(xs [number]) [number] { if [y, ...ys] = xs { [number y(), ...ys] } else { [number] }}When I run pen build
Then the exit status should be 0.
Use list comprehension
Section titled “Use list comprehension”Given a file named “Foo.pen” with:
f = \(xs [number]) [number] { [number x() + 42 for x in xs]}When I run pen build
Then the exit status should be 0.
Permutate lists
Section titled “Permutate lists”Given a file named “Foo.pen” with:
f = \(xs [number], ys [number]) [number] { [number x() + y() for x in xs for y in ys]}When I run pen build
Then the exit status should be 0.
Flatten a list
Section titled “Flatten a list”Given a file named “Foo.pen” with:
f = \(xs [[number]]) [number] { [number y() for y in x() for x in xs]}When I run pen build
Then the exit status should be 0.
Filter a list
Section titled “Filter a list”Given a file named “Foo.pen” with:
f = \(xs [number]) [number] { [number x() for x in xs if x() < 42]}When I run pen build
Then the exit status should be 0.
Zip lists
Section titled “Zip lists”Given a file named “Foo.pen” with:
f = \(xs [number], ys [number]) [number] { [number x() + y() for x, y in xs, ys]}When I run pen build
Then the exit status should be 0.
Get a size of a list
Section titled “Get a size of a list”Given a file named “Foo.pen” with:
f = \(xs [none]) number { size(xs)}When I run pen build
Then the exit status should be 0.