aboutsummaryrefslogtreecommitdiff
path: root/docs/doc/paradigms.html
diff options
context:
space:
mode:
authorMarshall Lochbaum <mwlochbaum@gmail.com>2021-12-12 11:29:59 -0500
committerMarshall Lochbaum <mwlochbaum@gmail.com>2021-12-12 11:29:59 -0500
commit4a6ad25256f4512573a87fe6f1a54fbabc86c2f6 (patch)
treec7131019c36f3800d7f5ee0b60081d0d8d453fff /docs/doc/paradigms.html
parent27c5057cc5b09f29f0a5962f5ba837b217b5ecb0 (diff)
Some links to the section on mutability
Diffstat (limited to 'docs/doc/paradigms.html')
-rw-r--r--docs/doc/paradigms.html2
1 files changed, 1 insertions, 1 deletions
diff --git a/docs/doc/paradigms.html b/docs/doc/paradigms.html
index a0305aa9..38093372 100644
--- a/docs/doc/paradigms.html
+++ b/docs/doc/paradigms.html
@@ -10,7 +10,7 @@
<p>When programming in BQN, I almost always use array, tacit, and (slightly impure) functional styles, and encapsulate code in medium or large projects using namespaces. I sometimes use object-oriented or imperative programming in addition to these.</p>
<h2 id="typing"><a class="header" href="#typing">Typing</a></h2>
<p>BQN is a <strong>dynamically typed</strong> language with a coarse <a href="types.html">type system</a> that only distinguishes types when the difference is blindingly obvious. There is a single numeric type and a single unicode character type. A fast implementation such as CBQN will check to see when it can represent the data with a smaller type than the one offered by the language. BQN usually avoids implicit type conversion, with the exception that many primitives automatically convert atoms to unit arrays. The fact that a data value can be applied as a function to return itself could also be considered an implicit conversion.</p>
-<p>BQN has no &quot;pointer&quot; or &quot;reference&quot; type, and uses <strong>automatic memory management</strong>. Its data types are <strong>immutable</strong> while operations and namespaces are mutable; mutable data can create reference loops, which the implementation must account for in garbage collection but the programmer doesn't have to worry about.</p>
+<p>BQN has no &quot;pointer&quot; or &quot;reference&quot; type, and uses <strong>automatic memory management</strong>. Its data types are <strong>immutable</strong> while operations and namespaces are <a href="lexical.html#mutation">mutable</a>; mutable data can create reference loops, which the implementation must account for in garbage collection but the programmer doesn't have to worry about.</p>
<p>Dynamic types and garbage collection introduce overhead relative to a statically-typed or manually managed language. The impact of this overhead can be greatly reduced with array programming, because an array of numbers or characters can be stored as a single unit of memory and processed with functions specialized to its element type.</p>
<h2 id="styles"><a class="header" href="#styles">Styles</a></h2>
<p>BQN is designed for <strong>array</strong> programming. The array is its only built-in collection type and it has many primitives designed to work with arrays.</p>