1
ответ

Какой способ синтаксиса Haskell используется в [$parseRoutes |/Домой ДОБИРАЮТСЯ |]?

Я нашел этот код первой полосы проекта Yesod: импортируйте данные Yesod HelloWorld = HelloWorld mkYesod "HelloWorld" [$parseRoutes |/Домой ДОБИРАЮТСЯ |] экземпляр Yesod HelloWorld где approot _ = ""...
вопрос задан: 5 April 2012 06:52
1
ответ

Как я могу легко видеть вывод из Шаблона оператор Haskell?

У меня есть следующий Шаблон код Haskell в моем модуле, который является частью объемного приложения. $ (получают makeFoldable ''JStatement) я подозреваю, что сгенерированный экземпляр Складных не точно...
вопрос задан: 17 April 2011 21:07
0
ответов

Как избавиться от $ (…) и [| … |] Синтаксис при использовании функции Template Haskell?

Я пытаюсь изучить немного Template Haskell. В качестве упражнения я написал функцию, которая может генерировать такие вещи, как isLeft и isRight (вдохновленные этим вопросом). Вот моя скромная попытка: isA connam = do ...
вопрос задан: 23 May 2017 12:19
0
ответов

Haskell анализирует имена и типы полей записи

На основании недавнего обмена мнениями я был убежден использовать Template Haskell для генерации некоторого кода, чтобы гарантировать безопасность типов во время компиляции. Мне нужно проанализировать имена и типы полей записи. Я понимаю, что могу ...
вопрос задан: 23 May 2017 12:08
0
ответов

Полиномиальная факторизация в Haskell

С помощью hammar я создал бит шаблона Haskell, который компилирует $ (zModP 5) в новый тип Z5 = Z5 Int экземпляр Additive.C Z5, где (Z5 x) + (Z5 y) = Z5 $ (x + y) `mod` 5 ... Теперь я столкнулся с ...
вопрос задан: 23 May 2017 11:55
0
ответов

Что такого плохого в Template Haskell?

Кажется, что Template Haskell часто рассматривается сообществом Haskell как досадное удобство. Трудно точно выразить словами то, что я наблюдал в этом отношении, но рассмотрим эти несколько...
вопрос задан: 23 May 2017 02:02
0
ответов

Можно ли использовать скобочный синтаксический сахар для аппликативного функтора?

В «Прикладном программировании с эффектами» Макбрайда и Патерсона они вводят прекрасный синтаксический сахар для поднятия чистой функции :[| f x y z |] для f <$> x < *> y < *> z и...
вопрос задан: 20 December 2014 17:42
0
ответов

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

Я хотел изучить Template Haskell, но все найденные мной руководства предполагают, что вы выучили lisp и знаете, что такое макросы Lisp, или что вы знаете немного жаргона теории CS - такие штуки, как стыки, ...
вопрос задан: 12 August 2013 17:23
0
ответов

Есть ли в шаблоне функция haskell для цитирования?

