Am I evil for this?
jmh530
john.michael.hall at gmail.com
Fri Oct 14 20:24:47 UTC 2022
On Friday, 14 October 2022 at 18:29:10 UTC, Walter Bright wrote:
> [snip]
> True that documentation often (always?) lies about what the
> code actually does. But the causes of this are usually because
> of programmer laziness and/or error in documenting it correctly.
>
> But operating overloading for non-arithmetic purposes is
> *deliberately* doing the unexpected.
What is your opinion about R's custom infix binary operators?
(ignoring that R is dynamically typed)
So for instance, you can make a function
```
`%foo%` <- function(x, y) { #does something }
```
and use it like `x %foo% y`
The surrounding `%` lets the user know that anything could be
happening in there. However, it doesn't have to just be some
string, it could be anything. For instance, R comes with %*%
built-in for matrix multiplication and a few others.
From D's perspective, it doesn't really make sense to use a
string since we have UFCS and it is just as easy to use
`x.foo(y)` [in R you would have to do foo(x, y) if this feature
didn't exist]. However, it is useful when it is some symbol that
would otherwise have a longer name. Code that is full of
`X.matmul(Y)` is harder to read than `X %*% Y`.
More information about the Digitalmars-d
mailing list