Hi Mike,

the things is this: *)IN* and *)OUT* are rather ancient commands from IBM APL2 and
were implemented to allow the exchange of workspaces created with IBM APL2.

IBM APL2 does not support "tacit functions" so it cannot *)OUT* them and also not *)IN* them. Formally you might be able to *)IN *and *)OUT* tacit functions with GNU APL, but even if this works it would be of no use because every other interpreter would not
understand it.

Strictly speaking the behavior of GNU APL is a fault, but the use of *)IN* and *)OUT* with workspaces containing lambdas is so weird that I am not sure if it is worth the
effort to fix it.*)LOAD,* *)SAVE*, and *)DUMP* are aware of lambdas.

To type a *λ* you could:

*      add←{⍺+⍵} ◊ ⎕CR 'add'
λ←⍺ λ1 ⍵
λ←⍺+⍵ *

and then cut-and-paste the *λ *from the terminal.

Best Regards,

Jürgen


On 12/14/25 15:38, M.Hall wrote:
I don't know what I'm doing, so maybe this isn't supposed to work.

Define a tacit function, ")out" it, quit. In a new session, ")in" it, and it doesn't get loaded.  The "*.aft" file looks like it holds the definition, though.

$  apl
      add←{⍺+⍵}
      )out add
      )off

$  apl
      )in add
      )fns
λ1
      )off

$  apl -v
BUILDTAG:
---------
    Project:        GNU APL
    Version / SVN:  1.9 / SVN: 1929M
    Build Date:     2025-12-13 08:06:18 CST
    Build OS:       Darwin 24.6.0 arm64
    config.status:  default ./configure options
    Archive SVN:    1910

Aside: how are we supposed to type λ1? Is there a keyboard layout with it?   :-)
--
Mike Hall


Reply via email to