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