Я играю с шаблоном Haskell. Я хочу создать квазиквотер, который позволяет мне создавать инициализаторы по умолчанию для записей, то есть что-то вроде [record | data Config = {shouldDoX = True; особенность ...
вопрос задан: 27 March 2013 17:37
0
ответов

Преобразование модуля в запись

Предположим, у меня есть произвольный модуль модуля Foo, где фу ::Му -> Гу бар ::Автомобиль -> Дальний baz ::Can -> Haz, где правильно реализованы foo, bar и baz и т. д. Я хотел бы овеществить это...
вопрос задан: 6 January 2013 09:05
0
ответов

Почему TemplateHaskell заставляет GHC загружать пакеты?

У меня есть тривиальная программа Template Haskell, которая печатает имя текущего модуля (Main, здесь ):{ -#LANGUAGE TemplateHaskell #-} модуль Главный (главная )где импортировать Language.Haskell.TH импорт...
вопрос задан: 10 July 2012 21:37
0
ответов

Генерация кода на Scala

При использовании цепочки инструментов SBT в Scala можно ли написать задачу, которая будет читать специальную часть исходного кода проекта для генерации кода Scala -во время компиляции. Любые идеи или даже статьи/...
вопрос задан: 9 July 2012 18:13
0
ответов

Автоматическое создание Data.Vector.Unbox со связанными синонимами типов

У меня есть новый тип данных Zq q = Zq (IntType q ), где «q» будет экземпляром класса класса Foo a, где тип IntType a, а «IntType» — это просто базовое представление (, т.е. Int,...
вопрос задан: 9 July 2012 17:02
0
ответов

получить имя функции внутри него

У меня есть куча функций, таких как :метод1, метод2, метод3. Для всех них есть тестовые функции HUnit, такие как :testMethod1, testMethod2, testMethod3. testMethod1 = TestCase $assertEqual "...
вопрос задан: 6 April 2012 15:09
0
ответов

Как обойти ограничение стадии GHC?

Я пишу генератор кода, вывод которого зависит от описания полей типа данных, которое хранится в их экземплярах класса. Однако я не могу найти, как запустить функцию с аргументом, сгенерированным TH. {...
вопрос задан: 2 April 2012 19:48
0
ответов

Как Langage.Haskell.TH .report work?

К сожалению, многие функции Template Haskell не имеют абсолютно никакой документации. Одной из таких функций является отчет. Он принимает Bool и String и выдает ошибку компиляции с указанным ...
вопрос задан: 7 March 2012 11:04
0
ответов

Распечатать и выполнить строку

Я пишу много кода, например putStr "foo (bar 1) (bar 2) =" print $ foo (bar 1) (bar 2) Проблема в том, что распечатанное сообщение может не синхронизироваться с фактическим исполняемым кодом. Очевидное ...
вопрос задан: 29 February 2012 11:52
0
ответов

Как получить буквальное значение именованной переменной TemplateHaskell

Если у меня есть имя в TemplateHaskell и я хочу узнать значение переменной, которую он называет, при условии, что переменная объявлена ​​как литерал, может ли это быть сделано? var = "foo" - Может `contentsOf` ...
вопрос задан: 19 February 2012 00:27
0
ответов

Оценка функции во время компиляции с помощью Template Haskell

Я пишу простой класс HashString, который представляет собой просто строку и ее хэш: data HashString = HashString Int - ^ hash T.Text - ^ string! Теперь я пытаюсь сгенерировать ...
вопрос задан: 11 February 2012 20:29
0
ответов

Объявления данных шаблона Haskell, которые производят Show

Следующее не компилируется: import Language.Haskell.TH makeAlpha n = [d | data Alpha = Alpha $ (conT n) deeding (Show, Read) |] Я вообще не могу понять, что означает ошибка: Невозможно получить ...
вопрос задан: 31 December 2011 18:01
0
ответов

Предпочтительный метод просмотра кода, сгенерированного Template Haskell

Как вы знаете, Template Haskell используется для программного создания различных видов соединений AST во время компиляции. Однако соединение часто может быть очень непрозрачным, и часто бывает трудно понять, что ...
вопрос задан: 15 December 2011 12:31
0
ответов

Шаблон Haskell с именем поля записи в качестве переменной?

У меня есть следующий фрагмент кода, который реализует монаду. Я пытаюсь использовать его для упрощения настройки полей с более сложной логикой позже. data Rec = Rec {alpha :: Int, beta :: ...
вопрос задан: 12 December 2011 01:37
0
ответов

Получить имена полей записи Haskell в виде списка строк?

Скажем, у меня есть следующее: data Rec = Rec {alpha :: Int, beta :: Double, phi :: Float} sample = Rec 1 2.3 4.5 Я понимаю, что Template Haskell и функция reify могут дать мне ...
вопрос задан: 10 December 2011 16:26
0
ответов

Как я могу сгруппировать один и тот же тип в нескольких местах с помощью Template Haskell?

Я определяю экземпляры классов из векторного пространства для типов OpenGL, и, чтобы избавить свои печатные мышцы, я хочу использовать Template Haskell написать для меня кучу экземпляров. Я начал с малого ...
вопрос задан: 7 December 2011 05:18
0
ответов

Преобразование строки в конструктор типов в Haskell

Кто-нибудь знает, есть ли в Haskell функция, которая делает что-то вроде этого: «Int» -> Int «String» -> String «Bool» -> Bool, т.е. он принимает строковое представление конструктора типа ...
вопрос задан: 17 November 2011 11:36
0
ответов

Конструктор данных в шаблоне haskell

Я пытаюсь создать кольцо Z / n (как обычная арифметика, но по модулю некоторого целого числа). Примером является Z4: instance Additive.C Z4, где ноль = Z4 0 (Z4 x) + (Z4 y) = Z4 $ (x + y) `mod` 4 ...
вопрос задан: 27 September 2011 01:00
0
ответов

Проблемы с цитированием типов в TemplateHaskell

Цитирование TemplateHaskell документирует две кавычки ('') как способ получить имя типа:> ' 'String GHC.Base.String Это отлично подходит для этого типа (имя). Однако я не могу найти способ сделать это ...
вопрос задан: 20 September 2011 17:17
0
ответов

Как динамично вызовите функцию, определенную в нескольких модулях в той же подписи

, я определил много функций (скажем, 100+), каждый из которых выполняет определенную работу, но с той же подписью. Это что-то вроде: модуль R001 (запущенный), где запустить = Модуль R002 (RUN) Где ...
вопрос задан: 5 September 2011 19:15
0
ответов

Сокращение кода за счет использования симметрии между экземплярами классов нескольких типов

Контекст Я пишу модуль Haskell, представляющий префиксы SI: модуль Unit.SI.Prefix, где Каждый префикс SI имеет соответствующий тип данных: data Kilo = Kilo derating Показать data Mega = Mega deriving ...
вопрос задан: 26 August 2011 16:12
0
ответов

Почему Safe Haskell не поддерживает Template Haskell?

В документации по Safe Haskell сказано: [...] К сожалению, Template Haskell можно использовать для нарушения границ модуля и, таким образом, можно использовать для получения доступа к этому конструктору. [ ...] The u se of the -...
вопрос задан: 18 August 2011 13:54