Вопросы с тегом «haskell»

101
Рабочий процесс тестирования Haskell

Я только начал новый проект на Haskell и хотел с самого начала организовать хороший рабочий процесс тестирования. Похоже, что в Haskell есть множество отличных и уникальных инструментов для тестирования и множество различных способов их интеграции. Я изучил: HUnit Быстрая проверка жим лежа HPC...

100
Взаимодействие со структурами и анонимными союзами с c2hs

Как можно было бы кодировать этот кусок кода C в файле .chs, чтобы c2hs мог преобразовать его во что-то относительно хорошее? typedef enum { MONOME_BUTTON_UP = 0x00, MONOME_BUTTON_DOWN = 0x01, MONOME_ENCODER_DELTA = 0x02, MONOME_ENCODER_KEY_UP = 0x03, MONOME_ENCODER_KEY_DOWN = 0x04, MONOME_TILT =...

100
Композиция Haskell (.) Против оператора прямой передачи в F # (|>)

В F # |>довольно часто используется оператор конвейерной передачи ,. Однако в Haskell я видел только использование композиции функций (.). Я понимаю, что они связаны , но есть ли языковая причина, по которой конвейерная передача не используется в Haskell, или это что-то еще?...

100
Elm Compiler работает вечно, компьютер просто нагревается

Я не уверен, что вызывает эту проблему, но в проекте, который я создаю, компилятор тратит часы на компиляцию модуля. Общий размер моей кодовой базы составляет 352 КБ, но ни один из модулей не превышает 10 КБ. Я использую собственный порт, но это очень тривиально; Я просто увлекаюсь Date.now()этим....

100
Средство проверки типов допускает очень неправильную замену типа, а программа все еще компилируется

Пытаясь отладить проблему в моей программе (2 круга с одинаковым радиусом рисуются для разных размеров с помощью Gloss *), я наткнулся на странную ситуацию. В моем файле, который обрабатывает объекты, у меня есть следующее определение для Player: type Coord = (Float,Float) data Obj = Player { oPos...

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

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

99
Может кто-нибудь объяснить функцию обхода в Haskell?

Я пытаюсь и не могу найти эту traverseфункцию Data.Traversable. Я не вижу в этом смысла. Поскольку я пришел из императивного фона, может ли кто-нибудь объяснить мне это с точки зрения императивного цикла? Псевдокод был бы очень признателен. Спасибо....

98
В чем смысл карты в Haskell, когда есть fmap?

Везде, где я пробовал пользоваться map, fmapтоже работает. Почему создатели Haskell почувствовали необходимость в mapфункции? Разве это не может быть то, что сейчас известно как язык, fmapи что fmapего можно удалить?...

98
Что такое индексированная монада?

Что такое индексированная монада и мотивация этой монады? Я читал, что это помогает отслеживать побочные эффекты. Но подпись типа и документация никуда меня не ведут. Какой был бы пример того, как это может помочь отслеживать побочные эффекты (или любой другой допустимый пример)?...

97
Как играть с Control.Monad.Writer в haskell?

Я новичок в функциональном программировании и недавно учился на Learn You a Haskell , но когда я прочитал эту главу , я застрял в программе ниже: import Control.Monad.Writer logNumber :: Int -> Writer [String] Int logNumber x = Writer (x, ["Got number: " ++ show x]) multWithLog :: Writer...

97
Чем полезна абсурдная функция в Data.Void?

absurdФункция Data.Voidимеет следующую подпись, где Voidявляется логически необитаемым типом экспортируемого этого пакетом: -- | Since 'Void' values logically don't exist, this witnesses the logical -- reasoning tool of \"ex falso quodlibet\". absurd :: Void -> a Я знаю достаточно логики, чтобы...

96
Текущий модуль экспорта Haskell с дополнительным импортированным модулем

Можно ли написать модуль в Haskell, который реэкспортирует модуль в дополнение к экспорту всего, что видно внутри? Рассмотрим следующий модуль: module Test where import A f x = x Этот модуль экспортирует все, что определено внутри, поэтому он экспортирует, fно не реэкспортирует ничего,...

96
Что такое параморфизмы?

Читая эту классическую статью , я зацикливаюсь на параморфизмах. К сожалению, раздел довольно тонкий, и на странице Википедии ничего не сказано. Мой перевод на Haskell: para :: (a -> [a] -> b -> b) -> b -> [a] -> b para f base = h where h [] = base h (x:xs) = f x xs (h xs) Но...

95
Офлайн-документация Haskell?

Каковы возможности, если таковые имеются, для получения офлайн-документации для основных библиотек Haskell (и, возможно, большего количества)? Иногда я беру свой ноутбук в кофейню, где нет Wi-Fi, и было бы неплохо иметь что-то вроде Hoogle, но для автономного использования....

94
В чем смысл const в Haskell Prelude?

Просматривая Haskell Prelude, я вижу функцию const : const x _ = x Я не могу найти ничего подходящего относительно этой функции. В чем смысл? Кто-нибудь может привести пример, где можно использовать эту функцию?...

93
Упорядочивание параметров для использования каррирования

Я дважды недавно реорганизовал код, чтобы изменить порядок параметров, потому что было слишком много кода, где хаки вроде flipили \x -> foo bar x 42происходили. Какие принципы помогут мне лучше всего использовать каррирование при разработке сигнатуры функции?...

93
Исключения в Йесод

Я создал демона, который использовал очень примитивную форму ipc(telnet и отправлял строку, содержащую определенные слова в определенном порядке). Я отключился и теперь использую JSONдля передачи сообщений на Yesodсервер. Тем не менее, в моем дизайне мне действительно нравились некоторые вещи, и я...