(AOC day 9 spoilers!) I have (≢(+/⊢×⊣!⍨⍳⍤≢⍤⊢)((⊃¨(2∘(-⍨/))_Iterate_(0∧.=⊣)))) for part 1 and very similarly (¯1(+/⊢×⊣!⍨⍳⍤≢⍤⊢)((⊃¨(2∘(-⍨/))_Iterate_(0∧.=⊣)))) for part 2 (iterate is from aplcart)
like it more than doing +/ because it needs no change to work for the second part
I have a function with the code (borrowed here https://github.com/mkromberg/websocket-demo)
assert 0=⊃res←iConga.Clt''WSHOST WSPORT'http' 100000('X509'(⎕NEW iConga.X509Cert))('Options'iConga.Options.WSAutoUpgrade)
wsclt←2⊃res
ws_state.cid←wsclt
assert 0=⊃res←iConga.SetProp wsclt'WSUpgrade'('/...