Just another example of missing string interpolation
kdevel
kdevel at vogtner.de
Fri Oct 13 18:07:07 UTC 2023
On Friday, 13 October 2023 at 17:38:23 UTC, bachmeier wrote:
> On Friday, 13 October 2023 at 15:34:59 UTC, kdevel wrote:
>
>> Your functions `foo` and `bar` both not only make calls to
>> `interp` but they
>> also necessarily contain, in order to succeed, the name of the
>> variable.
>
> Yes
But then you can't re-use `foo` with another string, e.g.
"String needing interpolation to insert ${yold} and ${ynew}."
>> Your approach creates more dependencies between unrelated
>> components than necessary.
>
> Then don't use it? The goal of programming is to get the right
> output.
Your code does not meet that requirement.
>> How do you unittest `foo` and `bar`?
>
> The same as any other function.
Having the signature of `foo` and `bar` alone I am not able to
write a unittest.
>> The dependencies can easily be avoided if `foo` and `bar` only
>> returned the value of the computation, the results are stored
>> in the AA given as `subs` in the call to `interp`.
>
> I prefer less complicated code to code that imposes arbitrary
> restrictions.
In your code of `foo` and `bar` you have to assemble the AA and
call `interp` twice compared to once. I would call my approach
less complicated and my `foo` and `bar` versions do not suffer
from the arbitrary restriction of beeing applicable only to
strings having a predefined variable name.
More information about the Digitalmars-d
mailing list