aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/help/character.html13
-rw-r--r--docs/help/index.html8
-rw-r--r--docs/help/string.html16
-rw-r--r--docs/keymap.html4
-rw-r--r--docs/repl.js2
-rw-r--r--help/README.md2
-rw-r--r--help/character.md10
-rw-r--r--help/string.md12
8 files changed, 64 insertions, 3 deletions
diff --git a/docs/help/character.html b/docs/help/character.html
new file mode 100644
index 00000000..7a29a0f5
--- /dev/null
+++ b/docs/help/character.html
@@ -0,0 +1,13 @@
+<head>
+ <link href="../favicon.ico" rel="shortcut icon" type="image/x-icon"/>
+ <link href="../style.css" rel="stylesheet"/>
+ <title>BQN: Single Quote (')</title>
+</head>
+<div class="nav">(<a href="https://github.com/mlochbaum/BQN">github</a>) / <a href="../index.html">BQN</a> / <a href="index.html">help</a></div>
+<h1 id="single-quote-"><a class="header" href="#single-quote-">Single Quote (<code><span class='String'>'</span></code>)</a></h1>
+<h2 id="c-character"><a class="header" href="#c-character"><code><span class='String'>'c'</span></code>: Character</a></h2>
+<p><a class="fulldoc" href="../doc/syntax.html#constants">→full documentation</a></p>
+<p>A character literal whose value is the character between quotes. Any character can be used, even <code><span class='String'>'</span></code> and newline.</p>
+<a class="replLink" title="Open in the REPL" target="_blank" href="https://mlochbaum.github.io/BQN/try.html#code=J2En4oC/J2In">↗️</a><pre> <span class='String'>'a'</span><span class='Ligature'>‿</span><span class='String'>'b'</span>
+"ab"
+</pre>
diff --git a/docs/help/index.html b/docs/help/index.html
index 46b5e791..d6110440 100644
--- a/docs/help/index.html
+++ b/docs/help/index.html
@@ -381,5 +381,13 @@
<td><code><span class='Comment'>#</span></code></td>
<td><a href="comment.html">Comment</a></td>
</tr>
+<tr>
+<td><code><span class='String'>'</span></code></td>
+<td><a href="character.html">Character</a></td>
+</tr>
+<tr>
+<td><code><span class='String'>&quot;</span></code></td>
+<td><a href="string.html">String</a></td>
+</tr>
</tbody>
</table>
diff --git a/docs/help/string.html b/docs/help/string.html
new file mode 100644
index 00000000..d7d1e74a
--- /dev/null
+++ b/docs/help/string.html
@@ -0,0 +1,16 @@
+<head>
+ <link href="../favicon.ico" rel="shortcut icon" type="image/x-icon"/>
+ <link href="../style.css" rel="stylesheet"/>
+ <title>BQN: Double Quote (")</title>
+</head>
+<div class="nav">(<a href="https://github.com/mlochbaum/BQN">github</a>) / <a href="../index.html">BQN</a> / <a href="index.html">help</a></div>
+<h1 id="double-quote-"><a class="header" href="#double-quote-">Double Quote (<code><span class='String'>&quot;</span></code>)</a></h1>
+<h2 id="str-string"><a class="header" href="#str-string"><code><span class='String'>&quot;str&quot;</span></code>: String</a></h2>
+<p><a class="fulldoc" href="../doc/syntax.html#constants">→full documentation</a></p>
+<p>Literal notation for a string, or list of characters. Double quotes must be escaped by writing them twice. Any other characters can be included directly.</p>
+<a class="replLink" title="Open in the REPL" target="_blank" href="https://mlochbaum.github.io/BQN/try.html#code=MiDiipEgInN0cmluZyIKCjIg4oqRICJhYiIiY2Qi">↗️</a><pre> <span class='Number'>2</span> <span class='Function'>⊑</span> <span class='String'>&quot;string&quot;</span>
+'r'
+
+ <span class='Number'>2</span> <span class='Function'>⊑</span> <span class='String'>&quot;ab&quot;&quot;cd&quot;</span>
+'"'
+</pre>
diff --git a/docs/keymap.html b/docs/keymap.html
index ad1105bf..8b190dc7 100644
--- a/docs/keymap.html
+++ b/docs/keymap.html
@@ -24,8 +24,8 @@
│Tab │Q ↙ │W <a target="_blank" href="help/leftargument.html"><span class='Function'>𝕎</span></a> │E <a target="_blank" href="help/deduplicate_find.html"><span class='Function'>⍷</span></a> │R <a target="_blank" href="help/currentmodifier.html">𝕣</a> │T <a target="_blank" href="help/gradeup_binsup.html"><span class='Function'>⍋</span></a> │Y │U │I <a target="_blank" href="help/first_pick.html"><span class='Function'>⊑</span></a> │O <a target="_blank" href="help/occurrencecount_progressiveindexof.html"><span class='Function'>⊒</span></a> │P ⍳ │<a target="_blank" href="help/beginblock.html"><span class='Brace'>{</span></a> <a target="_blank" href="help/identity_left.html"><span class='Function'>⊣</span></a> │<a target="_blank" href="help/endblock.html"><span class='Brace'>}</span></a> <a target="_blank" href="help/identity_right.html"><span class='Function'>⊢</span></a> │<a target="_blank" href="help/absolutevalue_modulus.html"><span class='Function'>|</span></a> │
│ │q <a target="_blank" href="help/reverse_rotate.html"><span class='Function'>⌽</span></a> │w <a target="_blank" href="help/leftargument.html">𝕨</a> │e <a target="_blank" href="help/markfirst_memberof.html"><span class='Function'>∊</span></a> │r <a target="_blank" href="help/prefixes_take.html"><span class='Function'>↑</span></a> │t <a target="_blank" href="help/sortup_and.html"><span class='Function'>∧</span></a> │y │u <a target="_blank" href="help/groupindices_group.html"><span class='Function'>⊔</span></a> │i <a target="_blank" href="help/firstcell_select.html"><span class='Function'>⊏</span></a> │o <a target="_blank" href="help/classify_indexof.html"><span class='Function'>⊐</span></a> │p <a target="_blank" href="help/pi.html"><span class='Number'>π</span></a> │[ <a target="_blank" href="help/define.html"><span class='Gets'>←</span></a> │] <span class='Gets'>→</span> │\ │
├───────┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴┬───┴──────┤
-│Caps │A ↖ │S <a target="_blank" href="help/currentfunction.html"><span class='Function'>𝕊</span></a> │D │F <a target="_blank" href="help/modifierleftoperand.html"><span class='Function'>𝔽</span></a> │G <a target="_blank" href="help/2-modifierrightoperand.html"><span class='Function'>𝔾</span></a> │H <a target="_blank" href="help/shiftbefore.html"><span class='Function'>«</span></a> │J │K <a target="_blank" href="help/under.html"><span class='Modifier2'>⌾</span></a> │L <a target="_blank" href="help/shiftafter.html"><span class='Function'>»</span></a> │<a target="_blank" href="help/header.html">:</a> <a target="_blank" href="help/nothing.html"><span class='Nothing'>·</span></a> │<span class='String'>&quot;</span> <a target="_blank" href="help/constant.html"><span class='Modifier'>˙</span></a> │Enter │
-│lock │a <a target="_blank" href="help/transpose_reorderaxes.html"><span class='Function'>⍉</span></a> │s <a target="_blank" href="help/currentfunction.html">𝕤</a> │d <a target="_blank" href="help/range_windows.html"><span class='Function'>↕</span></a> │f <a target="_blank" href="help/modifierleftoperand.html">𝕗</a> │g <a target="_blank" href="help/2-modifierrightoperand.html">𝕘</a> │h <a target="_blank" href="help/before_bind.html"><span class='Modifier2'>⊸</span></a> │j <a target="_blank" href="help/atop.html"><span class='Modifier2'>∘</span></a> │k <a target="_blank" href="help/over.html"><span class='Modifier2'>○</span></a> │l <a target="_blank" href="help/after_bind.html"><span class='Modifier2'>⟜</span></a> │<a target="_blank" href="help/nextbody.html">;</a> <a target="_blank" href="help/separator.html"><span class='Separator'>⋄</span></a> │<span class='String'>'</span> <a target="_blank" href="help/change.html"><span class='Gets'>↩</span></a> │ │
+│Caps │A ↖ │S <a target="_blank" href="help/currentfunction.html"><span class='Function'>𝕊</span></a> │D │F <a target="_blank" href="help/modifierleftoperand.html"><span class='Function'>𝔽</span></a> │G <a target="_blank" href="help/2-modifierrightoperand.html"><span class='Function'>𝔾</span></a> │H <a target="_blank" href="help/shiftbefore.html"><span class='Function'>«</span></a> │J │K <a target="_blank" href="help/under.html"><span class='Modifier2'>⌾</span></a> │L <a target="_blank" href="help/shiftafter.html"><span class='Function'>»</span></a> │<a target="_blank" href="help/header.html">:</a> <a target="_blank" href="help/nothing.html"><span class='Nothing'>·</span></a> │<a target="_blank" href="help/string.html"><span class='String'>&quot;</span></a> <a target="_blank" href="help/constant.html"><span class='Modifier'>˙</span></a> │Enter │
+│lock │a <a target="_blank" href="help/transpose_reorderaxes.html"><span class='Function'>⍉</span></a> │s <a target="_blank" href="help/currentfunction.html">𝕤</a> │d <a target="_blank" href="help/range_windows.html"><span class='Function'>↕</span></a> │f <a target="_blank" href="help/modifierleftoperand.html">𝕗</a> │g <a target="_blank" href="help/2-modifierrightoperand.html">𝕘</a> │h <a target="_blank" href="help/before_bind.html"><span class='Modifier2'>⊸</span></a> │j <a target="_blank" href="help/atop.html"><span class='Modifier2'>∘</span></a> │k <a target="_blank" href="help/over.html"><span class='Modifier2'>○</span></a> │l <a target="_blank" href="help/after_bind.html"><span class='Modifier2'>⟜</span></a> │<a target="_blank" href="help/nextbody.html">;</a> <a target="_blank" href="help/separator.html"><span class='Separator'>⋄</span></a> │<a target="_blank" href="help/character.html"><span class='String'>'</span></a> <a target="_blank" href="help/change.html"><span class='Gets'>↩</span></a> │ │
├────────┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──┬─┴──────────┤
│Shift │Z <a target="_blank" href="help/enlist_pair.html"><span class='Function'>⋈</span></a> │X <a target="_blank" href="help/rightargument.html"><span class='Function'>𝕏</span></a> │C │V <a target="_blank" href="help/gradedown_binsdown.html"><span class='Function'>⍒</span></a> │B <a target="_blank" href="help/ceiling_maximum.html"><span class='Function'>⌈</span></a> │N │M <a target="_blank" href="help/shape_notmatch.html"><span class='Function'>≢</span></a> │<a target="_blank" href="help/enclose_lessthan.html"><span class='Function'>&lt;</span></a> <a target="_blank" href="help/lessthanorequalto.html"><span class='Function'>≤</span></a> │<a target="_blank" href="help/merge_greaterthan.html"><span class='Function'>&gt;</span></a> <a target="_blank" href="help/greaterthanorequalto.html"><span class='Function'>≥</span></a> │<a target="_blank" href="help/predicate.html">?</a> <a target="_blank" href="help/export.html"><span class='Gets'>⇐</span></a> │Shift │
│ │z <a target="_blank" href="help/deshape_reshape.html"><span class='Function'>⥊</span></a> │x <a target="_blank" href="help/rightargument.html">𝕩</a> │c <a target="_blank" href="help/suffixes_drop.html"><span class='Function'>↓</span></a> │v <a target="_blank" href="help/sortdown_or.html"><span class='Function'>∨</span></a> │b <a target="_blank" href="help/floor_minimum.html"><span class='Function'>⌊</span></a> │n │m <a target="_blank" href="help/depth_match.html"><span class='Function'>≡</span></a> │<a target="_blank" href="help/separator.html"><span class='Separator'>,</span></a> <a target="_blank" href="help/join_jointo.html"><span class='Function'>∾</span></a> │<a target="_blank" href="help/namespacefield.html">.</a> <a target="_blank" href="help/solo_couple.html"><span class='Function'>≍</span></a> │<a target="_blank" href="help/indices_replicate.html"><span class='Function'>/</span></a> <a target="_blank" href="help/length_notequals.html"><span class='Function'>≠</span></a> │ │
diff --git a/docs/repl.js b/docs/repl.js
index 064e6ded..daff469d 100644
--- a/docs/repl.js
+++ b/docs/repl.js
@@ -159,7 +159,7 @@ let typeChar = (t, c, ev) => {
}
let syncls={ v:"Value", f:"Function", m:"Modifier", d:"Modifier2", n:"Number", g:"Gets", p:"Paren", b:"Bracket", k:"Brace", h:"Head", l:"Ligature", n:"Nothing", s:"Separator", c:"Comment", a:"String" };
-let keydesc='f+Conjugate;Add_f-Negate;Subtract_f×Sign;Multiply_f÷Reciprocal;Divide_f⋆Exponential;Power_f√Square Root;Root_f⌊Floor;Minimum_f⌈Ceiling;Maximum_f∧Sort Up;And_f∨Sort Down;Or_f¬Not;Span_f|Absolute Value;Modulus_f≤Less Than or Equal to_f<Enclose;Less Than_f>Merge;Greater Than_f≥Greater Than or Equal to_f=Rank;Equals_f≠Length;Not Equals_f≡Depth;Match_f≢Shape;Not Match_f⊣Identity;Left_f⊢Identity;Right_f⥊Deshape;Reshape_f∾Join;Join to_f≍Solo;Couple_f⋈Enlist;Pair_f↑Prefixes;Take_f↓Suffixes;Drop_f↕Range;Windows_f«Shift Before_f»Shift After_f⌽Reverse;Rotate_f⍉Transpose;Reorder axes_f/Indices;Replicate_f⍋Grade Up;Bins Up_f⍒Grade Down;Bins Down_f⊏First Cell;Select_f⊑First;Pick_f⊐Classify;Index of_f⊒Occurrence Count;Progressive Index of_f∊Mark First;Member of_f⍷Deduplicate;Find_f⊔Group Indices;Group_f!Assert;Assert with message_m˙Constant_m˜Self/Swap_d∘Atop_d○Over_d⊸Before/Bind_d⟜After/Bind_d⌾Under_d⊘Valences_d◶Choose_d⎊Catch_d⎉Rank_m˘Cells_d⚇Depth_m¨Each_m⌜Table_d⍟Repeat_m⁼Undo_m´Fold_m˝Insert_m`Scan_g←Define_g⇐Export_g↩Change_s⋄Separator_s,Separator_v.Namespace field_p(Begin expression_p)End expression_k{Begin block_k}End block_h;Next body_h:Header_h?Predicate_b⟨Begin list_b⟩End list_l‿Strand_n·Nothing_v•System_v𝕨Left argument_f𝕎Left argument (as function)_v𝕩Right argument_f𝕏Right argument (as function)_v𝕗Modifier left operand (as subject)_f𝔽Modifier left operand_v𝕘2-modifier right operand (as subject)_f𝔾2-modifier right operand_v𝕤Current function (as subject)_f𝕊Current function_m𝕣Current modifier_n¯Minus_nπPi_n∞Infinity_a@Null character_c#Comment'.split(/[\n_]/);
+let keydesc='f+Conjugate;Add_f-Negate;Subtract_f×Sign;Multiply_f÷Reciprocal;Divide_f⋆Exponential;Power_f√Square Root;Root_f⌊Floor;Minimum_f⌈Ceiling;Maximum_f∧Sort Up;And_f∨Sort Down;Or_f¬Not;Span_f|Absolute Value;Modulus_f≤Less Than or Equal to_f<Enclose;Less Than_f>Merge;Greater Than_f≥Greater Than or Equal to_f=Rank;Equals_f≠Length;Not Equals_f≡Depth;Match_f≢Shape;Not Match_f⊣Identity;Left_f⊢Identity;Right_f⥊Deshape;Reshape_f∾Join;Join to_f≍Solo;Couple_f⋈Enlist;Pair_f↑Prefixes;Take_f↓Suffixes;Drop_f↕Range;Windows_f«Shift Before_f»Shift After_f⌽Reverse;Rotate_f⍉Transpose;Reorder axes_f/Indices;Replicate_f⍋Grade Up;Bins Up_f⍒Grade Down;Bins Down_f⊏First Cell;Select_f⊑First;Pick_f⊐Classify;Index of_f⊒Occurrence Count;Progressive Index of_f∊Mark First;Member of_f⍷Deduplicate;Find_f⊔Group Indices;Group_f!Assert;Assert with message_m˙Constant_m˜Self/Swap_d∘Atop_d○Over_d⊸Before/Bind_d⟜After/Bind_d⌾Under_d⊘Valences_d◶Choose_d⎊Catch_d⎉Rank_m˘Cells_d⚇Depth_m¨Each_m⌜Table_d⍟Repeat_m⁼Undo_m´Fold_m˝Insert_m`Scan_g←Define_g⇐Export_g↩Change_s⋄Separator_s,Separator_v.Namespace field_p(Begin expression_p)End expression_k{Begin block_k}End block_h;Next body_h:Header_h?Predicate_b⟨Begin list_b⟩End list_l‿Strand_n·Nothing_v•System_v𝕨Left argument_f𝕎Left argument (as function)_v𝕩Right argument_f𝕏Right argument (as function)_v𝕗Modifier left operand (as subject)_f𝔽Modifier left operand_v𝕘2-modifier right operand (as subject)_f𝔾2-modifier right operand_v𝕤Current function (as subject)_f𝕊Current function_m𝕣Current modifier_n¯Minus_nπPi_n∞Infinity_a@Null character_a\'Character_a\"String_c#Comment'.split(/[\n_]/);
let kk=Array.from('`123456890-=~!@#$%^&*()_+qwertuiop[]QWERTIOP{}asdfghjkl;ASFGHKL:"zxcvbm,./ZXVBM<>? \'');
let kv=Array.from('˜˘¨⁼⌜´˝∞¯•÷׬⎉⚇⍟◶⊘⎊⍎⍕⟨⟩√⋆⌽𝕨∊↑∧⊔⊏⊐π←→↙𝕎⍷𝕣⍋⊑⊒⍳⊣⊢⍉𝕤↕𝕗𝕘⊸∘○⟜⋄↖𝕊𝔽𝔾«⌾»·˙⥊𝕩↓∨⌊≡∾≍≠⋈𝕏⍒⌈≢≤≥⇐‿↩');
let keys={}, revkeys={}, primhelp={}, helpurl={};
diff --git a/help/README.md b/help/README.md
index 604e37f7..6e074c95 100644
--- a/help/README.md
+++ b/help/README.md
@@ -96,3 +96,5 @@
| `∞` | [Infinity](infinity.md) |
| `@` | [Null Character](nullcharacter.md) |
| `#` | [Comment](comment.md) |
+| `'` | [Character](character.md) |
+| `"` | [String](string.md) |
diff --git a/help/character.md b/help/character.md
new file mode 100644
index 00000000..7f1e3487
--- /dev/null
+++ b/help/character.md
@@ -0,0 +1,10 @@
+*View this file with results and syntax highlighting [here](https://mlochbaum.github.io/BQN/help/character.html).*
+
+# Single Quote (`'`)
+
+## `'c'`: Character
+[→full documentation](../doc/syntax.md#constants)
+
+A character literal whose value is the character between quotes. Any character can be used, even `'` and newline.
+
+ 'a'‿'b'
diff --git a/help/string.md b/help/string.md
new file mode 100644
index 00000000..a8a4741f
--- /dev/null
+++ b/help/string.md
@@ -0,0 +1,12 @@
+*View this file with results and syntax highlighting [here](https://mlochbaum.github.io/BQN/help/string.html).*
+
+# Double Quote (`"`)
+
+## `"str"`: String
+[→full documentation](../doc/syntax.md#constants)
+
+Literal notation for a string, or list of characters. Double quotes must be escaped by writing them twice. Any other characters can be included directly.
+
+ 2 ⊑ "string"
+
+ 2 ⊑ "ab""cd"