Linq and the like

Don Clugston dac at nospam.com.au
Mon Feb 4 22:27:59 PST 2008


bearophile wrote:
> Michiel Helvensteijn:
>> Can't D already do this?
> 
> D 2.x has closures, that's a good starting point, but some things are missing still:
> - A built-in support of the methods LINQ accesses in AAs, Arrays, etc.
> - Some external bridge, so it can be used on DBMSs too.
> - Some sugar for its short syntax, you can see it here:
> http://en.wikipedia.org/wiki/Language_Integrated_Query#Language_Extensions
> - Multi-processing management for the parallel LINQ.
> 
> So as you can see it requires many more things, that's why it's actually useful.
> 
> 
>> * While I agree that when a foreach-loop is possible, you should use it, it
>> can never completely replace the for-loop, because it is simply less
>> powerful. Any number of sorting/searching algorithms still need for-loops.
> 
> I agree. And LINQ syntax is slow, so you can't use it in the inner loop of something that has to run fast. The basic idea is that D can have both high-level constructs beside keeping the low-level ones.
> 
> Bye,
> bearophile

AFAICT, there's nothing in LINQ that D couldn't (in theory*) do with a library 
-- today implemented using ctfe and mixins, in future with the front end 
replaced by macros.

IMHO, LINQ is a classic example of something that should be in a library. If it 
can't be implemented in a library, then the solution is to make the language 
more powerful, not to shove the library into the compiler.

* not in practice, mainly because of the compiler CTFE bug: temporary strings 
never get deleted, so CTFE runs out of memory extremely quickly.



More information about the Digitalmars-d mailing list