0
ответов

Что происходит с типами в этом сеансе ghci?

Я изучаю Haskell и балуюсь с ghci, когда наткнулся на кое-что очень загадочное. Во-первых, создайте простую функцию добавления: Prelude> let add x y = x + y Обратите внимание, что она работает с целыми числами...
вопрос задан: 12 June 2012 19:31
0
ответов

Тестирование парсеров Parsec путем генерации входных данных с помощью QuickCheck

Я хотел бы написать тесты для набора парсеров Parsec. Вот простой пример парсера, который я хочу протестировать с помощью QuickCheck: идентификатор = do c <- буква cs <- много (alphaNum <|> oneOf ...
вопрос задан: 12 June 2012 16:12
0
ответов

Сравнение GADT и MultiParamTypeClasses

Я пытаюсь разобраться с GADT и просмотрел пример GADT в руководстве GHC. Насколько я могу судить, то же самое можно сделать с MultiParamTypeClasses: {-# ​​LANGUAGE ...
вопрос задан: 12 June 2012 10:11
0
ответов

Существует ли эквивалент класса типов Show для Data.Text?

Шоу знают все. А как насчет: class ShowText a where showText :: a -> Text Я нигде не могу этого найти. Почему?
вопрос задан: 11 June 2012 22:15
0
ответов

Я не могу заставить свой динамический тип на основе GADT -работать с параметрическими типами

. Итак, чтобы помочь мне понять некоторые из более продвинутых функций и концепций Haskell/GHC, я решил взять работающую реализацию динамически типизированных данных на основе GADT -и расширить ее, чтобы охватить...
вопрос задан: 11 June 2012 18:09
0
ответов

ghc 7.4.1 не создает файлы stub.o

Я запускаю установленную по умолчанию платформу Haskell на Ubuntu, и когда я запускаю этот пример http://www.haskell.org/haskellwiki/Calling_Haskell_from_C "ghc -c -O Safe.hs" не создает ..
вопрос задан: 11 June 2012 16:05
0
ответов

Ленивая оценка терминов в бесконечном списке в Haskell

Меня интересует производительность бесконечного списка во время выполнения, например приведенный ниже: fibs = 1 : 1 : zipWith (+) fibs (хвост fibs) Это создаст бесконечный список последовательности Фибоначчи. Мой ...
вопрос задан: 10 June 2012 22:31
0
ответов

Интеллектуальные чисто функциональные множества

Вычисления множеств, состоящие из союзов, пересечений и различий, часто могут быть выражены по-разному. Существуют ли какие-либо теории или конкретные реализации, которые пытаются минимизировать количество ...
вопрос задан: 10 June 2012 18:27
0
ответов

Haskell: «сколько» типа должны получать функции? и избегая полной "реконструкции"

У меня есть такие типы данных: data PointPlus = PointPlus { coords :: Point , velocity :: Vector } производные (Eq) данные BodyGeo = BodyGeo { pointPlus :: PointPlus , size :: Point } ...
вопрос задан: 10 June 2012 10:06
0
ответов

Text.Printf с Data.Text?

Мне надоело постоянно распаковывать экземпляры Data.Text перед тем, как распечатать их для отладки, и я решил просто используйте для этого Text.Printf. К сожалению, я не смог заставить его работать: {-# ​​LANGUAGE ...
вопрос задан: 9 June 2012 23:07
0
ответов

Веб-сокеты в Йесод?

Я хочу создать веб-сайт с помощью Yesod и веб-сокетов (html5). Могу ли я использовать веб-сокеты с веб-фреймворком Yesod?
вопрос задан: 9 June 2012 17:42
0
ответов

Haskell :дублированные функции (+ )и (++ ), mappend

(+ )и (++ )— это просто специализации mappend; я прав? Зачем они нужны? Это бесполезное дублирование, поскольку в Haskell есть мощные классы типов и вывод типов. Допустим, мы удаляем (+ )...
вопрос задан: 9 June 2012 15:28
0
ответов

Почему не каждый тип Eq является частью Haskell?

Вернее, почему (==) нельзя использовать для каждого типа данных? Почему мы должны получать Eq ourseleves? В других языках, таких как Python, C ++ и, конечно же, в других, он имеет реализацию по умолчанию для всего! ...
вопрос задан: 8 June 2012 22:02
0
ответов

Тип словаря с определенным порядком ключей

Я хотел бы использовать тип, который ведет себя как простой список пар [(a,b)], который служит словарь, отображающий ключи типа a на значения типа b, сохраняя при этом «определяемый пользователем», определенный порядок...
вопрос задан: 8 June 2012 17:11
0
ответов

Как перехватить исключение внутри runResourceT

Я хотел бы поймать исключение внутри runResourceT, не освобождая ресурс, но функция catch запускает вычисления внутри IO. Есть ли способ поймать исключение внутри runResourceT, ...
вопрос задан: 8 June 2012 17:10
0
ответов

Haskell: нестрогие логические операции

Можно ли определить в Haskell функцию, подобную следующей? или Истина Истина = Истина или True undefined = True или Верно Ложно = Верно или не определено Истина = Истина или...
вопрос задан: 8 June 2012 15:02
0
ответов

Haskell: Слияние списков, где оно нужно?

Допустим, у нас есть следующее: l = map f (map g [1..100]) И мы хотим сделать: head l Итак, мы получаем: head (map f (map g [1..100])) Теперь нам нужно получить первый элемент this. map определена ...
вопрос задан: 8 June 2012 12:15
0
ответов

Перехватывать ошибки, выдаваемые с помощью `error`?

Некоторые функции stdlib выдают ошибки при неверном вводе. Например: Прелюдия > читать "1o2" :: Int *** Исключение: Prelude.read: no parse Я хотел бы обернуть его так, чтобы он возвращал либо e a ...
вопрос задан: 7 June 2012 06:41
0
ответов

Как написать эффективные алгоритмы динамического программирования на Haskell?

Я экспериментировал с динамическим программированием на Haskell. Практически в каждом руководстве по этому предмету, которое я видел, приводится один и тот же очень элегантный алгоритм, основанный на запоминании и лени...
вопрос задан: 6 June 2012 19:00
0
ответов

Объединение монад в Haskell

Я пытаюсь написать пасьянс «Паук» в качестве обучающего упражнения на Haskell. Моя основная функция будет вызывать функцию playGame один раз для каждой игры (используя mapM), передавая номер игры и случайный...
вопрос задан: 6 June 2012 12:02
0
ответов

Как выполнить быструю десериализацию данных в Haskell

Бенчмаркинг показывает, что библиотеке злаков требуется в 100 раз больше времени для десериализации моей структуры данных (подробно ниже), чем для чтения тех же данных с диска: бенчмаркинг Чтение среднее значение: 465....
вопрос задан: 5 June 2012 23:12
0
ответов

Какую веб-инфраструктуру Haskell можно использовать для платформы данных и обмена сообщениями HTTP/Websocket?

Просто смотрю на Haskell и веб-фреймворки и задаюсь вопросом, имеет ли смысл использовать замечательную функциональность Haskell для потоковой передачи/событий для создания платформы для написания приложений HTML5 и REST, которые предоставляют ...
вопрос задан: 5 June 2012 22:01
0
ответов

Haskell FFI — Как обрабатывать функции C, которые принимают или возвращают структуры вместо указателей на структуры?

Конечно, ответ заключается в том, чтобы каким-то образом передать/забрать непрерывный блок памяти, поэтому вопрос больше о том, как это сделать. На данный момент я все еще могу избежать этой проблемы, написав функции-оболочки на C...
вопрос задан: 5 June 2012 19:50
0
ответов

Класс типов Haskell для кортежей

Я играл с классами типов и сделал это: class Firstable f где fst :: fa -> a class Secondable f где snd :: fa -> a Затем я попытался добавить реализация для (,) и ...
вопрос задан: 5 June 2012 15:03
0
ответов

Как применить полиморфную функцию к динамическому значению

Есть ли разумный способ применить полиморфную функцию к значению типа Dynamic? Например, у меня есть значение типа Dynamic, и я хочу применить Just к значению внутри Dynamic. Итак, если значение...
вопрос задан: 5 June 2012 12:07
0
ответов

сопоставление шаблонов конструктора haskell

У меня есть этот тип данных data Struct val = Empty | Exec1 значение | Exec2 val И применяются две фиктивные функции :: Struct -> String apply (Empty) = "matched Empty" apply (exec ...
вопрос задан: 5 June 2012 08:10
0
ответов

reactive-banana throttling events

Я хотел бы реализовать определенный тип регулирования событий в reactive-banana. Это должно работать таким образом, чтобы событие не пропускалось, если оно прибыло менее чем за дельта секунд от последнего события, которое...
вопрос задан: 4 June 2012 21:46
0
ответов

Как найти оптимальный порядок обработки?

У меня интересный вопрос, но я не уверен, как именно его сформулировать... Рассмотрим лямбда-исчисление. Для данного лямбда-выражения существует несколько возможных порядков приведения. Но некоторые из...
вопрос задан: 4 June 2012 13:21
0
ответов

Эффективная загрузка больших файлов с помощью Yesod

Я хочу реализовать загрузку больших файлов с помощью своего приложения Yesod. Прямо сейчас у меня есть: модуль Handler.File, где import Import import System.Random импортировать System.FilePath импортировать Control.Monad import ...
вопрос задан: 4 June 2012 12:03
0
ответов

Библиотека компьютерного зрения для Haskell

Я ищу библиотеку компьютерного зрения библиотека) для Haskell. Я пробовал CV, но он не компилируется из-за неопределенной ссылки на `cvExtractMSER' (версия OpenCV 2.4....
вопрос задан: 4 June 2012 11:47