D'après le manuel
jq prend en charge le même ensemble de types de données que JSON : les nombres, les strings, les booléens, les tableaux, les objets (que l'on appelle en JSON des tables de hachage dont les clés sont uniquement des strings) et « null ».
Concentrons-nous sur les nombres.
Tous les nombres, qu'ils soient entiers ou non, sont des nombres à virgule flottante en double précision IEEE754. Cela nous limite à 53 bits de précision.
Les opérateurs habituels sont disponibles pour les nombres :
arithmétiques : +, -, *, /, %
comparaison : ==, !=, <, <=, >=, >
les fonctions mathématiques standard
Pour les fonctions à une seule entrée, on envoie la valeur dans la fonction à l'aide d'un pipe
$ jq -n '(1 | atan) * 4'
3.141592653589793
Pour les fonctions à deux entrées, la fonction ignore l'entrée et attend ces entrées sous forme de paramètres (rappel : les paramètres sont séparés par des points-virgules)
$ jq -n 'pow(2; 10)'
1024
Le point-virgule est le séparateur des arguments d'une fonction, et non la virgule.
jq
Pour résoudre cet exercice, tu auras besoin de connaître les expressions conditionnelles.
jq utilise une expression if-then-else pour les expressions conditionnelles.
En tant qu'expression, elle s'insère dans un pipeline.
La syntaxe est la suivante : if CONDITION then TRUE_EXPR else FALSE_EXPR end.
La clause else est facultative.
42 | if . < 33 then "small" else "larger" end
# => "larger"
On ajoute d'autres conditions avec elif
42 | if . < 33 then "small"
elif . < 67 then "medium"
else "large"
end
# => "medium"
Dans cet exercice, tu vas écrire du code pour analyser la production d'une chaîne de montage dans une usine de voitures.
La vitesse de la chaîne de montage peut aller de 0 (arrêt) à 10 (maximum).
À sa vitesse la plus lente (1), 221 voitures sont produites chaque heure.
La production augmente linéairement avec la vitesse.
Ainsi, avec une vitesse réglée sur 4, elle devrait produire 4 * 221 = 884 voitures par heure.
Cependant, des vitesses plus élevées augmentent la probabilité que des voitures défectueuses soient produites, et qu'il faille ensuite les écarter.
Le tableau suivant montre comment la vitesse influence le taux de réussite :
1 à 4 : 100 % de réussite.5 à 8 : 90 % de réussite.9 : 80 % de réussite.10 : 77 % de réussite.Tu as deux tâches.
Calcule le taux de production horaire de la chaîne de montage, en tenant compte de son taux de réussite.
Calcule combien de voitures terminées et fonctionnelles sont produites par minute.
Inscris-toi sur Exercism pour apprendre et maîtriser jq avec 12 concepts75 exercices, et un vrai mentorat humain, le tout gratuitement.