November 11, 2013 Re: std.templatecons ready for comments | ||||
---|---|---|---|---|
| ||||
Posted in reply to Dicebot | On Sunday, 10 November 2013 at 16:37:30 UTC, Dicebot wrote:
> (x-post from .announce:)
>
> Had a very quick run-through the provided functionality. Looks
> nice and has some of utilities I tend to reinvent in my own code
> when doing meta-programming. Though I'd prefer to initiate
> creation of nested `std.meta` package and move such stuff there
> instead of adding yet another plain module. Also I am trying to
> negotiate with Andrei & Walter into deciding std.typetuple fate
> which may impact implementation of such module quite a lot :)
I agree. I have a partial (most of the big stuff) port of std.algorithm and std.functional for 'Seq's or whatever we want to call them now, I'll try and whip it up in to a std.meta module with appropriate sub-modules ASAP for discussion/comparison. I am quite pleased with what I've got so far, hopefully I'll have it ready to show during the next week.
|
November 11, 2013 Re: std.templatecons ready for comments | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ilya Yaroshenko | 10.11.2013 19:30, Ilya Yaroshenko пишет: > Hello, All! > > std.templatecons: Functional style template constructors. > > Documentation: > http://9il.github.io/phobosx/std.templatecons.html > > Source: > https://github.com/9il/phobosx/blob/master/std/templatecons.d > > Note: > dmd >= 2.64 required > > Please destroy! > > I am sorry for my English in sources/docs. > > Best Regards, > Ilya No more plain modules, please. Call it `std.meta.<something>`. I'm against of including a few range-like (i.e. like `std.range` and `std.algorithm` stuff) templates like `RepeatExactly`, `templateStaticMap`, and `templateFilter`. First these are generic tuple manipulation templates belong to `std.meta.generictuple` (or how it's called now). Second I'd like to see one-to-one analog of all (most) applicable range operation functions for generic tuples in Phobos by merging in e.g. [1] As for `std.functional`-like template I can't tell much as the only ones http://denis-sh.bitbucket.org/unstandard/unstd.templates.html [1] http://denis-sh.bitbucket.org/unstandard/unstd.generictuple.html -- Денис В. Шеломовский Denis V. Shelomovskij |
November 11, 2013 Re: std.templatecons ready for comments | ||||
---|---|---|---|---|
| ||||
Posted in reply to Denis Shelomovskij | 12.11.2013 0:33, Denis Shelomovskij пишет: > 10.11.2013 19:30, Ilya Yaroshenko пишет: >> Hello, All! >> >> std.templatecons: Functional style template constructors. >> >> Documentation: >> http://9il.github.io/phobosx/std.templatecons.html >> >> Source: >> https://github.com/9il/phobosx/blob/master/std/templatecons.d >> >> Note: >> dmd >= 2.64 required >> >> Please destroy! >> >> I am sorry for my English in sources/docs. >> >> Best Regards, >> Ilya > > No more plain modules, please. Call it `std.meta.<something>`. > > I'm against of including a few range-like (i.e. like `std.range` and > `std.algorithm` stuff) templates like `RepeatExactly`, > `templateStaticMap`, and `templateFilter`. First these are generic tuple > manipulation templates belong to `std.meta.generictuple` (or how it's > called now). Second I'd like to see one-to-one analog of all (most) > applicable range operation functions for generic tuples in Phobos by > merging in e.g. [1] > > As for `std.functional`-like template I can't tell much as the only ones > > http://denis-sh.bitbucket.org/unstandard/unstd.templates.html > [1] http://denis-sh.bitbucket.org/unstandard/unstd.generictuple.html > Sorry, accidental Ctrl+Enter. So let me continue: As for `std.functional`-like template I can't tell much as the only ones I really use are `unaryFun`/`binaryFun` and its string-to-function abilities which I also need for templates and which I also want to have in Phobos (see [2]). [2] http://denis-sh.bitbucket.org/unstandard/unstd.templates.html -- Денис В. Шеломовский Denis V. Shelomovskij |
November 11, 2013 Re: std.templatecons ready for comments | ||||
---|---|---|---|---|
| ||||
Posted in reply to John Colvin | On Monday, 11 November 2013 at 17:35:26 UTC, John Colvin wrote:
> I agree. I have a partial (most of the big stuff) port of std.algorithm and std.functional for 'Seq's or whatever we want to call them now, I'll try and whip it up in to a std.meta module with appropriate sub-modules ASAP for discussion/comparison. I am quite pleased with what I've got so far, hopefully I'll have it ready to show during the next week.
I am proposing to implement superseding package/modules in term of template argument list with no auto-expansion to avoid having two distinct types for that and making signatures a bit more hygienic. Will that be much of a burden? :)
|
November 11, 2013 Re: std.templatecons ready for comments | ||||
---|---|---|---|---|
| ||||
Posted in reply to Denis Shelomovskij | On Monday, 11 November 2013 at 20:33:37 UTC, Denis Shelomovskij wrote:
> 10.11.2013 19:30, Ilya Yaroshenko пишет:
>> Hello, All!
>>
>> std.templatecons: Functional style template constructors.
>>
>> Documentation:
>> http://9il.github.io/phobosx/std.templatecons.html
>>
>> Source:
>> https://github.com/9il/phobosx/blob/master/std/templatecons.d
>>
>> Note:
>> dmd >= 2.64 required
>>
>> Please destroy!
>>
>> I am sorry for my English in sources/docs.
>>
>> Best Regards,
>> Ilya
>
> No more plain modules, please. Call it `std.meta.<something>`.
>
> I'm against of including a few range-like (i.e. like `std.range` and `std.algorithm` stuff) templates like `RepeatExactly`, `templateStaticMap`, and `templateFilter`. First these are generic tuple manipulation templates belong to `std.meta.generictuple` (or how it's called now). Second I'd like to see one-to-one analog of all (most) applicable range operation functions for generic tuples in Phobos by merging in e.g. [1]
>
> As for `std.functional`-like template I can't tell much as the only ones
>
> http://denis-sh.bitbucket.org/unstandard/unstd.templates.html
> [1] http://denis-sh.bitbucket.org/unstandard/unstd.generictuple.html
Can we stop calling this tuples already ? I think one of the thing that everybody can agree upon is that calling that tuples is confusing everybody (including me).
|
November 11, 2013 Re: std.templatecons ready for comments | ||||
---|---|---|---|---|
| ||||
Posted in reply to Dicebot | On Monday, 11 November 2013 at 20:37:49 UTC, Dicebot wrote:
> On Monday, 11 November 2013 at 17:35:26 UTC, John Colvin wrote:
>> I agree. I have a partial (most of the big stuff) port of std.algorithm and std.functional for 'Seq's or whatever we want to call them now, I'll try and whip it up in to a std.meta module with appropriate sub-modules ASAP for discussion/comparison. I am quite pleased with what I've got so far, hopefully I'll have it ready to show during the next week.
>
> I am proposing to implement superseding package/modules in term of template argument list with no auto-expansion to avoid having two distinct types for that and making signatures a bit more hygienic. Will that be much of a burden? :)
My approach is to use two distinct types, Seq and Pack. The combination is actually quite acceptable to use, but I'm open to alternatives. To be honest, I used to feel that auto-expanding tuples were a pain, but once one has decent tools to work with - like I'm trying to create - it isn't much of a problem.
Some sort of syntax to create non-expanding tuples, whether as a builtin concept or sugar for a library construct* would be nice, otherwise the already ugly heavy nested parenthesis are made worse by having Pack!(...) everywhere. ';' delimited parameter lists would be one way to do this quite nicely IMO, although there are also a good number of other characters that would be unambiguous in that concept.
*preferable, obviously.
To answer your question directly: My work uses auto-expanding Seqs quite a bit, but I can't think of anything that couldn't be immediately re-implemented with non-expanding. Without a nice syntax like ';' delimited parameter lists, it would probably be uglier than it currently can be with auto-expanding.
|
November 11, 2013 Re: std.templatecons ready for comments | ||||
---|---|---|---|---|
| ||||
Posted in reply to Denis Shelomovskij | On Monday, 11 November 2013 at 20:33:37 UTC, Denis Shelomovskij wrote:
> 10.11.2013 19:30, Ilya Yaroshenko пишет:
>> Hello, All!
>>
>> std.templatecons: Functional style template constructors.
>>
>> Documentation:
>> http://9il.github.io/phobosx/std.templatecons.html
>>
>> Source:
>> https://github.com/9il/phobosx/blob/master/std/templatecons.d
>>
>> Note:
>> dmd >= 2.64 required
>>
>> Please destroy!
>>
>> I am sorry for my English in sources/docs.
>>
>> Best Regards,
>> Ilya
>
> No more plain modules, please. Call it `std.meta.<something>`.
>
> I'm against of including a few range-like (i.e. like `std.range` and `std.algorithm` stuff) templates like `RepeatExactly`, `templateStaticMap`, and `templateFilter`. First these are generic tuple manipulation templates belong to `std.meta.generictuple` (or how it's called now). Second I'd like to see one-to-one analog of all (most) applicable range operation functions for generic tuples in Phobos by merging in e.g. [1]
>
> As for `std.functional`-like template I can't tell much as the only ones
>
> http://denis-sh.bitbucket.org/unstandard/unstd.templates.html
> [1] http://denis-sh.bitbucket.org/unstandard/unstd.generictuple.html
How would you feel about me cannibalising parts of that for my attempt at making a proper std.meta module? Conveniently it seems that we use similar core ideas, but have implemented disjoint sets of functionality.
|
November 11, 2013 Re: std.templatecons ready for comments | ||||
---|---|---|---|---|
| ||||
Posted in reply to John Colvin | On Monday, 11 November 2013 at 22:18:27 UTC, John Colvin wrote:
> On Monday, 11 November 2013 at 20:33:37 UTC, Denis Shelomovskij wrote:
>> 10.11.2013 19:30, Ilya Yaroshenko пишет:
>>> Hello, All!
>>>
>>> std.templatecons: Functional style template constructors.
>>>
>>> Documentation:
>>> http://9il.github.io/phobosx/std.templatecons.html
>>>
>>> Source:
>>> https://github.com/9il/phobosx/blob/master/std/templatecons.d
>>>
>>> Note:
>>> dmd >= 2.64 required
>>>
>>> Please destroy!
>>>
>>> I am sorry for my English in sources/docs.
>>>
>>> Best Regards,
>>> Ilya
>>
>> No more plain modules, please. Call it `std.meta.<something>`.
>>
>> I'm against of including a few range-like (i.e. like `std.range` and `std.algorithm` stuff) templates like `RepeatExactly`, `templateStaticMap`, and `templateFilter`. First these are generic tuple manipulation templates belong to `std.meta.generictuple` (or how it's called now). Second I'd like to see one-to-one analog of all (most) applicable range operation functions for generic tuples in Phobos by merging in e.g. [1]
>>
>> As for `std.functional`-like template I can't tell much as the only ones
>>
>> http://denis-sh.bitbucket.org/unstandard/unstd.templates.html
>> [1] http://denis-sh.bitbucket.org/unstandard/unstd.generictuple.html
>
> How would you feel about me cannibalising parts of that for my attempt at making a proper std.meta module? Conveniently it seems that we use similar core ideas, but have implemented disjoint sets of functionality.
*somewhat disjoint
|
November 15, 2013 Re: std.templatecons ready for comments | ||||
---|---|---|---|---|
| ||||
Posted in reply to John Colvin | 12.11.2013 2:19, John Colvin пишет: > On Monday, 11 November 2013 at 22:18:27 UTC, John Colvin wrote: >> On Monday, 11 November 2013 at 20:33:37 UTC, Denis Shelomovskij wrote: >>> 10.11.2013 19:30, Ilya Yaroshenko пишет: >>>> Hello, All! >>>> >>>> std.templatecons: Functional style template constructors. >>>> >>>> Documentation: >>>> http://9il.github.io/phobosx/std.templatecons.html >>>> >>>> Source: >>>> https://github.com/9il/phobosx/blob/master/std/templatecons.d >>>> >>>> Note: >>>> dmd >= 2.64 required >>>> >>>> Please destroy! >>>> >>>> I am sorry for my English in sources/docs. >>>> >>>> Best Regards, >>>> Ilya >>> >>> No more plain modules, please. Call it `std.meta.<something>`. >>> >>> I'm against of including a few range-like (i.e. like `std.range` and >>> `std.algorithm` stuff) templates like `RepeatExactly`, >>> `templateStaticMap`, and `templateFilter`. First these are generic >>> tuple manipulation templates belong to `std.meta.generictuple` (or >>> how it's called now). Second I'd like to see one-to-one analog of all >>> (most) applicable range operation functions for generic tuples in >>> Phobos by merging in e.g. [1] >>> >>> As for `std.functional`-like template I can't tell much as the only ones >>> >>> http://denis-sh.bitbucket.org/unstandard/unstd.templates.html >>> [1] http://denis-sh.bitbucket.org/unstandard/unstd.generictuple.html >> >> How would you feel about me cannibalising parts of that for my attempt >> at making a proper std.meta module? Conveniently it seems that we use >> similar core ideas, but have implemented disjoint sets of functionality. > > *somewhat disjoint Use it as you wish. Also feel free to e-mail me with questions/functionality requests (or open issues for Unstandard project). Just in case you want we also could make `unstd.meta` and then push to Phobos. -- Денис В. Шеломовский Denis V. Shelomovskij |
Copyright © 1999-2021 by the D Language Foundation