giles
b661318a45
Test, Build, and Deploy / test-build-deploy (push) Failing after 57s
apl: train/fork notation (f g h) and (g h) (+6 tests, 496/496)
Parser: when a parenthesised subexpression contains only function
segments (>= 2), collect-segments-loop now emits a :train AST node
instead of treating it as a value-producing expression.
Resolver: apl-resolve-{monadic,dyadic} handle :train.
- monadic 2-train (atop): (g h)⍵ = g (h ⍵)
- monadic 3-train (fork): (f g h)⍵ = (f ⍵) g (h ⍵)
- dyadic 2-train: ⍺(g h)⍵ = g (⍺ h ⍵)
- dyadic 3-train: ⍺(f g h)⍵ = (⍺ f ⍵) g (⍺ h ⍵)
apl-run "(+/÷≢) 1 2 3 4 5" → 3 (mean)
apl-run "(- ⌊) 5" → -5 (atop)
apl-run "2 (+ × -) 5" → -21 (dyadic fork)
apl-run "(⌈/-⌊/) 3 1 4 …" → 8 (range)
2026-05-07 19:02:17 +00:00
..
2026-05-06 18:21:03 +00:00
2026-05-06 09:19:56 +00:00
2026-05-07 19:02:17 +00:00
2026-05-05 12:35:26 +00:00
2026-05-06 09:19:56 +00:00
2026-05-06 09:19:56 +00:00
2026-05-06 09:19:56 +00:00
2026-04-25 08:06:17 +00:00
2026-04-24 16:03:00 +00:00
2026-05-06 09:19:56 +00:00
2026-04-24 16:03:00 +00:00
2026-04-25 08:54:00 +00:00
2026-05-06 09:19:56 +00:00
2026-04-24 15:47:25 +00:00
2026-04-24 15:50:22 +00:00
2026-04-25 18:35:32 +00:00
2026-05-06 09:19:56 +00:00
2026-04-24 16:03:00 +00:00
2026-05-06 09:19:56 +00:00
2026-05-06 09:19:56 +00:00
2026-05-06 09:19:56 +00:00
2026-04-24 15:16:45 +00:00
2026-04-23 19:42:16 +00:00
2026-05-01 20:20:56 +00:00
2026-04-25 16:32:26 +00:00
2026-05-06 11:06:05 +00:00
2026-05-06 15:37:40 +00:00