it's because Nim procecedure overloads are determined at compiletime, so it's 
not possible to switch between them based on a runtime value (the exception 
being the deprecated methods).

Function programming languages have compiler smart enough to look through these 
small functions with overloads on runtime parameters, to then generate 
reasonable (or just slower) imperative code. In any case, this is an 
abstraction away from how computers actually work, from where the concept of a 
proc how the Nim compiler and procedural/imperative programming languages sees 
it is derived. It's not called proc in Nim for no reason, as it makes more 
sense to call it a procedure or a subroutine than a function. In Nim there's 
also func, which is more like a mathematical function, because it disallows 
side effects, but it's still not there.

Reply via email to