Skip to content

Restrictions

  • Dfns need not return a result. However even a non-result-returning expression will terminate the function, so you can't, for example, call a non-result-returning function from the middle of a dfn.
  • You can trace a dfn only if it is defined on more than one line. Otherwise it is executed atomically in the same way as an execute (⍎) expression. This deliberate restriction is intended to avoid the confusion caused by tracing a line and seeing nothing change on the screen.
  • dfns do not currently support ⎕CS which, if used, generates a NONCE ERROR.
  • ⎕SHADOW ignores dfns when looking down the stack for a traditional function (tradfn) in which to make a new local name.
  • dfns do not support control structures or branch.
  • dfns do not support modified assignment such as X plus←10 where X is an array and plus is a function. In this example, both X and plus would be assigned the value 10.
  • ⎕MONITOR does not apply to dfns and dops.

Supplied Workspaces

You can find many samples of dfns and dops in utility workspace dfns.dws in the ws sub-directory.

Additional examples are in workspaces: min.dws, max.dws, tube.dws and eval.dws.