Как реализовать DSL для библиотеки матриц в scala?

Я хочу написать матричную библиотеку для своих проектов компьютерной графики. Я хочу использовать функцию scalas dsl, чтобы она выглядела более естественно. Кто-нибудь может подсказать, где найти простой учебник, который не использует внешние библиотеки? Во время моего исследования я нашел только учебники, которые используют фреймворки.

Изменить

Мой вопрос показался недостаточно точным. Я хочу изменить это. Я собираюсь написать матрицу-библиотеку. Я знаю, как написать матрицу-библиотеку. Я хочу использовать DSL-функцию scala. Я пока не умею писать DSL на scala. Пожалуйста, дайте мне подсказку, где найти хороший учебник по DSL в scala, который не использует внешние библиотеки. Спасибо за ваши Коментарии.


person tgr    schedule 29.06.2012    source источник
comment
Хотите получить рекомендации по написанию DSL на Scala или по написанию матричных библиотек?   -  person Malte Schwerhoff    schedule 29.06.2012
comment
Если вы уже знаете, какие библиотеки делают то, что вам нужно, то почему бы не взглянуть на них? Я почти уверен, что вы можете найти их с открытым исходным кодом. Нет лучшего учебника, чем работа с открытым исходным кодом :)   -  person tenshi    schedule 29.06.2012


Ответы (2)


DSL в действии — хороший источник информации. Если вам нужно что-то более прямое (просто учебник), то простые запросы Google укажут вам на небольшие руководства по различным способам реализации DSL в Scala или некоторых библиотеках, которые имеют хорошие DSL Scala. вот некоторые:

http://www.scala-lang.org/node/1403 http:// ofps.oreilly.com/titles/9780596155957/DomainSpecificLanguages.html http://jcranky.com/2010/06/01/dsl-in-scala-for-date-calculation/ http://engineering.foursquare.com/2011/01/21/rogue-a -type-safe-scala-dsl-for-querying-mongodb/ http://engineering.foursquare.com/2011/08/29/slashem-a-rogue-like-type-safe-scala-dsl-for-querying-solr/

Определив, какой должна быть (или выглядеть) ваша библиотека, вы можете задать более точные вопросы о том, как этого добиться.

person Johnny Everson    schedule 29.06.2012

Я бы посмотрел, что делают другие. Например, Scalala, которая является библиотекой матриц, или Specs2 с потрясающими DSL.

person Daniel C. Sobral    schedule 29.06.2012