Branch: Difference between revisions
Jump to navigation
Jump to search
(Created page with "{{Built-in|Branch|→}} is a primitive monadic function which provides a way to control execution flow in an APL programs. It is equivalent to GOTO...") |
|||
Line 28: | Line 28: | ||
<source lang=apl> | <source lang=apl> | ||
⍝ While-Do construct | ⍝ While-Do construct | ||
While:→(~B)/Done | While: →(~B)/Done | ||
S1 | S1 | ||
→While | →While | ||
Line 35: | Line 35: | ||
<source lang=apl> | <source lang=apl> | ||
⍝ Repeat-Until construct | ⍝ Repeat-Until construct | ||
Repeat:S2 | Repeat: S2 | ||
→(~B)/Repeat | →(~B)/Repeat | ||
</source> | </source> | ||
Note that <source inline lang=apl>Else</source>, <source inline lang=apl>End</source>, <source inline lang=apl>CaseN</source>, <source inline lang=apl>Next</source>, <source inline lang=apl>While</source>, <source inline lang=apl>Done</source>, <source inline lang=apl>Repeat</source> in the examples above are all user-defined labels rather than keywords. | |||
==External links== | ==External links== |
Revision as of 06:53, 27 July 2020
→
|
Branch (→
) is a primitive monadic function which provides a way to control execution flow in an APL programs. It is equivalent to GOTO statement in other programming languages.
It appeared in early versions of APL. In some APL dialects it was superseded by the more modern control structures.
Examples
Branch function can be used to implement structured programming constructs without the use of special keywords:[1]
⍝ If-Then-Else construct →(~B)/Else S1 →End Else: S2 End:
⍝ Select construct →(Case1, Case2, Case3, Case4)[i] Case1: S1 →Next Case2: S2 →Next Case3: S3 →Next Case4: S4 Next:
⍝ While-Do construct While: →(~B)/Done S1 →While Done:
⍝ Repeat-Until construct Repeat: S2 →(~B)/Repeat
Note that Else
, End
, CaseN
, Next
, While
, Done
, Repeat
in the examples above are all user-defined labels rather than keywords.
External links
Tutorials
- Bernard Legrand. Mastering Dyalog APL (page 208). Dyalog Ltd. November 2009.