Conditional structures: Difference between revisions
jq
m (→{{header|Scala}}: Rm Scala imp category) |
(jq) |
||
Line 1,829:
<lang javascript>var num = window.obj ? obj.getNumber() : null;</lang>
=={{header|jq}}==
jq's main conditional construct is:<lang jq>if cond then f else g end</lang>where cond, f, and g, are filters, and where cond may evaluate to anything at all, it being understood that:
# all JSON values are truthy except for false and null;
# if cond evaluates to nothing (i.e., produces an empty stream), then the entire if-then-else-end expression also produces an empty stream.
For example:<lang jq>
if empty then 2 else 3 end # produces no value
if 1 then 2 else 3 end # produces 2
if [false, false] then 2 else 3 end # produces 2
if (true, true) then 2 else 3 end # produces a stream: 2, 2
</lang>Notice that if cond produces a nonempty stream, then the entire expression will typically do the same. Since f and g also can produce streams, this lends itself to interesting Cartesian-product possibilities.
Since jq's <tt>and</tt> and <tt>or</tt> are short-circuiting, they can also be used for branching.
=={{header|LabVIEW}}==
Line 1,837 ⟶ 1,851:
Select is similar to the Ternary operator in text-based languages.<br/>
[[File:LabVIEW_Select.png]]
=={{header|Lisaac}}==
{{works with|Lisaac|0.13.1}}
|