diff options
author | Santiago Lapresta <santiago@typeform.com> | 2015-06-04 18:30:38 +0200 |
---|---|---|
committer | Nicolas Williams <nico@cryptonector.com> | 2015-06-23 10:59:58 -0500 |
commit | ec7647c4ab1c50d7f45c8ff9fd73917af867e0be (patch) | |
tree | 6ea8e6b55a9e99bdc3cde57881300945d9ca84d5 /builtin.c | |
parent | 8aecf82bfef6647315eb96e69eac3f65ce38ee70 (diff) |
Add combinations/0 and combinations/1
Diffstat (limited to 'builtin.c')
-rw-r--r-- | builtin.c | 12 |
1 files changed, 11 insertions, 1 deletions
@@ -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 []" |