2
\$\begingroup\$

There are a good deal of challenges that disallow the use of built-in operations and I was wondering if we should consider implicit operations built-ins.

For example in Brain-Flak two things that are next to each other will be added implicitly, the program

({}{})

adds two numbers. However nowhere is there a character or group of characters that says "add" numbers. It adds because that when {} is placed next to {} it means the sum of the two. If someone were to ask a question "Add without builtins" would this be a valid answer?

Now of course this seems like a rather narrow example but other languages can have more complex implicit functions. It would not be unreasonable for a language that deals with matrices to have implicit matrix multiplication. Or a language that deals with sets to have implicit set union. Languages with more than types can even have implicit operations for every combination of the types. Since there is often no way to get around banning these as builtins for a particular challenge is akin to banning the entire language.

Do implicit operations count as built-ins?

\$\endgroup\$
10
\$\begingroup\$

I wouldn't consider this an implicit operation. It's just that your operator is the empty string (or concatenation). In Mathematica I can often multiply things by writing them next to each other: 2x is the same as 2*x. I'm still using the built-in multiplication operator but in its concatenation form. Yes, it's still a built-in, regardless of whether your syntax requires an actual character to invoke it or not.

\$\endgroup\$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .