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-07 19:02:17 +00:00
2026-05-06 09:19:56 +00:00
2026-05-05 10:42:07 +00:00
2026-05-01 23:30:48 +00:00
2026-05-01 21:41:11 +00:00
2026-05-06 09:19:56 +00:00
2026-05-01 22:33:27 +00:00
2026-05-01 21:14:14 +00:00
2026-05-06 11:20:44 +00:00
2026-05-01 23:18:04 +00:00
2026-05-01 22:43:04 +00:00
2026-05-06 11:36:59 +00:00
2026-04-02 12:50:35 +00:00
2026-04-03 21:48:54 +00:00
2026-04-03 21:48:54 +00:00
2026-04-11 13:06:28 +00:00
2026-04-03 21:48:54 +00:00
2026-04-04 20:49:02 +00:00
2026-04-22 09:08:00 +00:00
2026-04-22 09:08:00 +00:00
2026-04-04 20:49:02 +00:00
2026-04-11 08:03:45 +00:00
2026-05-01 21:00:22 +00:00
2026-04-03 21:48:54 +00:00
2026-04-11 08:19:16 +00:00
2026-04-03 21:48:54 +00:00
2026-04-04 20:49:02 +00:00
2026-04-12 18:31:34 +00:00
2026-04-04 20:49:02 +00:00
2026-04-04 20:49:02 +00:00
2026-04-08 10:12:57 +00:00