Jürgen,
Sorry for the delay.
If I declare a LIFE function for finding the
next generation in the game of life:
∇
[0] λ←LIFE ⍵
[1] λ←⊃∨/1 ⍵∧3 4=+/+⌿¯1 0 1∘.⊖¯1 0 1⌽¨⊂⍵
∇
and then call it on a matrix M:
LIFE ⍣≡ M
it should find the final state of M (if it
exists!) after which it won’t change anymore when fed
into LIFE (right?).
The problem is when it never reaches a
“static” state, then it won’t stop without intervention.
This is where I’ve
tried using ^C (pressing once, and pressing
twice in a row), and neither seemed to halt the process.
I imagine the primitive to modify is ⍣?
PS: Gmane seems quite slow these days. Or is
it on my side?
Best of luck,
⊣ Louis
Hi
Louis,
could you provide a concrete example?
Some remarks on ^C in GNU APL. There are two
levels: a single ^C (called ATTENTION) and two
^C
within one second (called INTERRUPT).
ATTENTION is primarily checked by the runtime
parser at the end of the line. This is to make
→N work nicely so that the
interrupted line is finished before execution
is stopped.
INTERRUPT is currently checked in printouts so
that the display of long values can be
aborted.
In general INTERUPT has a potential of leaving
behind an inconsistent workspace and, if
checked to often, of performance impact.
Therefore an example would be handy so that I
can see which (and where) an operation could
be stopped in a reasonable way.
/// Jürgen
On 10/01/2015 10:26
PM, Louis de Forcrand wrote:
I've noticed that CONTROL-C works quite well with
multiple-line functions, but not nearly as well with
programs that use ⍣ for example (one-liners).
APL just seems to freeze, and with a little luck it
stops and prints ATTENTION, while at other times
it just doesn't seem to stop at all.