summaryrefslogtreecommitdiffstats
path: root/builtin.c
diff options
context:
space:
mode:
authorNicolas Williams <nico@cryptonector.com>2014-07-06 20:08:06 -0500
committerNicolas Williams <nico@cryptonector.com>2014-07-06 20:08:06 -0500
commit821cd31e67444d60656baf463e4603899697b045 (patch)
tree9cb4f6420810c46f8d9e318b77ddc854d60f526a /builtin.c
parent5a863bf0103ccd82edf32cfe4c37ed92783a224d (diff)
Add `any/N` and `all/N` x N in (1, 2) (fix #455)
Contributed by @pkoppstein.
Diffstat (limited to 'builtin.c')
-rw-r--r--builtin.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/builtin.c b/builtin.c
index bda2c9ea..e742c0e2 100644
--- a/builtin.c
+++ b/builtin.c
@@ -934,6 +934,10 @@ static const char* const jq_builtins[] = {
"def paths(node_filter): . as $dot|paths|select(. as $p|$dot|getpath($p)|node_filter);",
"def any: reduce .[] as $i (false; . or $i);",
"def all: reduce .[] as $i (true; . and $i);",
+ "def any(condition): reduce .[] as $i (false; . or ($i|condition));",
+ "def all(condition): reduce .[] as $i (true; . and ($i|condition));",
+ "def any(generator; condition): reduce generator as $i (false; . or ($i|condition));",
+ "def all(generator; condition): reduce generator as $i (true; . and ($i|condition));",
"def arrays: select(type == \"array\");",
"def objects: select(type == \"object\");",
"def iterables: arrays, objects;",