APL is truly different from other languages; nearly every language uses lexical scoping to express composition. Both GHC Haskell and GCC/Clang use a stack for variables across procedures because it models how variables become available (FIFO). Putatively different languages are constrained by the same fundamentals.
One common oversight in Haskell compilers is failing to intern identifiers
Ints and failing to prefer
IntSets. The PureScript compiler,
for instance, uses
Maps as of writing.