Keine Angst vor der Übergabe großer Variablen als Argument einer Funktion! Es ist nämlich nicht so, dass sich nach Aktivierung der Funktion der Inhalt des Arguments gleich zweimal im Arbeitsspeicher ausbreitet. Statt eine Kopie anzulegen speichert APL nur einen Pointer.
Das spart Platz, aber nur solange bis in der aufgerufenen Funktion das Argument selbst modifiziert wird. Selbst die kleinsten Änderung (z.B. (↑Arg)←0 ) bewirkt eine umgehende Erstellung einer Kopie der ursprünglichen Variablen.
Das Gleiche gilt für ganz einfache Zuweisungen der Form C←B, selbst wenn B bereits nur einen Pointer zu A darstellt. Und was passiert nun mit dieser verpointerten Kette, wenn A bzw. B modifiziert wird?
"Sparsam" vollständig lesen