• by artikae on 3/10/2025, 6:39:44 PM

    assoc-in reminds me a lot of lenses in Haskell. I figure you could probably implement something like it using them. This is what I came up with:

      import Control.Lens
      baseLens --> nextIndex = baseLens . ix nextIndex
      assocIn structure keyLens newValue = set keyLens newValue structure
    
    It works like so:

      setTo256 structure = assocIn structure (ix 0 --> 0 --> 0) 256
      -- setTo256 [[[1]], [[2]]] returns [[[256]], [[2]]]