CAS Best Practices

We are not going to abandon any of these print(names(Base.Math)). I understand how that impression may have been conveyed, inadvertently. What is being considered is how to respect the numerical math functions without abandoning the symbolic/theoretical math functions that may carry the same names in ordinary discourse (hence the tangling of notions). It is my guess that we will find a way to distinguish the desired context (symbolic, numeric, some of each) for any occurrence of the named function – there are multiple avenues for this. The simplest way to distinguish the Julia numerical square_root from the more constructively mathematical symbolic square_root would be use the name from Base.Math as the numerical function and to use its titlecase spelling as the symbolic function sqrt(2) !== Sqrt(2). That leaves out a mixed version (maybe Sqrt is mixed, and purely symbolic is a context, as with let, and do blocks).

see next post by @DNF for one of the more familiar approaches within Julia