Подтвердить что ты не робот

Есть ли какой-либо учебник Template Haskell для тех, кто не знает Lisp?

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

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

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

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

4b9b3361

Ответ 1

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

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

Ответ 2

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

Ответ 3

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

Абстрактный

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

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

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