Top Qs
Línea de tiempo
Chat
Contexto
Jq
lenguaje de programación De Wikipedia, la enciclopedia libre
Remove ads
jq es un lenguaje funcional de muy alto nivel con soporte para backtracking y gestión de flujos de datos JSON. Está relacionado con los lenguajes de programación Icon y Haskell.
Remove ads
Sintaxis
Resumir
Contexto
El lenguaje jq está basado en los conceptos de flujos, tuberías y filtros familiares a los del Shell de Unix. Los filtros se pueden construir a partir de expresiones de JSON utilizando una sintaxis similar a la de JSON y se conectan con el caràcter
"|
". El filtro identidad es ".
", y por ejemplo la expresión 1 | {"a": .}
producirá el valor de JSON : {"a": 1}
.
Este ejemplo muestra cómo definir un filtro con nombre para formatear un entero en cualquier base:
def tobase($b): def digit: "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"[.:.+1]; def div: (. / $b) | floor; def mod: . % $b; def r: if . < $b then digit else (div | r) + (mod | digit) end; # select(2 <= $b and $b <= 36) | r ;
El siguiente ejemplo presenta el uso de generadores:
def send_more_money: def choose(m;n;used): ([range(m;n+1)] - used)[]; label $pipe | 1 as $m | 0 as $o | choose(8;9;[]) as $s | choose(2;9;[$s]) as $e | choose(2;9;[$s,$e]) as $n | choose(2;9;[$s,$e,$n]) as $d | choose(2;9;[$s,$e,$n,$d]) as $r | choose(2;9;[$s,$e,$n,$d,$r]) as $y | select(num($s;$e;$n;$d) + num($m;$o;$r;$e) == num($m;$o;$n;$e;$y)) | [$s,$e,$n,$d,$m,$o,$r,$e,$m,$o,$n,$e,$y], break $pipe ;
Remove ads
Véase también
Referencias
El manual de jq y la wiki de jq son las principales referencias de jq.
Enlaces externos
- Página principal de jq
- wiki de jq
- Código fuente de jq
- Página del Lenguaje de Programación jq en la web Rosetta Code de tareas de programación comparadas
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads