summaryrefslogtreecommitdiffstats
path: root/builtin.c
diff options
context:
space:
mode:
Diffstat (limited to 'builtin.c')
-rw-r--r--builtin.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/builtin.c b/builtin.c
index 7cc2b958..7cb402a0 100644
--- a/builtin.c
+++ b/builtin.c
@@ -1486,7 +1486,17 @@ static const char* const jq_builtins[] = {
"def first: .[0];",
"def last: .[-1];",
"def nth($n): .[$n];",
- // # transpose a possibly jagged matrix, quickly;
+ "def combinations:"
+ " if length == 0 then [] else"
+ " .[0][] as $x"
+ " | (.[1:] | combinations) as $y"
+ " | [$x] + $y"
+ " end;",
+ "def combinations(n):"
+ " . as $dot"
+ " | [range(n) | $dot]"
+ " | combinations;",
+ // # transpose a possibly jagged matrix, quickly;
// # rows are padded with nulls so the result is always rectangular.
"def transpose:"
" if . == [] then []"