Я пытаюсь создать «иерархию» классов алгебраических типов , а именно: class Semigroup a where (. *) :: a -> a -> a foldr1 (. *) = foldl1 (. *) - ошибка GHCi: "` foldr1 'не является (видимым) ...
Как вы извлекаете данные из запроса на почту, используя Network.wai и Warp? Скажи, например, у меня простая веб-страница ....
<Метод формы = "Post" Action = "/ horsepost"> <имя ввода = "name" Type = "... [
Я очень новичок в Yesod и у меня проблемы со статической сборкой Yesod.
чтобы я мог развернуть его на Heroku. Я изменил файл .cabal по умолчанию, чтобы отразить статическую компиляцию if flag(production) cpp-...
Я пытаюсь встроить Haskell REPL в одно из моих приложений Haskell. Идея состоит в том, что по умолчанию будет загружено только подмножество библиотек Haskell, плюс мой собственный набор функций, и ...
Как я могу написать типобезопасный метод Java, который возвращает что-то из класса a или что-то из класса b? Например: общественность ... либо (логическое значение b) { if (b) { return new Integer (1); } else { ...
Мне нужно написать функцию, которая выравнивает список списков. Например, сгладить [] = [] или сгладить [1,2,3,4] = [1,2,3,4] или сгладить [[1,2], [3], 4,5]] = [1 , 2,3,4,5] У меня проблемы с существом ...
Я хочу сделать все возможные комбинации подгрупп с 2 списками. Вот функция, которая делает именно это: getCombinations :: [a] -> [[a]]
getCombinations na = do a <- na b <- na ...
плохие новости сегодня утром, я был готов попробовать и использовать Leksah (кстати, красивое приложение) для продолжения изучения haskell. Я не смог скомпилировать пример "Hello World", который нашел сегодня утром, читая ...
В библиотеке «Эффекты Идриса» эффекты представлены в виде ||| Этот тип параметризуется с помощью: ||| + Возвращаемый тип вычисления. ||| + Входной ресурс. ||| + Вычисления для запуска на ...
test :: String -> String -> Int test 'xyn = n
test' "" (y: ys) n = error "error"
test '(x: xs) "" n = error "error"
test' (x: xs) (y: ys) n = если x == y, то проверьте 'xs ys n
...
Я новичок в Haskell, и у меня возникли некоторые проблемы с выяснением того, как сопоставить строку байта с образцом. Версия [Char] моей функции выглядит так: dropAB :: String -> String
dropAB [] = []
...
У меня есть некоторые элементы, которые я хочу разделить на числа ведер, так что каждое ведро на некоторую долю больше предыдущего. items = 500
chunks = 5
increment = 0.20 {- найдите пропорции -...
В идеале я бы хотел написать что-то вроде этого : myValue1 = 1 :: Int
myValue2 = 2 :: Int myFunc :: Int -> Bool
myFunc myValue1 = Истина
myFunc myValue2 = False Вызов myFunc myValue2 возвращает True -...
Я знаю, что такое ковариация и контравариантность типов есть. У меня вопрос: почему я еще не столкнулся с обсуждением этих концепций при изучении Haskell (в отличие, скажем, от Scala)? Кажется, есть ...
Я все еще новичок в Haskell (изучаю его время от времени). Мне интересно, почему в Haskell нет буквального синтаксиса конструктора Data.Map, такого как синтаксис конструктора Map/Hash в Clojure или Ruby. Есть ли...
Итак, допустим, у вас есть тип newtype Dual f a = Dual {dual :: forall r. f (a - > r) -> r} Как выясняется, когда f является Comonad, Dual f является монадой (забавное упражнение). Это работает по-другому ...
Как на самом деле реализована монада ввода-вывода? В смысле, какова будет фактическая реализация основной функции? Как мне вызвать функцию haskell (IO) с другого языка, и нужно ли мне в этом случае ...
Для практики haskell я хочу реализовать игру, в которой студенты/ученики должны в игровой форме изучать алгебру. В качестве базового типа данных я хочу использовать дерево: с узлами, которые имеют метки и алгебраические операторы ...
Я просматриваю вики-книги по Haskell GADTS https://en.wikibooks.org/wiki/Haskell/GADT. Я довольно хорошо отслеживал, пока не была добавлена сигнатура Kind, которая обобщает ограниченный тип...
Итак, если у меня есть два типа данных, которые в основном одинаковы , Я могу записать их так: data A t = A1 | A2 | A3 | A4 (B t)
данные B t = B1 | B2 | B3 | B4 t тип AX = A X
type AY = AY Теперь легко ...
У меня есть этот код, и он не будет компилироваться, выделив x и y справа от Point3 и написав: «Несколько объявлений x» и «Несколько объявлений y». В чем дело? У Point2 и Point3 не может быть ...
Допустим, я определил свой собственный тип данных, например data MyData = A arg | B arg2 | C arg3 Как мне написать функцию (например: isMyDataType), которая проверяет, является ли данный аргумент одним из ...
У меня есть два модуля, которые импортируют друг друга. Haskell не поддерживает рекурсивные модули. Итак, как я могу переписать свои типы данных без необходимости круговой модульной системы. Вот мой модуль Character.hs ...
В языках с автоматической сборкой мусора, таких как Haskell или Go, как сборщик мусора может определить, какие значения, хранящиеся в стеке, являются указателями на память, а какие - просто числами? Если ...
Большинство языков, использующих сборщики мусора (возможно, все из них), имеют одну серьезную проблему, связанную с параллельными вычислениями: сборщику мусора приходится останавливать все запущенные потоки, чтобы удалить неиспользуемые...
Можно ли перейти на очень низкий уровень функциональных языков, таких как Haskell? (например, создание ядра или драйвера устройства). И будут ли там функциональные возможности (например, монады) быстрыми и эффективными?