明確定義 m : n  _ _ _  

Section II H所定義與舉例,片語 s=: 0 : 0 用來定義 s 為一指令稿,而明確定義連接詞可進一步得到純雙邊動詞(4 : s)、動詞(3 : s)、連接詞(2 : s)、副詞(1 : s)或名詞(0 : s)。左引數 14 10 可用來替代 4 0 得到隱式但相同的定義。 右引數 0 可用來直接由鍵盤作各種相對應的定義:k : 0 同於 k :(0 : 0)。更進一步,封裝表達方式 b=: <;._2 s 或表格表達式 t=: >b (或 t=:[;._2 s) 可用來取代所有前述的各種定義指令稿 s 。故:
   f=: 3 : 0
a=: 2+b=. y. ^ 2
a+a*b
:
x.*x.+y.
)

   a=: b=: 19
   f 3
110

   a,b                        僅有全域名改變
11 19
如前例:

1.    3 : 0 產生單邊與雙邊的定義區別在一單冒號行; 若不存在該行,無雙邊定義。
2. 明確定義函數的結果為非檢驗區塊最後執行的句子得到的結果。見控制結構 檢驗區塊的定義。
3. 由連系詞 =. 指定的名字為區域性名字;指定給它的值不影響同名的使用 without entity defined 或 在其他呼叫它的物件內。由 =: 指定者為全域性名字。
4. 區域變數不能地區化
5. 名字 x. y. 代表左與右引數。當定義連接詞,有必要提及其左與右引數 (採用 u. v.) 以及衍生函數的引數(x. and y.)。若用 m. 替代 u. 則限定對應的引數為名詞,採用 n. 替代 v.也有相同的效果。例如:
   conj=: 2 : '(u. y.)+ (v. y.)'
   mc=: 2 : 0
(u.y.)+(v.y.)
)

   dc=: 2 : 0                 雙邊案例
:
(u.y.)+(v.x.)
)

   (!conj% 2 4 5);(!mc% 2 4 5);(1 2 3 !dc% 2 4 5)
+---------------+---------------+--------------+
|2.5 24.25 120.2|2.5 24.25 120.2|3 24.5 120.333|
+---------------+---------------+--------------+
控制結構. 明確 定義的執行順序可由控制單字 諸如 if. do. else. end. while. 決定。例如,一函數以兩原子括住根的方式尋找函數 f 的根,程式如下:
   root=: 3 : 0
m=.+/%#while.~:/y.do.if.~:/*f b=.(m,{.)y.do.y.=.b else.y.=.(m,{:)y.end.end.m y.
)

   f=: 4:-%:
   b=: 1 32
   root b
16
這類定義也可以在控制單字前後跳行,如此較具可讀性:

   root=: 3 : 0
m=. +/ % #
while. ~:/y.
   do. if. ~:/*f b=. (m,{.) y.
            do. y.=. b 
          else. y.=. (m,{:) y.
       end.
end. m y.
)

如前例,單字 if. 與其對應字 end. 標示著一控制結構的起始與終點,如同 while. 與其對應 end.;這樣的結構也可以鑲套,如 if. 結構落在 while. 結構內。

控制單字 for.if.select.try.while. whilst. 這些標示著控制結構起始,各有對應的終點 end.,且構成另一種型態的分句符號。在前例 do. else. 打破 if. 結構成三個簡單的區塊,各自含有一句子,而 在 while.結構的 do.將結構分成兩個區塊,前個為一簡單句子,而第二個本身為一 if. 控制結構。

一般而言,區塊 包含零個或以上的簡單句子與控制結構。以下總結區塊的角色:

for.     T do. B end.
for_xyz. T do. B end.
if. T do. B end.
if. T do. B else. B1 end.
if. T do. B elseif. T1 do. B1 elseif. T2 do. B2 end.
select. T case. T0 do. B0 fcase. T1 do. B1 case. T2 do. B2 end.
try. B catch. B1 end.
while. T do. B end.
whilst. T do. B end.          類似 while.,但跳過第一次檢驗。
B T 起頭的單字代表區塊。T 區塊最後執行的句子,其結果值的第一原子會被用來檢驗是否為非零,而檢驗的結果決定了下個要執行的區塊。 (空白 T 區塊或省略 T 區塊視為真值)在 try.區塊若錯誤產生, 程式跳到對應的 catch. 區塊繼續執行 。最後結果為不在 T 區塊之最後執行句子的結果,若沒有這樣的句子,最後結果為 i.0 0

其餘控制單字的功能摘述如下:

assert. T T 不全為1傳回謬誤
break. 跳到控制結構 for., while., or whilst. 的終點  
continue. 跳到控制結構 for., while., or whilst. 的起點  
goto_name. 跳到標籤 
label_name.     定義跳躍的標籤
return. 結束函數

其他的說明與範例見 控制結構

以下範例使用控制單字與 u. n. 建構層級連接詞 L:
   Level=: 2 : 0
m=. 0{ 3&$&.|. n.
ly=. L. y. if. 0>m do. m=.0>.m+ly end.
if. m>:ly do. u. y. else. u. Level m&.> y. end.
:
'l r'=. 1 2{ 3&$&.|. n.
lx=. L. x.  if. 0>l do. l=.0>. l + lx end.
ly L. x.  if. 0>r do. r=.0>. r + ly end.
b=. (l,r)>:lx,ly
if.     b-: 0 0 do. x.    u. Level(l,r)&.>y.
elseif. b-: 0 1 do. x.    u. Level(l,r)&.>y.
elseif. b-: 1 0 do. (<x.) u. Level(l,r)&.>y.
elseif. 1       do. x. u. y.
end.
)

   ] a=: (i.2 3);(<<2 3 4) ; 3
+-----+---------+-+
|0 1 2|+-------+|3|
|3 4 5||+-----+|| |
|     |||2 3 4||| |
|     ||+-----+|| |
|     |+-------+| |
+-----+---------+-+

   +: Level 0 a
+------+---------+-+
|0 2  4|+-------+|6|
|6 8 10||+-----+|| |
|      |||4 6 8||| |
|      ||+-----+|| |
|      |+-------+| |
+------+---------+-+

   +: L: 0 a
+------+---------+-+
|0 2  4|+-------+|6|
|6 8 10||+-----+|| |
|      |||4 6 8||| |
|      ||+-----+|| |
|      |+-------+| |
+------+---------+-+

下個前個字彙索引主選單