How can I dump an expression into log and execute it

Dicebot via Digitalmars-d digitalmars-d at puremagic.com
Mon Jul 14 09:53:15 PDT 2014


On Monday, 14 July 2014 at 16:10:59 UTC, Timon Gehr wrote:
>> Same principle of surprise minimization. Reader expects 
>> arbitrary
>> actions done by function call.
>
> No way.

?

>> Reader expects arithmetical semantics
>
> Right, arithmetical semantics, which for built-in '+' can reach 
> from wrap-around behaviour to saturated behaviour which is not 
> even associative. Knowing what '+' does without being very 
> aware what types its operands are is a pipe dream.

I don't mean low level semantics, just very simple "this adds two 
numbers" semantics - something you can ignore and abuse in D 
(though I don't know if it is even possible to define such 
constraints reasonably)

>> from arithmetical operations.
>
> '+' is opBinary!"+" and it is just another function name. There 
> don't need to be 'anti-abuse' mechanics in place for this name 
> and not for others.

Do you like boost::spirit? :)

>> I don't see "you can change anything"
>
> D does not allow you to e.g. redefine what the built-in 
> operators do on built-in types, so where is this complaint 
> coming from?

D is decent language in that regard - I am speaking about 
imaginary language that does not constraint any semantics and 
provides perfect expressive power.

> Languages that do not make built-in operators syntactically 
> special are way better off regarding this issue because this 
> way the question of automatically limiting implementations to 
> match naming is even more obviously pointless.

You do realize this statement creates self-referential cycle and 
is thus pointless? :)

> In any case, what are you arguing against here? Lexical 
> scoping? Named definitions? Module systems? :o)

macros that can't be recognized as macros at call site based on 
pure syntax


More information about the Digitalmars-d mailing list