{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2022,4,4]],"date-time":"2022-04-04T14:42:24Z","timestamp":1649083344955},"reference-count":7,"publisher":"Cambridge University Press (CUP)","issue":"3","license":[{"start":{"date-parts":[[2012,5,18]],"date-time":"2012-05-18T00:00:00Z","timestamp":1337299200000},"content-version":"unspecified","delay-in-days":17,"URL":"https:\/\/www.cambridge.org\/core\/terms"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["J. Funct. Prog."],"published-print":{"date-parts":[[2012,5]]},"abstract":"My main reason for wanting to read this book was to find out what a well-known publicist from the world of OO would have to say about the state of the art of domain specific languages (DSLs), in particular when it comes to type error feedback, functional programming, and the combination. As most readers will be aware, languages like Scheme and Haskell are very well suited to embed DSLs in: Scheme can be considered a core language to which new language facilities can be easily added by means of hygienic syntax macro's (Abelsonet al<\/jats:italic>. 1998), and there are so many papers on embedded DSLs in Haskell (Hudak, 1998), that any realistic selection would aggravate more people than I would please. Great was my disappointment when I read on page XXV that these topics were not discussed at all in the book. Although I can imagine that Fowler does not feel comfortable writing about subjects he is not sufficiently at home with, the question does arise whether the title of this book is sufficiently covered by its contents.<\/jats:p>","DOI":"10.1017\/s0956796812000123","type":"journal-article","created":{"date-parts":[[2012,5,18]],"date-time":"2012-05-18T14:59:07Z","timestamp":1337353147000},"page":"375-377","source":"Crossref","is-referenced-by-count":1,"title":["Bookreview JFP: Domain-Specific Languages by Martin Fowler The Addison Wesley Signature Series"],"prefix":"10.1017","volume":"22","author":[{"given":"JURRIAAN","family":"HAGE","sequence":"first","affiliation":[]}],"member":"56","published-online":{"date-parts":[[2012,5,18]]},"reference":[{"key":"S0956796812000123_ref2","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796810000298"},{"key":"S0956796812000123_ref5","doi-asserted-by":"crossref","first-page":"62","DOI":"10.1145\/871895.871902","volume-title":"Proceedings of the ACM Sigplan 2003 Haskell Workshop","author":"Heeren","year":"2003"},{"key":"S0956796812000123_ref7","unstructured":"Parr T. (2009) Language Implementation Patterns. The Pragmatic Bookshelf. http:\/\/www.pragprog.com\/titles\/tpdsl\/language-implementationpatterns. Accessed 25 April 2012."},{"key":"S0956796812000123_ref6","doi-asserted-by":"publisher","DOI":"10.1145\/242224.242477"},{"key":"S0956796812000123_ref3","unstructured":"Heeren B. (2005) Top Quality Type Error Messages. PhD thesis, Universiteit Utrecht, The Netherlands, http:\/\/www.cs.uu.nl\/people\/bastiaan\/phdthesis."},{"key":"S0956796812000123_ref4","first-page":"3","volume-title":"Proceedings of the Eighth International Conference on Functional Programming","author":"Heeren","year":"2003"},{"key":"S0956796812000123_ref1","doi-asserted-by":"publisher","DOI":"10.1023\/A:1010051815785"}],"container-title":["Journal of Functional Programming"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.cambridge.org\/core\/services\/aop-cambridge-core\/content\/view\/S0956796812000123","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2022,1,15]],"date-time":"2022-01-15T22:15:09Z","timestamp":1642284909000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.cambridge.org\/core\/product\/identifier\/S0956796812000123\/type\/journal_article"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2012,5]]},"references-count":7,"journal-issue":{"issue":"3","published-print":{"date-parts":[[2012,5]]}},"alternative-id":["S0956796812000123"],"URL":"https:\/\/doi.org\/10.1017\/s0956796812000123","relation":{},"ISSN":["0956-7968","1469-7653"],"issn-type":[{"value":"0956-7968","type":"print"},{"value":"1469-7653","type":"electronic"}],"subject":[],"published":{"date-parts":[[2012,5]]}}}