aboutsummaryrefslogtreecommitdiff
path: root/commentary
diff options
context:
space:
mode:
authorMarshall Lochbaum <mwlochbaum@gmail.com>2022-09-03 08:02:35 -0400
committerMarshall Lochbaum <mwlochbaum@gmail.com>2022-09-03 08:02:35 -0400
commit18054b581d332cc9142cdd0ff1c9bec38d92aef5 (patch)
treea8d61a6e318535944d02698772eabf1d3993561b /commentary
parent53c2bdfac6f48ca6be9fee718d9822f710826d06 (diff)
Swapped + for -
Diffstat (limited to 'commentary')
-rw-r--r--commentary/why.md2
1 files changed, 1 insertions, 1 deletions
diff --git a/commentary/why.md b/commentary/why.md
index 03ef81fd..69f5c6c6 100644
--- a/commentary/why.md
+++ b/commentary/why.md
@@ -134,6 +134,6 @@ It gets worse.
│0│1│2│
└─┴─┴─┘
-This should not be possible. `f` here doesn't behave like `+`, or quite like `|.`: in fact there is no function that does what `f` does. The result of `f` depends on the entire argument, but `<@f` 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.
+This should not be possible. `f` here doesn't behave like `-`, or quite like `|.`: in fact there is no function that does what `f` does. The result of `f` depends on the entire argument, but `<@f` 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.
The cause is that the value of `f` here—a named `g` function—is not just a name, but also comes with a function rank. The function rank is set by the assignment `f =: g`, and doesn't change along with `g`. Calling `f` doesn't rely on the rank, but `@` does, so `<@f` effectively becomes `<@|."-`, mixing the two versions of `g`. The only explanation I have for this one is implementation convenience.