Control structure: Difference between revisions
Jump to navigation
Jump to search
(Created page with "Some modern versions of APL include a set of keywords for controlling the flow of control. Such keywords allow programmers to create '''control stru...") |
|||
Line 6: | Line 6: | ||
For example, a function implementing the [[wikipedia:TPK algorithm|Trabb Pardo–Knuth algorithm]] using control structures: | For example, a function implementing the [[wikipedia:TPK algorithm|Trabb Pardo–Knuth algorithm]] using control structures: | ||
<source lang=apl> | <source lang=apl> | ||
∇ {res}←trabb | ∇ {res}←trabb;f;S;i;a;y | ||
f←{(0.5*⍨|⍵)+5×⍵*3} | f←{(0.5*⍨|⍵)+5×⍵*3} | ||
S←,⍎{⍞←⍵ ⋄ (≢⍵)↓⍞}'Please, enter 11 numbers: ' | S←,⍎{⍞←⍵ ⋄ (≢⍵)↓⍞}'Please, enter 11 numbers: ' |
Revision as of 09:34, 19 July 2020
Some modern versions of APL include a set of keywords for controlling the flow of control. Such keywords allow programmers to create control structures which are commonly used in procedural programming languages.
Example
Dyalog APL has a rich set of flow control keywords, including :If
, :While
, :Repeat
, :For
(with the supplementary control words :In
and :InEach
), :Select
, :With
, :Trap
, :Hold
and :Disposable
. The use of control structures defined by these keywords is only allowed in defined functions.
For example, a function implementing the Trabb Pardo–Knuth algorithm using control structures:
∇ {res}←trabb;f;S;i;a;y f←{(0.5*⍨|⍵)+5×⍵*3} S←,⍎{⍞←⍵ ⋄ (≢⍵)↓⍞}'Please, enter 11 numbers: ' :For i a :InEach (⌽⍳≢S)(⌽S) :If 400<y←f(a) ⎕←'Too large: ',⍕i :Else ⎕←i,y :EndIf :EndFor ∇
External links
Tutorials
- APL Cultivation: Control structures
- Bernard Legrand. Mastering Dyalog APL (page 189). Dyalog Ltd. November 2009.