OK. I haven't actually solved this in a little while (couple years). I learnt APL by reading the Legrand book and practicing on Project Euler. I don't have any of my old solutions, but I figure this will be golfable fairly easily. Will be interesting to see what people come up with, though.
@JamesHeslip You're asking for a constant answer. It isn't really interesting unless there's a parameter so the answer can vary. E.g. find the largest palindrome made from the product of two N-digit numbers.
@JamesHeslip For that, I've got ⊃⌽a/⍨(⌽≡⊢)∘⍕¨a←,∘.×⍨⊃↓∘⍳/10*⎕-1 0Try it online!
@Deadcode on the adjacency-matrix approach, i just tried it with the regex that tests for divisibility by 3 that you commented under the haskell solution and it works after fixing a tiny bug; on the ~140b solution that brute-forces all possible matches, i got a WS FULL (took too much memory)
@dzaima oh right, we've sacrificed ambivalency
@dzaima what are these "strands" that you and bubbler refer to in your messages here?
aka, fns as proper values = no strand notation, at which point the syntax slowly goes to k's. (not that that's a bad thing, an apl with k-ish syntax (but still unicode) is one of many apl things i'd like to attempt to make at some point)
@JeffZeitlin Yes. or even :GoTo LABEL1 LABEL2 42 LABEL3 'abc'[?4] any expression that results in a scalar or vector is fine, as along as the first element (if any) is an integer.