4:25 AM
@Jonah No, and I don't see how that would work or even help. When array notation becomes native, you'll be able to write `(⍪2 2)` as `[2⋄2]` which I guess is slightly nicer.
@Jonah I would probably just reshape to two columns, as it is a less heavy-feeling operation, but currently quite awkward. I have a proposal to be able to write `¯1 2⍴` or something like that (the actual value `¯1` isn't settled) to reshape into two columns.

5 hours later…
9:10 AM
There is a server issue with the APL Wiki that I am unable to do anything about. Sorry for the inconvenience. It is unclear when it will be back up, current estimate perhaps a few hours.

6 hours later…
3:00 PM
Welcome to APL Quest 2021-7! Today's quest is Can You Feel the Magic?:
> Write a function to test whether an array is a magic square. The function must:
> • have a right argument that is a square matrix of integers (not necessarily all positive integers)
> • return 1 if the sums of the numbers in each row, each column, and both main diagonals are the same, otherwise return 0

`(∧/(+/1 1∘⍉)=+/,+⌿,(+/1 1∘⍉⍤⌽))`

Yup, that's very straight-forward. Nice.
Have you considered collecting all the rows/columns/diagonals before summing?

no. Good one

`{1=≢∪+/⍵⍪(⍉⍵)⍪↑1 1∘⍉¨⍵(⌽⍵)}`

That's nice but how about using `⍥` instead of `¨`?
`{1=≢∪+/⍵}⊢⍪⍉⍪⊢↑⍤,⍥(⊂1 1∘⍉)⌽`

3:11 PM
`(1=≢∘∪)(+/¨(⊂1 1∘⍉⍤⌽),(⊂1 1∘⍉),,/,,⌿)`

That's very nested. I had `1=∘≢∘∪1⊥1 1∘⍉,⍉,⊢,1 1∘⍉⍤⌽`
I wonder if we can use `⍥` to get original and transpose each with a diagonal. Not sure.

I had `{1=≢∪+⌿⍵,⍥{⍵,1 1⍉⍵}⌽⍵}`

@Finn I'm confused. doesn't it fail to check the transpose.

Today you learned!
```      {⍵,⍥{⍵,1 1⍉⍵}⌽⍵}3 3⍴⍳9
1 2 3 1 3 2 1 3
4 5 6 5 6 5 4 5
7 8 9 9 9 8 7 7```
@Finn Look ↑. When you sum vertically, you get 1 4 7 twice, but never 1 2 3.

3:25 PM
@Adám `1=∘≢∘∪1⊥⊢,⍥(⊢,1 1∘⍉)⍉⍤⌽` ?

@rabbitgrowth Yes!
I think that's it, then. Any other ideas?

@Adám This feels like the non-dfn of what you had: `1≡∘≢⍉∪⍥(∪1⊥1 1∘⍉,⊢)⌽`

@rabbitgrowth nice, and I can understand it

Somehow got it wrong trying to remember what I did. Still confused why my proposed solution passed the problem check.
`{1=≢∪+⌿⍵,⍥{⍵,1 1⍉⍵}⌽⍉⍵}` should be correct?

Yes, that's the explicit version of rabbitgrowth's.

3:32 PM
Is there any advantage between concatenating the original and the rotated square vs. concatenating a reversed and transposed square?

@Finn (btw, no markdown in multi-line msgs but if you use multiple messages in a row, they'll merge visually)
@mitchelljohnstone I don't think so.
Are we done?

@Adám I thought `1 1∘⍉,⍉,⊢,1 1∘⍉⍤⌽` was ordered in a strange way, then realized `⊢,⍉,1 1∘⍉,1 1∘⍉⍤⌽` wouldn't work

Right.
Anyway, next week is 2021-8: Time to Make a Difference, but two hours earlier by UTC.

I think my main takeaway for the day is that if I'm using `¨` on two items, `⍥` might be nicer

4:04 PM
@Adám early entry: `|-⍥(0 24 60⊥¯3∘↑)`
I think the earlier time might make it easier for me to make it actually

@Adám I guess adding the following testcase and its transpose should fix the issue with the problem checker, no?
`↑(0 1 0 1 0)(0 1 0 1 0)(1 0 0 0 1)(0 1 0 1 0)(0 1 0 1 0)`

2 hours later…
6:06 PM
@Adám That was my original approach, but it was much too long because I had to explicitly calculate the number of rows. Do you not think stencil improves on this? Also re: "you'll be able to write (⍪2 2) as [2⋄2]" can you show me the full phrase? When I simply sub in one for the other I get a syntax error.

1 hour later…
7:09 PM
Challenge seems to be over but `1=∘≢∘∪` is nice. I adapted that to my solution and got `1=∘≢∘∪1⊥⍉⍤⌽,⍥(⊢,1 1∘⍉)⊢`
Also stole `,` instead of `⍪` which I didn't realize you could do

7:39 PM
What's the most efficient way to reduce a Boolean matrix through AND? As in, if I have all 1s, it'll return 1, but any 0's would make the result 0?
@Jonah I was pretty similar but liked the code golf of using the transpose and rotate as arguments to the `⍥` instead of the rotate and original. \o/

1 hour later…
8:52 PM
@mitchelljohnstone mmm, i like yours better too, i missed that before. re: your question my guess would be`×/⍤,`
actually guessing you meant in the context of the question specifically, in which case your `1≡∘≢` looks pretty good to me.

9:22 PM
@Jonah I was about in general / a different approach. I hadn't though of the multiplication, though. Thanks!