A few tables to help users of Dyalog APL (or similar) get started quickly on BQN. Here we assume ⎕ML is 1 for Dyalog.
Here are some closest equivalents in Dyalog APL for the BQN functions that don't use the same glyphs as APL. Correspondence can be approximate, and ⌽ is just used as a decorator to mean "reverse some things".
| BQN | ⋆ |
√ |
∧ |
∨ |
¬ |
≠ |
< |
> |
≢ |
⥊ |
∾ |
≍ |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Monad | * |
*∘(÷2) |
[⍋] |
[⍒] |
~ |
≢ |
⊂ |
↑ |
⍴ |
, |
⊃,⌿ |
↑,⍥⊂ |
| Dyad | * |
*∘÷⍨ |
∧ |
∨ |
1+- |
≠ |
< |
> |
≢ |
⍴ |
⍪ |
↑,⍥⊂ |
| BQN | ↑ |
↓ |
↕ |
/ |
⍋ |
⍒ |
⊏ |
⊑ |
⊐ |
⊒ |
∊ |
⍷ |
⊔ |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Monad | ,⍀ |
⌽,⌽⍀⌽ |
⍳ |
⍸ |
⍋ |
⍒ |
⊣⌿ |
⊃ |
… |
≠ |
∪ |
⌸ |
|
| Dyad | ↑ |
↓ |
,⌿ |
⌿ |
⍸ |
⌽⍸⌽ |
⌷ |
⊃ |
⍳ |
… |
∊ |
⍷ |
⌸ or ⊆ |
Modifiers are a little harder. Many have equivalents in some cases, but Dyalog sometimes chooses different functionality based on whether the operand is an array. In BQN an array is always treated as a constant function.
| BQN | ¨ |
⌜ |
˝ |
⎉ |
⍟ |
˜ |
∘ |
○ |
⟜ |
|---|---|---|---|---|---|---|---|---|---|
| Dyalog | ¨ |
∘. |
⌿ |
⍤ |
⍣ |
⍨ |
⍤ |
⍥ |
∘ |
In BQN ⎉ is Rank and ∘ is Atop. Dyalog's Atop (⍤) and Over (⍥) were added in version 18.0.
The tables below give approximate implementations of Dyalog primitives for the ones that aren't the same. First- and last-axis pairs are also mostly omitted. BQN just has the first-axis form, and you can get the last-axis form with ⎉1.
| Functions | ||
|---|---|---|
| Glyph | Monadic | Dyadic |
* | ⋆ | |
⍟ | ⋆⁼ | |
! | Implement it yourself | |
○ | Some complex exponential stuff, maybe | |
~ | ¬ | ¬∘∊/⊣ |
? | Library? | |
⍲ | ¬∘∧ | |
⍱ | ¬∘∨ | |
⍴ | ≢ | ⥊ |
, | ⥊ | ∾⎉1 |
⍪ | ⥊˘ | ∾ |
↑ | > | ↑ |
↓ | <˘ | ↑ |
⊂ | < | +`⊸⊔ |
⊆ | <⍟(0<≡) | ⊔ |
∊ | {0=≡𝕩:⥊𝕩⋄∾⥊∇¨𝕩} | ∊ |
⊃ | ⊑ | |
⍀ | /⁼ | |
∩ | ∊/⊣ | |
∪ | ⍷ | ⊣∾∊˜¬⊸/⊢ |
⍳ | ↕ | ⊐ |
⍸ | / | ⍋ |
⍋ | ⍋ | Give up |
⍒ | ⍒ | Give up |
≢ | ≠ | ≢ |
⍎ | To be decided | |
⍕ | ||
⊥ | {+⟜(𝕨⊸×)´⌽𝕩} | |
⊤ | {𝕨|1↓⌊∘÷`⌾⌽𝕨∾<𝕩} | |
⌹ | +˝∘×⎉1‿∞⁼ I guess | |
⌷ | N/A | ⊏ |
| Operators | ||
|---|---|---|
| Syntax | Monadic | Dyadic |
⌿ | ¨˝ | ↕ |
⍀ | ↑ or ` | |
¨ | ¨ | |
⍨ | ˜ | |
⍣ | ⍟ | |
f.g | f˝∘g⎉1‿∞ | |
∘.f | f⌜ | |
A∘g | A⊸g | |
f∘B | f⟜B | |
f∘g | f⟜g | |
f⍤B | f⎉B | |
f⍤g | f∘g | |
f⍥g | f○g | |
f@v | f⌾(v⊸⊏) | |
f⍠B | Uh | |
f⌸ | ⍷⊸⊐⊔↕∘≠ | ⍷⊸⊐⊸⊔ |
f⌺B | ↕ | |
A⌶ | • | |
f& | Nothing yet | |