On Arriving at the Pearly Gates ------------------------------- On arriving at the Pearly Gates, if you have been thinking and coding in a de- clarative style, be sure to mention this to an official, who will fast-track you through. In days-gone-by, this would have made little difference. The old wrought-iron Gates were at the end of a winding path; atop a grassy hill; betwixt high, white walls; 'neath a clear, blue sky. You would just chip up; press the bell; and wait for Saint Peter to show you in. However, with the steady year-on-year increase in traffic, the Gate Area now re- sembles the immigration hall at JFK; the lines zig-zag out of sight and you can't quite hear the announcements. You'll be glad of any little advantage. ( One test They use is to see whether your end-of-line comments are predomin- antly noun-phrases, rather than imperatives. ⌽⍺ ⍝ reverse ⍺ (imperative indicates procedural thinking) ⌽⍵ ⍝ the reverse of ⍵ (noun phrase suggests declarative thinking) ¯¯¯ ¯¯ n←+/v ⍝ add up v and assign it to n (procedural) n←+/v ⍝ n is the sum of the items of v (declarative) ¯¯ ¯¯¯ Of course, you could rip through and edit your comments but They have other ways ... They might ask you to read "m←0" aloud: "m gets zero" (procedural) "m becomes zero" (procedural) "zero m" (procedural) "m is zero" (declarative) "m names zero" (declarative) "m indicates zero" (declarative) "m is specified as zero" (declarative - KEI) "m denotes zero" (declarative - SJT) They might ask what happens when the interpreter evaluates m←0: "It assigns the value zero to m" (procedural) "It assigns the name m to zero" (declarative) For a declarative view of the world, it may be helpful to visualise "←" as a right-pointing finger, rather than as a left-pointing arrow (in the same way that ⊢ is a right-pointing tack). Regarding assignment: at a baby-naming ceremony we (with the possible ex- ception of some folk in the pop music industry) usually think of assigning the name to the baby, rather than the baby to the name. And finally: "APL evaluates right-to-left" (procedural) "APL functions apply to everything to their right" (declarative) 12÷1+2 ⍝ two added to one then divided into twelve (procedural) 12÷1+2 ⍝ twelve divided by: one plus two (declarative) and for a pop at a place at Top Table, you might suggest that J←2+I be verb- alised: J←2+I ⍝ J denotes the second successor of the referent of I See: http://dfns.dyalog.com/downloads/howcomp.pdf ) See also: declarative Back to: contents Back to: Workspaces