
Hello Kim-Ee, well right now I would even go for an abstract comprehension DSL. I do think there's a big difference between the various DSL techniques, most are designed with a particular evaluation in mind, tagless-style ones are focused on constructing typed terms first, and the evaluation / compilation is somewhat detached from that. Günther Am 29.12.09 14:36, schrieb Kim-Ee Yeoh:
Günther Schmidt wrote:
Initially I had simply imported the CSV files into empty tables in a database and done the calculations directly in SQL, never ever again!
[snip]
But my 1st goal here is to express the algorithm.
Sounds like you want a better DSL than SQL. You're in massive company.
Conal gives a lot of useful advice on DSL design. One way to start is to articulate existing pain. Where and why is SQL painful? Another trick is to work backwards: What kind of code do you really want to write?
Whether you employ GADTs, initial datatypes, finally-tagless codata, etc. isn't really relevant at this stage. Prematurely latching on to a particular tool gets everything treated like a nail, even when they're nowhere close.