Label (computer science)
- 9 min read
- 3 chapters
- 1 lab on Lably
Learn it on Lably
C
In C a label identifies a statement in the code. A single statement can have multiple labels. Labels just indicate locations in the code and reaching a label has no effect on the actual execution.
Function labels
Function labels consist of an identifier, followed by a colon. Each such label points to a statement in a function and its identifier must be unique within that function. Other functions may use the same name for a label. Label identifiers occupy their own namespace – one can have variables and functions with the same name as a label.
<span id="mwLQ"></span><span class="kt" id="mwLg">void</span><span class="w" id="mwLw"> </span><span class="nf" id="mwMA">foo</span><span class="p" id="mwMQ">(</span><span class="kt" id="mwMg">int</span><span class="w" id="mwMw"> </span><span class="n" id="mwNA">number</span><span class="p" id="mwNQ">)</span> <span class="p" id="mwNg">{</span> <span class="w" id="mwNw"> </span><span class="k" id="mwOA">if</span><span class="w" id="mwOQ"> </span><span class="p" id="mwOg">(</span><span class="n" id="mwOw">number</span><span class="w" id="mwPA"> </span><span class="o" id="mwPQ"><</span><span class="w" id="mwPg"> </span><span class="mi" id="mwPw">0</span><span class="p" id="mwQA">)</span> <span class="w" id="mwQQ"> </span><span class="k" id="mwQg">goto</span><span class="w" id="mwQw"> </span><span class="n" id="mwRA">error</span><span class="p" id="mwRQ">;</span> <span class="w" id="mwRg"> </span><span class="n" id="mwRw">bar</span><span class="p" id="mwSA">(</span><span class="n" id="mwSQ">number</span><span class="p" id="mwSg">);</span> <span class="w" id="mwSw"> </span><span class="k" id="mwTA">return</span><span class="p" id="mwTQ">;</span> <span class="nl" id="mwTg">error</span><span class="p" id="mwTw">:</span> <span class="w" id="mwUA"> </span><span class="n" id="mwUQ">fprintf</span><span class="p" id="mwUg">(</span><span class="n" id="mwUw">stderr</span><span class="p" id="mwVA">,</span><span class="w" id="mwVQ"> </span><span class="s" id="mwVg">"Invalid number!</span><span class="se" id="mwVw">\n</span><span class="s" id="mwWA">"</span><span class="p" id="mwWQ">);</span> <span class="p" id="mwWg">}</span>Here error is the label. The statement goto can be used to jump to a labeled statement in the code. After a goto, program execution continues with the statement after the label.
Switch labels
Two types of labels can be put in a switch statement. A case label consists of the keyword case, followed by an expression that evaluates to integer constant. A default label consists of the keyword default. Case labels are used to associate an integer value with a statement in the code. When a switch statement is reached, program execution continues with the statement after the case label with value that matches the value in the parentheses of the switch. If there is no such case label, but there is a default label, program execution continues with the statement after the default label. If there is no default label, program execution continues after the switch.
<span id="mwZw"></span><span class="k" id="mwaA">switch</span><span class="w" id="mwaQ"> </span><span class="p" id="mwag">(</span><span class="n" id="mwaw">die</span><span class="p" id="mwbA">)</span> <span class="p" id="mwbQ">{</span> <span class="k" id="mwbg">default</span><span class="o" id="mwbw">:</span> <span class="w" id="mwcA"> </span><span class="n" id="mwcQ">printf</span><span class="p" id="mwcg">(</span><span class="s" id="mwcw">"invalid</span><span class="se" id="mwdA">\n</span><span class="s" id="mwdQ">"</span><span class="p" id="mwdg">);</span> <span class="w" id="mwdw"> </span><span class="k" id="mweA">break</span><span class="p" id="mweQ">;</span> <span class="k" id="mweg">case</span><span class="w" id="mwew"> </span><span class="mi" id="mwfA">1</span><span class="p" id="mwfQ">:</span> <span class="k" id="mwfg">case</span><span class="w" id="mwfw"> </span><span class="mi" id="mwgA">3</span><span class="p" id="mwgQ">:</span> <span class="k" id="mwgg">case</span><span class="w" id="mwgw"> </span><span class="mi" id="mwhA">5</span><span class="p" id="mwhQ">:</span> <span class="w" id="mwhg"> </span><span class="n" id="mwhw">printf</span><span class="p" id="mwiA">(</span><span class="s" id="mwiQ">"odd</span><span class="se" id="mwig">\n</span><span class="s" id="mwiw">"</span><span class="p" id="mwjA">);</span> <span class="w" id="mwjQ"> </span><span class="k" id="mwjg">break</span><span class="p" id="mwjw">;</span> <span class="k" id="mwkA">case</span><span class="w" id="mwkQ"> </span><span class="mi" id="mwkg">2</span><span class="p" id="mwkw">:</span> <span class="k" id="mwlA">case</span><span class="w" id="mwlQ"> </span><span class="mi" id="mwlg">4</span><span class="p" id="mwlw">:</span> <span class="k" id="mwmA">case</span><span class="w" id="mwmQ"> </span><span class="mi" id="mwmg">6</span><span class="p" id="mwmw">:</span> <span class="w" id="mwnA"> </span><span class="n" id="mwnQ">printf</span><span class="p" id="mwng">(</span><span class="s" id="mwnw">"even</span><span class="se" id="mwoA">\n</span><span class="s" id="mwoQ">"</span><span class="p" id="mwog">);</span> <span class="w" id="mwow"> </span><span class="k" id="mwpA">break</span><span class="p" id="mwpQ">;</span> <span class="p" id="mwpg">}</span>Within a single switch statement, the integer constant associated with each case label must be unique. There may or may not be a default statement. There is no restriction on the order of the labels within a switch. The requirement that case labels values evaluate to integer constants gives the compiler more room for optimizations.
Sign in to keep reading
2 more chapters are free with a Lably account.
Examples
Javascript
In JavaScript language syntax statements may be preceded by the label:
<span id="mwrw"></span><span class="nx" id="mwsA">top</span><span class="o" id="mwsQ">:</span><span class="w" id="mwsg"> </span><span class="c1" id="mwsw">//Label the outermost for-loop.</span> <span class="k" id="mwtA">for</span><span class="w" id="mwtQ"> </span><span class="p" id="mwtg">(</span><span class="kd" id="mwtw">var</span><span class="w" id="mwuA"> </span><span class="nx" id="mwuQ">i</span><span class="w" id="mwug"> </span><span class="o" id="mwuw">=</span><span class="w" id="mwvA"> </span><span class="mf" id="mwvQ">0</span><span class="p" id="mwvg">;</span><span class="w" id="mwvw"> </span><span class="nx" id="mwwA">i</span><span class="w" id="mwwQ"> </span><span class="o" id="mwwg"><</span><span class="w" id="mwww"> </span><span class="mf" id="mwxA">4</span><span class="p" id="mwxQ">;</span><span class="w" id="mwxg"> </span><span class="nx" id="mwxw">i</span><span class="o" id="mwyA">++</span><span class="p" id="mwyQ">)</span><span class="w" id="mwyg"> </span><span class="p" id="mwyw">{</span> <span class="w" id="mwzA"> </span><span class="k" id="mwzQ">for</span><span class="w" id="mwzg"> </span><span class="p" id="mwzw">(</span><span class="kd" id="mw0A">var</span><span class="w" id="mw0Q"> </span><span class="nx" id="mw0g">j</span><span class="w" id="mw0w"> </span><span class="o" id="mw1A">=</span><span class="w" id="mw1Q"> </span><span class="mf" id="mw1g">0</span><span class="p" id="mw1w">;</span><span class="w" id="mw2A"> </span><span class="nx" id="mw2Q">j</span><span class="w" id="mw2g"> </span><span class="o" id="mw2w"><</span><span class="w" id="mw3A"> </span><span class="mf" id="mw3Q">4</span><span class="p" id="mw3g">;</span><span class="w" id="mw3w"> </span><span class="nx" id="mw4A">j</span><span class="o" id="mw4Q">++</span><span class="p" id="mw4g">)</span><span class="w" id="mw4w"> </span><span class="p" id="mw5A">{</span> <span class="w" id="mw5Q"> </span><span class="k" id="mw5g">if</span><span class="w" id="mw5w"> </span><span class="p" id="mw6A">(</span><span class="nx" id="mw6Q">j</span><span class="w" id="mw6g"> </span><span class="o" id="mw6w">===</span><span class="w" id="mw7A"> </span><span class="mf" id="mw7Q">3</span><span class="w" id="mw7g"> </span><span class="o" id="mw7w">&&</span><span class="w" id="mw8A"> </span><span class="nx" id="mw8Q">i</span><span class="w" id="mw8g"> </span><span class="o" id="mw8w">===</span><span class="w" id="mw9A"> </span><span class="mf" id="mw9Q">2</span><span class="p" id="mw9g">)</span><span class="w" id="mw9w"> </span><span class="p" id="mw-A">{</span> <span class="w" id="mw-Q"> </span><span class="nx" id="mw-g">alert</span><span class="p" id="mw-w">(</span><span class="s2" id="mw_A">"i="</span><span class="w" id="mw_Q"> </span><span class="o" id="mw_g">+</span><span class="w" id="mw_w"> </span><span class="nx" id="mwAQA">i</span><span class="w" id="mwAQE"> </span><span class="o" id="mwAQI">+</span><span class="w" id="mwAQM"> </span><span class="s2" id="mwAQQ">", j="</span><span class="w" id="mwAQU"> </span><span class="o" id="mwAQY">+</span><span class="w" id="mwAQc"> </span><span class="nx" id="mwAQg">j</span><span class="p" id="mwAQk">);</span><span class="w" id="mwAQo"> </span><span class="c1" id="mwAQs">//i=2, j=3</span> <span class="w" id="mwAQw"> </span><span class="k" id="mwAQ0">break</span><span class="w" id="mwAQ4"> </span><span class="nx" id="mwAQ8">top</span><span class="p" id="mwARA">;</span> <span class="w" id="mwARE"> </span><span class="p" id="mwARI">}</span> <span class="w" id="mwARM"> </span><span class="p" id="mwARQ">}</span> <span class="p" id="mwARU">}</span> <span class="nx" id="mwARY">alert</span><span class="p" id="mwARc">(</span><span class="s2" id="mwARg">"i="</span><span class="w" id="mwARk"> </span><span class="o" id="mwARo">+</span><span class="w" id="mwARs"> </span><span class="nx" id="mwARw">i</span><span class="w" id="mwAR0"> </span><span class="o" id="mwAR4">+</span><span class="w" id="mwAR8"> </span><span class="s2" id="mwASA">", j="</span><span class="w" id="mwASE"> </span><span class="o" id="mwASI">+</span><span class="w" id="mwASM"> </span><span class="nx" id="mwASQ">j</span><span class="p" id="mwASU">);</span><span class="w" id="mwASY"> </span><span class="c1" id="mwASc">//i=2, j=3</span>It also possible to use break statement to break out of the code blocks:
<span id="mwAS0"></span><span class="nx" id="mwAS4">top</span><span class="o" id="mwAS8">:</span><span class="w" id="mwATA"> </span><span class="p" id="mwATE">{</span> <span class="w" id="mwATI"> </span><span class="nx" id="mwATM">console</span><span class="p" id="mwATQ">.</span><span class="nx" id="mwATU">log</span><span class="p" id="mwATY">(</span><span class="s2" id="mwATc">"foo"</span><span class="p" id="mwATg">)</span> <span class="w" id="mwATk"> </span><span class="nx" id="mwATo">console</span><span class="p" id="mwATs">.</span><span class="nx" id="mwATw">log</span><span class="p" id="mwAT0">(</span><span class="s2" id="mwAT4">"bar"</span><span class="p" id="mwAT8">)</span> <span class="w" id="mwAUA"> </span><span class="k" id="mwAUE">break</span><span class="w" id="mwAUI"> </span><span class="nx" id="mwAUM">top</span> <span class="w" id="mwAUQ"> </span><span class="nx" id="mwAUU">console</span><span class="p" id="mwAUY">.</span><span class="nx" id="mwAUc">log</span><span class="p" id="mwAUg">(</span><span class="s2" id="mwAUk">"baz"</span><span class="p" id="mwAUo">)</span> <span class="p" id="mwAUs">}</span> <span class="c1" id="mwAUw">// Which would output: </span> <span class="c1" id="mwAU0">// > foo</span> <span class="c1" id="mwAU4">// > bar</span>Common Lisp
In Common Lisp two ways of defining labels exist. The first one involves the tagbody special operator. Distinguishing its usage from many other programming languages that permit global navigation, such as C, the labels are only accessible in the context of this operator. Inside of a tagbody labels are defined as forms starting with a symbol; the go special form permits a transfer of control between these labels.
<span id="mwAVo"></span><span class="p" id="mwAVs">(</span><span class="k" id="mwAVw">let</span><span class="w" id="mwAV0"> </span><span class="p" id="mwAV4">((</span><span class="nv" id="mwAV8">iteration</span><span class="w" id="mwAWA"> </span><span class="no" id="mwAWE">NIL</span><span class="p" id="mwAWI">))</span> <span class="w" id="mwAWM"> </span><span class="p" id="mwAWQ">(</span><span class="k" id="mwAWU">tagbody</span> <span class="w" id="mwAWY"> </span><span class="nv" id="mwAWc">start</span> <span class="w" id="mwAWg"> </span><span class="p" id="mwAWk">(</span><span class="nb" id="mwAWo">print</span><span class="w" id="mwAWs"> </span><span class="ss" id="mwAWw">'started</span><span class="p" id="mwAW0">)</span> <span class="w" id="mwAW4"> </span><span class="p" id="mwAW8">(</span><span class="nb" id="mwAXA">setf</span><span class="w" id="mwAXE"> </span><span class="nv" id="mwAXI">iteration</span><span class="w" id="mwAXM"> </span><span class="mi" id="mwAXQ">0</span><span class="p" id="mwAXU">)</span> <span class="w" id="mwAXY"> </span><span class="nv" id="mwAXc">increase</span> <span class="w" id="mwAXg"> </span><span class="p" id="mwAXk">(</span><span class="nb" id="mwAXo">print</span><span class="w" id="mwAXs"> </span><span class="nv" id="mwAXw">iteration</span><span class="p" id="mwAX0">)</span> <span class="w" id="mwAX4"> </span><span class="p" id="mwAX8">(</span><span class="nb" id="mwAYA">incf</span><span class="w" id="mwAYE"> </span><span class="nv" id="mwAYI">iteration</span><span class="w" id="mwAYM"> </span><span class="mi" id="mwAYQ">1</span><span class="p" id="mwAYU">)</span> <span class="w" id="mwAYY"> </span><span class="p" id="mwAYc">(</span><span class="k" id="mwAYg">go</span><span class="w" id="mwAYk"> </span><span class="nv" id="mwAYo">check</span><span class="p" id="mwAYs">)</span> <span class="w" id="mwAYw"> </span><span class="nv" id="mwAY0">check</span> <span class="w" id="mwAY4"> </span><span class="p" id="mwAY8">(</span><span class="k" id="mwAZA">if</span><span class="w" id="mwAZE"> </span><span class="p" id="mwAZI">(</span><span class="nb" id="mwAZM">>=</span><span class="w" id="mwAZQ"> </span><span class="nv" id="mwAZU">iteration</span><span class="w" id="mwAZY"> </span><span class="mi" id="mwAZc">10</span><span class="p" id="mwAZg">)</span> <span class="w" id="mwAZk"> </span><span class="p" id="mwAZo">(</span><span class="k" id="mwAZs">go</span><span class="w" id="mwAZw"> </span><span class="nv" id="mwAZ0">end</span><span class="p" id="mwAZ4">)</span> <span class="w" id="mwAZ8"> </span><span class="p" id="mwAaA">(</span><span class="k" id="mwAaE">go</span><span class="w" id="mwAaI"> </span><span class="nv" id="mwAaM">increase</span><span class="p" id="mwAaQ">))</span> <span class="w" id="mwAaU"> </span><span class="nv" id="mwAaY">end</span> <span class="w" id="mwAac"> </span><span class="p" id="mwAag">(</span><span class="nb" id="mwAak">print</span><span class="w" id="mwAao"> </span><span class="ss" id="mwAas">'done</span><span class="p" id="mwAaw">)))</span>
A second method utilizes the reader macros #n= and #n#, the former of which labels the object immediately following it, the latter refers to its evaluated value. Labels in this sense constitute rather an alternative to variables, with #n= declaring and initializing a “variable” and #n# accessing it. The placeholder n designates a chosen unsigned decimal integer identifying the label.
<span id="mwAbs"></span><span class="p" id="mwAbw">(</span><span class="k" id="mwAb0">progn</span> <span class="w" id="mwAb4"> </span><span class="o" id="mwAb8">#1=</span><span class="s" id="mwAcA">"hello"</span> <span class="w" id="mwAcE"> </span><span class="p" id="mwAcI">(</span><span class="nb" id="mwAcM">print</span><span class="w" id="mwAcQ"> </span><span class="o" id="mwAcU">#1#</span><span class="p" id="mwAcY">))</span>
Apart from that, some forms permit or mandate the declaration of a label for later referral, including the special form block which prescribes a naming, and the loop macro that can be identified by a named clause. Immediate departure from a named form is possible by using the return-from special operator.
<span id="mwAc4"></span><span class="p" id="mwAc8">(</span><span class="k" id="mwAdA">block</span><span class="w" id="mwAdE"> </span><span class="nv" id="mwAdI">myblock</span> <span class="w" id="mwAdM"> </span><span class="p" id="mwAdQ">(</span><span class="nb" id="mwAdU">loop</span><span class="w" id="mwAdY"> </span><span class="nv" id="mwAdc">for</span><span class="w" id="mwAdg"> </span><span class="nv" id="mwAdk">iteration</span><span class="w" id="mwAdo"> </span><span class="nv" id="mwAds">from</span><span class="w" id="mwAdw"> </span><span class="mi" id="mwAd0">0</span><span class="w" id="mwAd4"> </span><span class="nb" id="mwAd8">do</span> <span class="w" id="mwAeA"> </span><span class="p" id="mwAeE">(</span><span class="k" id="mwAeI">if</span><span class="w" id="mwAeM"> </span><span class="p" id="mwAeQ">(</span><span class="nb" id="mwAeU">>=</span><span class="w" id="mwAeY"> </span><span class="nv" id="mwAec">iteration</span><span class="w" id="mwAeg"> </span><span class="mi" id="mwAek">10</span><span class="p" id="mwAeo">)</span> <span class="w" id="mwAes"> </span><span class="p" id="mwAew">(</span><span class="k" id="mwAe0">return-from</span><span class="w" id="mwAe4"> </span><span class="nv" id="mwAe8">myblock</span><span class="w" id="mwAfA"> </span><span class="ss" id="mwAfE">'done</span><span class="p" id="mwAfI">)</span> <span class="w" id="mwAfM"> </span><span class="p" id="mwAfQ">(</span><span class="nb" id="mwAfU">print</span><span class="w" id="mwAfY"> </span><span class="nv" id="mwAfc">iteration</span><span class="p" id="mwAfg">))))</span>
<span id="mwAfs"></span><span class="p" id="mwAfw">(</span><span class="nb" id="mwAf0">loop</span> <span class="w" id="mwAf4"> </span><span class="nv" id="mwAf8">named</span><span class="w" id="mwAgA"> </span><span class="nv" id="mwAgE">myloop</span> <span class="w" id="mwAgI"> </span><span class="nv" id="mwAgM">for</span><span class="w" id="mwAgQ"> </span><span class="nv" id="mwAgU">iteration</span><span class="w" id="mwAgY"> </span><span class="nv" id="mwAgc">from</span><span class="w" id="mwAgg"> </span><span class="mi" id="mwAgk">0</span> <span class="w" id="mwAgo"> </span><span class="nb" id="mwAgs">do</span><span class="w" id="mwAgw"> </span><span class="p" id="mwAg0">(</span><span class="k" id="mwAg4">if</span><span class="w" id="mwAg8"> </span><span class="p" id="mwAhA">(</span><span class="nb" id="mwAhE">>=</span><span class="w" id="mwAhI"> </span><span class="nv" id="mwAhM">iteration</span><span class="w" id="mwAhQ"> </span><span class="mi" id="mwAhU">10</span><span class="p" id="mwAhY">)</span> <span class="w" id="mwAhc"> </span><span class="p" id="mwAhg">(</span><span class="k" id="mwAhk">return-from</span><span class="w" id="mwAho"> </span><span class="nv" id="mwAhs">myloop</span><span class="w" id="mwAhw"> </span><span class="ss" id="mwAh0">'done</span><span class="p" id="mwAh4">)</span> <span class="w" id="mwAh8"> </span><span class="p" id="mwAiA">(</span><span class="nb" id="mwAiE">print</span><span class="w" id="mwAiI"> </span><span class="nv" id="mwAiM">iteration</span><span class="p" id="mwAiQ">)))</span>
In a fashion similar to C, the macros case, ccase, ecase, typecase, ctypecase and etypecase define switch statements.
<span id="mwAjI"></span><span class="p" id="mwAjM">(</span><span class="k" id="mwAjQ">let</span><span class="w" id="mwAjU"> </span><span class="p" id="mwAjY">((</span><span class="nv" id="mwAjc">my-value</span><span class="w" id="mwAjg"> </span><span class="mi" id="mwAjk">5</span><span class="p" id="mwAjo">))</span> <span class="w" id="mwAjs"> </span><span class="p" id="mwAjw">(</span><span class="nb" id="mwAj0">case</span><span class="w" id="mwAj4"> </span><span class="nv" id="mwAj8">my-value</span> <span class="w" id="mwAkA"> </span><span class="p" id="mwAkE">(</span><span class="mi" id="mwAkI">1</span><span class="w" id="mwAkM"> </span><span class="p" id="mwAkQ">(</span><span class="nb" id="mwAkU">print</span><span class="w" id="mwAkY"> </span><span class="s" id="mwAkc">"one"</span><span class="p" id="mwAkg">))</span> <span class="w" id="mwAkk"> </span><span class="p" id="mwAko">(</span><span class="mi" id="mwAks">2</span><span class="w" id="mwAkw"> </span><span class="p" id="mwAk0">(</span><span class="nb" id="mwAk4">print</span><span class="w" id="mwAk8"> </span><span class="s" id="mwAlA">"two"</span><span class="p" id="mwAlE">))</span> <span class="w" id="mwAlI"> </span><span class="p" id="mwAlM">((</span><span class="mi" id="mwAlQ">3</span><span class="w" id="mwAlU"> </span><span class="mi" id="mwAlY">4</span><span class="w" id="mwAlc"> </span><span class="mi" id="mwAlg">5</span><span class="p" id="mwAlk">)</span><span class="w" id="mwAlo"> </span><span class="p" id="mwAls">(</span><span class="nb" id="mwAlw">print</span><span class="w" id="mwAl0"> </span><span class="s" id="mwAl4">"three four or five"</span><span class="p" id="mwAl8">))</span> <span class="w" id="mwAmA"> </span><span class="p" id="mwAmE">(</span><span class="nv" id="mwAmI">otherwise</span><span class="w" id="mwAmM"> </span><span class="p" id="mwAmQ">(</span><span class="nb" id="mwAmU">print</span><span class="w" id="mwAmY"> </span><span class="s" id="mwAmc">"any other value"</span><span class="p" id="mwAmg">))))</span>
<span id="mwAms"></span><span class="p" id="mwAmw">(</span><span class="k" id="mwAm0">let</span><span class="w" id="mwAm4"> </span><span class="p" id="mwAm8">((</span><span class="nv" id="mwAnA">my-value</span><span class="w" id="mwAnE"> </span><span class="mi" id="mwAnI">5</span><span class="p" id="mwAnM">))</span> <span class="w" id="mwAnQ"> </span><span class="p" id="mwAnU">(</span><span class="nb" id="mwAnY">typecase</span><span class="w" id="mwAnc"> </span><span class="nv" id="mwAng">my-value</span> <span class="w" id="mwAnk"> </span><span class="p" id="mwAno">(</span><span class="nb" id="mwAns">list</span><span class="w" id="mwAnw"> </span><span class="p" id="mwAn0">(</span><span class="nb" id="mwAn4">print</span><span class="w" id="mwAn8"> </span><span class="s" id="mwAoA">"a list"</span><span class="p" id="mwAoE">))</span> <span class="w" id="mwAoI"> </span><span class="p" id="mwAoM">(</span><span class="nb" id="mwAoQ">string</span><span class="w" id="mwAoU"> </span><span class="p" id="mwAoY">(</span><span class="nb" id="mwAoc">print</span><span class="w" id="mwAog"> </span><span class="s" id="mwAok">"a string"</span><span class="p" id="mwAoo">))</span> <span class="w" id="mwAos"> </span><span class="p" id="mwAow">(</span><span class="nc" id="mwAo0">number</span><span class="w" id="mwAo4"> </span><span class="p" id="mwAo8">(</span><span class="nb" id="mwApA">print</span><span class="w" id="mwApE"> </span><span class="s" id="mwApI">"a number"</span><span class="p" id="mwApM">))</span> <span class="w" id="mwApQ"> </span><span class="p" id="mwApU">(</span><span class="nv" id="mwApY">otherwise</span><span class="w" id="mwApc"> </span><span class="p" id="mwApg">(</span><span class="nb" id="mwApk">print</span><span class="w" id="mwApo"> </span><span class="s" id="mwAps">"any other type"</span><span class="p" id="mwApw">))))</span>

