mirror of
https://github.com/nushell/nushell
synced 2024-12-27 13:33:16 +00:00
Add zip-into-record
to std iter (#9395)
# Description Adds a new iter feature `zip-into-record` (#9380) # User-Facing Changes User can use `[1 2] | iter zip-into-record [3 4]` to create a table `[[1 2]; [3 4]]` # Tests + Formatting I noticed trailing spaces in std library that may wish to be cleaned in the future. Co-authored-by: amtoine <stevan.antoine@gmail.com>
This commit is contained in:
parent
9fcc49e556
commit
a86f34d0ad
2 changed files with 37 additions and 0 deletions
|
@ -197,3 +197,26 @@ export def zip-with [ # -> list<any>
|
||||||
reduce {|it, acc| do $fn $acc $it }
|
reduce {|it, acc| do $fn $acc $it }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Zips two lists and returns a record with the first list as headers
|
||||||
|
#
|
||||||
|
# # Example
|
||||||
|
# ```nu
|
||||||
|
# use std ["assert equal" "iter iter zip-into-record"]
|
||||||
|
#
|
||||||
|
# let res = (
|
||||||
|
# [1 2 3] | iter zip-into-record [2 3 4]
|
||||||
|
# )
|
||||||
|
#
|
||||||
|
# assert equal $res [
|
||||||
|
# [1 2 3];
|
||||||
|
# [2 3 4]
|
||||||
|
# ]
|
||||||
|
# ```
|
||||||
|
export def zip-into-record [ # -> table<any>
|
||||||
|
other: list # the values to zip with
|
||||||
|
] {
|
||||||
|
into record
|
||||||
|
| append ($other | into record)
|
||||||
|
| headers
|
||||||
|
}
|
|
@ -110,3 +110,17 @@ export def test_iter_flat_map [] {
|
||||||
let res = ([1 2 3] | iter flat-map {|it| $it + ($it * 10)})
|
let res = ([1 2 3] | iter flat-map {|it| $it + ($it * 10)})
|
||||||
assert equal $res [11 22 33]
|
assert equal $res [11 22 33]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export def test_iter_zip_into_record [] {
|
||||||
|
let headers = [name repo position]
|
||||||
|
let values = [rust github 1]
|
||||||
|
|
||||||
|
let res = (
|
||||||
|
$headers | iter zip-into-record $values
|
||||||
|
)
|
||||||
|
|
||||||
|
assert equal $res [
|
||||||
|
[name repo position];
|
||||||
|
[rust github 1]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue