Есть ли учебник по шаблону Haskell для тех, кто не знает Lisp? - PullRequest
20 голосов
/ 20 апреля 2011

Я хотел выучить Template Haskell, но все учебники, которые я нахожу, предполагают, что вы выучили lisp и знаете, что такое макросы lisp, или что вы знаете какой-то жаргон теории cs - такие вещи, как сплайс, квази-цитаты и т. Д. - или какой-то теоретическийрезультаты о макросах.

Я не могу закодировать одну строку шрифта (и, хотя я собираюсь сделать это однажды, у меня нет времени, чтобы изучить это прямо сейчас).Haskell - мой самый первый функциональный язык, и я выучил его до такой степени, что я могу регулярно кодировать его, использовать монады, аппликативные, понимать систему типов и т. Д. ... но я не знаю много (тоже хочу учиться, но яЯ слишком глуп для этого ...: P) насчет теоретических вещей за этим.Так что я не обращаю внимания на жаргон, который я обычно нахожу в уроках TH.

Итак, вопрос в следующем: есть ли учебник о TH для того, кто пишет на Haskell, не как профессиональный компьютерный ученый, а как парень, который использует программирование для своих ежедневных обязанностей, который изучил Haskell как свой первыйфункциональный язык?Может быть, введение в макросы и метапрограммирование, которые используют TH в качестве примера?

Спасибо всем.:)

Ответы [ 3 ]

12 голосов
/ 20 апреля 2011

Нет, я не думаю, что есть какие-то отличные вводные учебники по Шаблону Haskell .Лучший способ научиться - это посмотреть на примеры или:

Я никогда не находил, что Lisp был требованием, однако есть терминология для изучения, как и для любой предметно-ориентированной библиотеки.

7 голосов
/ 21 апреля 2011

Лучшие вводные руководства к шаблону Haskell, о которых я знаю, - это два документа Булата Зиганшина.Ссылки из Haskell Wiki на данный момент не работают, однако вы можете получить к ним доступ через archive.org:

1 голос
/ 24 марта 2015

Также оригинальная статья Шаблон метапрограммирования для Haskell Тима Шеарда и Саймона Пейтона Джонса может быть полезна:

Аннотация

Мы предлагаем новое расширение чисто функционального языка программирования Haskell, которое поддерживает метапрограммирование во время компиляции. Целью системы является поддержка алгоритмического конструирования программ во время компиляции.

Способность генерировать код во время компиляции позволяет программисту реализовывать такие функции, как разнотипные программы, макроподобное расширение, оптимизация, ориентированная на пользователя (например, встраивание), и создание вспомогательных структур данных и функций из существующих структур данных функции.

Наш проект реализуется в компиляторе Glasgow Haskell, ghc.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...