Top Qs
Línea de tiempo
Chat
Contexto

Jq

lenguaje de programación De Wikipedia, la enciclopedia libre

Jq
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.

Datos rápidos Desarrollador(es), Información general ...
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

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads