squeal
squeal copied to clipboard
LINQ style queries in Squeal?
The question recently was asked at work:
Have you considered putting the select at the end instead of the beginning? C#’s LINQ ended up making that change in its approach to a SQL-like DSL. Not sure it would help but I was curious if you considered that approach or not.
I hadn't considered it at all but in fact, with more thorough use of the reverse function application operator (&)
, Squeal already supports this LINQ style:
-- LINQ style
from (table #scores)
& where_ (#score .> 80)
& groupBy #winner
& select_
( #winner :*
max_ #score `as` #best_score
)
-- SQL style
select_
( #winner :*
max_ #score `as` #best_score
)
( from (table #scores)
& where_ (#score .> 80)
& groupBy #winner
)
Brilliant 👏🏻