> Not to nitpick, but Linq to XML is based on Linq to objects entirely (no
> IQueryable, juste vanilla IEnumerables).
>

You're correct.



> To my - naive - knowledge of clojure macros, writing an provider in
> clojure would be a lot easier than it is in C# (or even with F# quotations).
>
>
I would agree with that, but what is missing with macros is a formalized
specification. With IQueryable we can concat queries, and generalize
algorithms completely separate from the input provider.

For example:

public static IQueryable<Person> Over21(this IQueryable<Person> q)
{
return q.Where(p => p.age > 21);
}


Now in C# we can do this:

var people = database.Over21().ToList(); // Compiles to SQL WHERE clauses
var people = vector.Over21().ToList(); // Compiles to an in-memory filter

So this is the power of IQueryable. It decouples the query code from the
provider.

Datalog was brought up earlier, I wonder if it could be extended to provide
this sort of interface.

Timothy

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to