Hello Ryan, thank you for your email, it's much appreciated. In summary I'd like to say that in the 2 years that I have been using Haskell I have managed to get a good working knowledge of the language which allows me to construct programs that are concise, correct and without greater redundancy. However I also realize more and more that in order to harness the full power of Haskell I need to gain a greater understanding of the underlying math and go beyond mechanical application. It is only lately that I am recognizing the significance of the often used term "abstraction". Certainly this is pointed out in the Haskell world often enough, but hey I'm a noob. For someone like me this is not immediately apparent. I mean there seems to be almost no end of what I still have to learn, barely scratching the surface, tip of the iceberg, that sort of thing. DSLs are apparently *the* way to go in the abstraction department. Oleg & Co's "Finally Tagless" style is my favorite when it comes to implementation. It bears this simplicity and elegance that I have come to recognize and what to me *is* "mathematical". Not all of my dealings in Haskell are goal-oriented. Well there is that of course, but mostly there are all these shiny beautiful things. I get distracted quite a lot too. Trying to dig deeper on the subject of Dan Piponis video for instance. BTW I found Phil Wadlers paper "Comprehending Monads" quite helpful here. I also find my focus of interest on the topics of articles on haskell-cafe shift. Before I would basically skip "deep stuff", ie. theoretical / abstract topics, and focus on technical details. Now I focus much more on "mathematical" issues despite the fact that I can barely understand them, it'll come to me eventually. Because now I consider the mathematical discussions far more fundamental and more "lasting". Technical details I can look up as the need arises and they will likely change over time, so no need to bother with them beforehand, they may be out-dated when you need them. Mathematical ones won't, they'll be good forever. Well that's my 2 cents for now. Günther Am 07.11.2009, 09:37 Uhr, schrieb Ryan Grant <rgrant@rgrant.org>:
2009/11/1 Günther Schmidt <gue.schmidt@web.de>:
In short, I'm truly lost. If anyone else, with roughly the same starting point as me, has found their way through this jungle I'd certainly appreciate some tips. In particular I wonder if someone has been able to follow what Dan demonstrates in this video, or was it a jaw-dropping experience for everyone else just as me?
Günther, i have been lurking in H-cafe, and enjoying your pace of exploration. AFAIK, you are trying to understand how to make excellent languages using Haskell. you are asking some practical questions that i find relevant to my own journey into Haskell.
"best practices" for specifying a DSL are not well agreed upon, partly due to recent advances. i sense this problem in your question and in the newsworthiness of Dan's talk, (which i also enjoyed with a jaw-drop).
i encourage you to say exactly what you want from your DSL (do it again, if you have already).
i hope to follow your footsteps, maybe not in exact DSL needs, but in path of discovery.