On Wednesday, 5 August 2015 at 19:56:37 UTC, Timon Gehr wrote:
On 08/05/2015 07:32 PM, deadalnix wrote:
Mathematical language is geared toward generality and
correctness, not
practicality. That makes sens in the context of math, that do
not in the
context of every day programming.
I don't see what you are trying to get at here, but I guess it
is almost entirely unrelated to choosing a notation for string
concatenation.
Well, I don't think practicality is the main issue, but the
mnemonic aspect of syntax is important.
It is not unreasonable to make the identity of
operators/functions consist of both name and parameter types like
in C++ and D. So you don't have "+" as the operator name, you
have "+(int,int)" and "+(string,string)".
If one makes mathematical properties intrinsic to untyped part of
the name then a lot of overloading scenarios break down e.g. for
non-euclidean types.
It has been argued that functional languages would benefit from
teaching functional programming in a less mathematical manner
(e.g. talk about "callbacks" rather than "monads" etc):
https://youtu.be/oYk8CKH7OhE