aboutsummaryrefslogtreecommitdiff
path: root/docs/commentary/why.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/commentary/why.html')
-rw-r--r--docs/commentary/why.html2
1 files changed, 1 insertions, 1 deletions
diff --git a/docs/commentary/why.html b/docs/commentary/why.html
index 1fe07371..669f1b34 100644
--- a/docs/commentary/why.html
+++ b/docs/commentary/why.html
@@ -95,5 +95,5 @@
<span class='Value'>│</span><span class='Number'>0</span><span class='Value'>│</span><span class='Number'>1</span><span class='Value'>│</span><span class='Number'>2</span><span class='Value'>│</span>
<span class='Value'>└─┴─┴─┘</span>
</pre>
-<p>This should not be possible. <code><span class='Value'>f</span></code> here doesn't behave like <code><span class='Function'>+</span></code>, or quite like <code><span class='Function'>|</span><span class='Value'>.</span></code>: in fact there is no function that does what <code><span class='Value'>f</span></code> does. The result of <code><span class='Value'>f</span></code> depends on the entire argument, but <code><span class='Function'>&lt;</span><span class='String'>@</span><span class='Value'>f</span></code> encloses rank 0 components! How long would it take you to debug an issue like this? It's rare, but I've run into it in my own code and seen similar reports on the forums.</p>
+<p>This should not be possible. <code><span class='Value'>f</span></code> here doesn't behave like <code><span class='Function'>-</span></code>, or quite like <code><span class='Function'>|</span><span class='Value'>.</span></code>: in fact there is no function that does what <code><span class='Value'>f</span></code> does. The result of <code><span class='Value'>f</span></code> depends on the entire argument, but <code><span class='Function'>&lt;</span><span class='String'>@</span><span class='Value'>f</span></code> encloses rank 0 components! How long would it take you to debug an issue like this? It's rare, but I've run into it in my own code and seen similar reports on the forums.</p>
<p>The cause is that the value of <code><span class='Value'>f</span></code> here—a named <code><span class='Value'>g</span></code> function—is not just a name, but also comes with a function rank. The function rank is set by the assignment <code><span class='Value'>f</span> <span class='Function'>=</span><span class='Head'>:</span> <span class='Value'>g</span></code>, and doesn't change along with <code><span class='Value'>g</span></code>. Calling <code><span class='Value'>f</span></code> doesn't rely on the rank, but <code><span class='String'>@</span></code> does, so <code><span class='Function'>&lt;</span><span class='String'>@</span><span class='Value'>f</span></code> effectively becomes <code><span class='Function'>&lt;</span><span class='String'>@</span><span class='Function'>|</span><span class='Value'>.</span><span class='String'>&quot;</span><span class='Function'>-</span></code>, mixing the two versions of <code><span class='Value'>g</span></code>. The only explanation I have for this one is implementation convenience.</p>