[Haskell-cafe] DSL in Haskell
Daryoush Mehrtash
dmehrtash at gmail.com
Mon Nov 16 12:49:07 EST 2009
Have you seen the Haskell School of Expression book by Paul Hudak?
The book is available on line, Ch 9 and 10 talks about music.
http://plucky.cs.yale.edu/cs431/HaskoreSoeV-0.7.pdf
Daryoush
On Mon, Nov 16, 2009 at 3:16 AM, CK Kashyap <ck_kashyap at yahoo.com> wrote:
> Thanks Don,
>
> I read the PDF. I was not able to figure out how to get the BASIC module.
> Wanted to see a reference implementation.
>
> The DSL I want to start with is a music generation DSL ... It should
> generate a wave file
> with music data as input -> for example the input could contain
> C3 D3 E3 ... -> should output a wave file with those notes ... some kind of
> mnemonics for tempo will also be there.
> Later I'd like to incorporate parallel sequence generation -> where I could
> get chord effect etc ...
> I had done a rudimentary implementation in C a while back ->
> http://kashyap-1978.tripod.com/Escapades/Goodies/Construct_WAV.html
>
> I'd appreciate it very much if you could give me some pointers on getting
> started.
>
> Regards,
> Kashyap
> ------------------------------
> *From:* Don Stewart <dons at galois.com>
> *To:* CK Kashyap <ck_kashyap at yahoo.com>
> *Cc:* haskell-cafe at haskell.org
> *Sent:* Mon, November 16, 2009 12:57:54 AM
> *Subject:* Re: [Haskell-cafe] DSL in Haskell
>
> ck_kashyap:
> > Hi All,
> > I was reading a Ruby book and in that it was mentioned that its
> capability to
> > dynamically query and modify classes makes it suitable for implementing
> DSL's
> > ... I am referring to Ruby's reflection and methods like "method_missing"
> here.
> > It can allow things like not having to define constants for all possible
> > unicode code points etc...For example, first use of U0123 could bring
> such a
> > constant definition into existence etc
> >
> > I see multiple search hits when I look for Haskell and DSL - can someone
> please
> > point me to a good primer or explain to me how equivalent of above
> mentioned
> > features in Ruby can be done in Haskell ... or the Haskell alternative
> for it.
>
> The Haskell equivalent would be overloading, primarily via type classes.
>
> See Lennart Augusston's BASIC for an example of this in the extreme:
>
>
> http://augustss.blogspot.com/2009/02/more-basic-not-that-anybody-should-care.html
>
> That's BASIC syntax, in Haskell, relying on overloading numbers, strings
> etc. And all statically typed.
>
> For a survey of some of the more recent EDSLs in Haskell, see this brief
> overview,
>
> http://www.galois.com/~dons/papers/stewart-2009-edsls.pdf<http://www.galois.com/%7Edons/papers/stewart-2009-edsls.pdf>
>
> -- Don
>
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/haskell-cafe/attachments/20091116/78df72cb/attachment.html
More information about the Haskell-Cafe
mailing list