I'd love to see DScript one day ...
ketmar via Digitalmars-d
digitalmars-d at puremagic.com
Tue Jun 14 06:09:58 PDT 2016
On Tuesday, 14 June 2016 at 12:57:01 UTC, Chris wrote:
> Dynamic typing should only be allowed to the extend `auto`
> works:
>
> var name = "Herbert"
> // ...
> name = "Brown" // ok
>
> name = 5 // error
this is still error-prone. why don't just do static typing
instead, and introduce `anything` type, which is "variant", and
can hold literally anything? with `auto` you'll barely need to
think about types at all.
and yep, compiler can turn runtime typechecks in compile-time
specialization — kinda like templates. so we'll have something
like this:
// this does runtime type checks
auto add (auto a, auto b) { return a+b; }
// this does compile-time specialization, but
// can also be executed by very straightforward
// interpreter
auto add2 (auto a, auto b) {
if (typeof(a) is int && typeof(b) is int) {
// here compiler knows actual types of `a` and `b`
return a+b;
} else {
throw new Error("wut?!");
}
}
More information about the Digitalmars-d
mailing list