← Back to context

Comment by geocar

7 months ago

> My understanding is that APL permits mutable state and side effects ... If you're modifying the contents of an array in-place, I don't think it's reasonable to consider that functional.

      a←'hello'
      a[1]←'c'

This does _not_ modify the array in-place. It's actually the same as:

     a←'hello'
     a←'c'@1⊢a

which is more obviously functional. It is easy to convince yourself of this:

      a←'hello'
      b←a
      b[1]←'j'
      a,b

returns 'hellojello' and not 'jellojello'.