@Adám for "Can You Feel the Magic?", can I suggest an addition to the test cases in the online judge? I have a solution that passes according to the judge, but which I've found a failing test case.
@RubenVerg That looks really cool! What inspired you to make the interpreter in Haskell? I don't know a lot of Haskell, but the code looks pretty clean so far!
The docs for Materialize show this example 2 ⌷[2] mat, which extracts the 2nd column from mat. I understand that much but not precisely what is happening? How exactly are the left arg of 2 and the [2] interacting to produce extraction of the 2nd column?
Entirely unrelated, but the online reference docs don't seem to be formatting correctly for me. Eg, here is what I see on the Stencil page: i.imgur.com/8u454GH.png
One final, also independent, question: Why is ({⊂⍵}⌺3 3) not equivalent to (⊂⌺3 3)? The former does the expected tesselation, while the latter results in blank space. My mental model (which must be wrong) is that each 3x3 tesselation will be passed as an arg to the fn on the left (whether {⊂⍵} or ⊂), and from the pov they should behave the same. Where is my misunderstanding?
@Jonah The reason for this behavior difference is that the stencil gives 2 arguments to the attached function. the left arg ⍺ is an array describing the padding that's been added, while the right arg ⍵ is the 3x3 tesselations. This is due to the 3x3 tesselations extending off the base matrix and needing the padding to have the 3x3 shape. Thus, when you do (⊂⌺3 3), it's treating you left function ⊂ as dyadic. You can see the arguments/behavior with ({⍺,⍥⊂⍵}⌺3 3)
@Jonah I think the [2] is indicating to operate on the 2nd dimension (columns) instead of the default 1st dimension (rows), and then the left argument 2 is specifying which column to select.