</> APL Run Loading interactive WebAssembly workspace…

APL Run — Free Online APL & mAPL Interpreter in WebAssembly

Write, execute, and visualize APL and mAPL array programs directly in your browser with zero installation. Built from scratch in Rust with a custom bytecode VM, element-wise loop fusion, runtime WebAssembly AOT compilation, and APL-to-WebGPU shader generation.

Quick APL & mAPL Showcase

⍝ Sieve primes ≤ 50 using outer-product membership (∘.×)
Primes ← { (~R∊R∘.×R)/R←1↓⍳⍵ }
Primes 50

⍝ Tacit 3-train (fork): Arithmetic mean = Sum ÷ Tally
(+/ ÷ ≢) ⍳10

⍝ Modern mAPL: Typed contracts (::), dicts, and ▷ pipelines
Scale ← { :: int[] → int[] ⋄ (⍵ × 2) + 1 }
10 20 30 40 ▷ (⍵ ≥ 20)/⍵ ▷ Scale

Key Capabilities

  • Dyalog & GNU APL Compatibility — Defaults to Dyalog APL (⎕IO←1) with Rank (⍤), Key (⌸), Stencil (⌺), At (@), dfns, tacit trains, and control structures, plus strict GNU APL mode.
  • High-Throughput Compiler Pipeline — Wins or ties 15 of 17 compute benchmarks against native Dyalog APL v20.0 and GNU APL v2.0.
  • mAPL Software Engineering Extensions — Gradual runtime type contracts (::), dictionary literals ([ k: v ]), left-to-right pipelines (▷), and native ES-style import / export modules.
  • Interactive Reactive Notebooks & 10-Chapter Tutorial — Live cells with automatic heatmaps, boolean pixelmaps, and SVG charts.