On Thursday, 22 August 2013 at 12:50:06 UTC, Dicebot wrote:
On Thursday, 22 August 2013 at 11:19:55 UTC, deadalnix wrote:
A sequence is an ordered set. You can have types, alias and values sequences. Values sequence can be runtime or compile time.

typeof(args) returns T, which is a type sequence (not a type !)
typeid(args) is invalid.

1) You propose typeof to result "not a type" entity. Well, if it can be result of typeof, can be used to declare variables and can be aliased - what makes it different from a type?


It is a sequence of types. It can be used to declare a sequence of variables.

2) is(typeof(tuple(42, 42)) == typeof(ctseq(42, 42))) == ? (assuming typeof(args) == T and you don't make distinction between runtime and compile-time value sequences.


In my proposal, tuple are a library construct. The proposal introduce the necessary tooling to implement them nicely.

is(typeof(42, 42) == (int, int));
is(typeof(tuple(42, 42)) == <a library defined struct>);

It could be defined as follow :

struct Tuple(T...) {
    T expand;
    alias expand this;
}

Also you don't seem to cover mixed sequences which are essential to D templates.

Theses are alias sequences.

Reply via email to