Результаты поиска по запросу "haskell"

1 ответ

 быть достаточно. В более конкретных сценариях, возможно, эти ограничения также имеют смысл.

буя разные подходыделать то, что иногда называют инъекцией зависимости. Для этого я разработал простой пример приложения погоды, где мы хотим получить данные о погоде (из веб-службы или с аппаратного устройства), сохранить данные о погоде (это ...

1 ответ

GHC жалуется на неисчерпывающие шаблоны, которые применяются средством проверки типов

У меня есть следующий код {-# LANGUAGE DataKinds, GADTs, TypeOperators #-} data Vect v a where Nil :: Vect '[] a Vec :: a -> Vect v a -> Vect (() ': v) a instance Eq a => Eq (Vect v a) where (==) Nil Nil = True (Vec e0 v0) == (Vec e1 v1) = e0 == ...

5 ответов

Можно ли расширить бесплатные переводчики монад?

Предоставляется бесплатная монада DSL, такая как: data FooF x = Foo String x | Bar Int x deriving (Functor) type Foo = Free FooFИ случайный переводчик дляFoo: printFoo :: Foo -> IO () printFoo (Free (Foo s n)) = print s >> printFoo n printFoo ...

ТОП публикаций

2 ответа

Вот еще один подход, который может работать для вас. Я предполагаю, что у вас есть доступ ко всем заголовочным файлам C, которые определяют объекты, которые вам нужно выделить. Если это правда, вы можете написать тонкий слой кода на C для выделения и освобождения объектов C. Ваш код на Haskell может затем вызывать эти функции C без необходимости кода Haskell, чтобы знать, что стоит за указателями. Haskell также может автоматически вызывать бесплатный код, когда сборщик мусора Haskell знает, что объекты больше не нужны.

аюсь создать оболочку Haskell для библиотеки C. Базовые структуры слишком сложны, чтобы выражать их как явные типы, и я на самом деле не использую их, кроме как для передачи между функциями C, поэтому я используюEmptyDataDecls позволить GHC ...

4 ответа

 должен полностью описать, что вы можете с ним сделать. Если вы можете вызывать его только для определенных типов, это должно отражать сигнатура типа.

тоящее время я пытаюсь обернуть голову вокруг типов классов и экземпляров, и пока не совсем понимаю их смысл. У меня есть два вопроса по этому вопросу: 1) Почему необходимо иметь класс типа в сигнатуре функции, когда функция использует некоторую ...

1 ответ

, Это кажется намного проще, чем оставленное вокруг решение, хотя и не красиво.

ал о разархивировании операций и понял, что один из способов выразить их заключается в обходеBiapplicative [https://hackage.haskell.org/package/bifunctors-5.5/docs/Data-Biapplicative.html#t:Biapplicative] функтор. import Data.Biapplicative class ...

2 ответа

Haskell quickcheck - как генерировать только строки для печати

У меня есть набор простых демонстрационных программ, которые кодируют / декодируют строки и хотят сгенерировать некоторыебыстрая проверка тесты для них, но ограничить тесты только для печати строк. Использование защиты слишком медленное и терпит ...

2 ответа

Спасибо, это информативно и неожиданно

ртация неотрицательнаяInteger к его списку цифр обычно делается так: import Data.Char digits :: Integer -> [Int] digits = (map digitToInt) . showЯ пытался найти более прямой способ выполнения задачи, без использования преобразования строк, но я ...

2 ответа

Наблюдение за ленью в Хаскеле

Можно ли написать функцию на Haskell, которая зависит от того, вычисляются ли уже значения или являются thunks? Например. еслиlazyShow :: [Int] -> String показывает гром как? и рассчитанные значения обычно, в GHCi мы увидим > let nats = [0..] > ...

1 ответ

Как показать текст utf8 с привязкой и ограблением?

я использовалwriteBS writeText из оснастки иrenderTemplate от ограбления, но никто из них не поддерживает Unicode. site :: Snap () site = do ifTop (writeBS "你好世界") <|> route [("test", testSnap)] testSnap :: Snap () testSnap = do fromJust $ ...