diff options
| author | Marshall Lochbaum <mwlochbaum@gmail.com> | 2020-10-06 09:59:26 -0400 |
|---|---|---|
| committer | Marshall Lochbaum <mwlochbaum@gmail.com> | 2020-10-06 09:59:26 -0400 |
| commit | 7b7204e598c80d6ceed6d8ae12e7863684a62590 (patch) | |
| tree | edd72544e87e450f384d5045bf1b11fc32c83a52 /doc/combinator.bqn | |
| parent | 27c7fe086283dd46e10ac27b6af531497a3b24c4 (diff) | |
Add code for combinator diagram
Diffstat (limited to 'doc/combinator.bqn')
| -rw-r--r-- | doc/combinator.bqn | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/doc/combinator.bqn b/doc/combinator.bqn new file mode 100644 index 00000000..9d060d08 --- /dev/null +++ b/doc/combinator.bqn @@ -0,0 +1,54 @@ +Text ← "text" Attr "dy"‿"0.32em"∾⊢ + +ops ← ⍎∘⥊¨ spel ← "⊸⟜˜∘○˙" +m2 ← ∾˜1‿1‿0 +_symb ← {𝕗<⊸∾≍○<} +lrand ← 5‿1/⟨"𝔽"_symb,"𝕗"⟩ +lrsp ← 5‿1/"𝔽"‿"𝕗" +names ← (¬×+`)⊸-∘=⟜' '⊸⊔ "Before After Self/Swap Atop Over Constant" + +w‿h ← 280‿260 +Pnt ← 32‿57×⌽ + +app ← m2 {o←𝕩⊑ops⋄𝕨◶{𝕩_o}‿{𝕩_o_("𝔾"_symb)}𝕩⊑lrand}¨ ↕≠ops +res ← >{⟨𝕏"𝕩","𝕨"𝕏"𝕩"⟩}¨app +map ← ⟨⟩⊸{(1<≡)◶(≍(𝕨∾0)≍○<⊢)‿((𝕨≍○<⊑)∾⟜∾·𝕊¨˜⟜(𝕨⊸∾¨((2×↕)- -⟜1)∘≠)1↓⊢)𝕩}¨res +path‿name ← <˘⍉⁼><˘∘⍉¨map + +notBase ← (1<≠)◶⟨1,0≠¯1⊸⊑⟩¨¨ path +path ↓¨¨˜↩ -¬notBase +FromPath ← ≠≍+´ +vv ← (1↓⌽↓"𝕨"‿"𝕩") ∾˜¨⎉1 notBase /¨ name +vl ← (2 ≍⚇0 ⟨0⟩‿⟨¯1,1⟩) ∾˜¨⎉1 notBase FromPath¨∘/¨ path +vp ← Pnt¨¨ vl + +ps ← >⟨"class"‿"yellow","style"‿"fill:none","stroke-width"‿"2"⟩ +Connect ← { + e ← FromPath ¯1↓𝕨 + curve ← ⟨1‿1.3, 1‿1.25‿0.9‿1, 0.5‿1.25‿1‿0⟩ + c ← 𝕨 ((1=≠)⊸∧⟜(2=⊑))◶⟨⟩‿(⊑⊸((⊣(⊢×≢∘⊢⥊1∾⊣)curve⊑˜×)○×)⟜(1⊸⊑)) 𝕩 + "path" Elt ps∾⟨"d",∾("M"∾(2÷˜≠c)⊏"LQC")∾⟜(Fmt Pnt˘⌾(∘‿2⊸⥊))¨e‿(c∾𝕩)⟩ +} + +label ← ⍉ ""‿"𝕨 " ∾⌜ ∾⟜" 𝕩"¨ lrsp∾¨spel∾⟜(/⟜"𝔾")¨m2 + +_trans ← {(𝕗∾" transform='translate(")∾(⊣∾","∾⊢)○FmtNum∾")'"˙} +g ← (20+h×↕2) "g font-size='20px' text-anchor='middle'"_trans˜⌜ (5+w×0.5+↕3) + +rc ← >⟨"class"‿"code","stroke-width"‿"1","rx"‿"12"⟩ +rc ∾↩ (Pos⟨¯0.43×w,1⟩)∾"width"‿"height"≍˘FmtNum¨⟨0.86×w,h-55⟩ +cc ← >⟨"r"‿"12","class"‿"code","stroke-width"‿"0"⟩ +n ← Text∘‿2⥊⟨"y",FmtNum h-37, "fill","currentColor"⟩ +case ← (¯1‿1×w÷4.6) "g font-size='21px' font-family='monospace'"_trans¨ 25 +lt← Text∘‿2⥊⟨"y",FmtNum h-105, "font-size","19px"⟩ + +(0‿0∾10+3‿2×w‿h) SVG g Enc¨ ⌽ <⎉1⍉>2‿3⊸⥊¨⟨ + < "rect" Elt rc + n⊸Enc¨ names + (< case Enc¨ ⊢)⎉1 ∾¨´ ⟨ + (<lt Enc Highlight)¨ label + path Connect¨¨⟜(vl⊏¨˜vv(⊐⌈≠∘⊣|⊒)¨⊢)○((0<≠¨¨path)/¨⊢) name + ("circle" Elt cc∾⟨"cx","cy"⟩≍˘FmtNum¨)¨¨ vp + vp Text∘Pos⊸Enc⟜Highlight¨¨ vv + ⟩ +⟩ |
