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

22
У современных версий GHC есть какое-либо доказательство удаления?

Предположим, у меня есть параметр, который существует только для системы типов, например, как в этой маленькой программе: {-# LANGUAGE GADTs #-} module Main where import Data.Proxy import Data.List data MyPoly where MyConstr :: Proxy a -> a -> (Proxy a -> a -> Int -> Int) ->...

19
Потребность в чистом в аппликативах

Я изучаю Притчи Хаскеля. Мне кажется (я, вероятно, ошибаюсь), что pureфункция на самом деле не нужна, например: pure (+) <*> [1,2,3] <*> [3,4,5] можно записать как (+) <$> [1,2,3] <*> [3,4,5] Может кто-нибудь объяснить преимущество, которое pureдает функция по сравнению с...

18
Каково предположение, сделанное в «Learn You a Haskell» при выводе вида?

Этот вопрос не субъективен. В упомянутой книге используется очень специфический глагол, и я хотел бы понять, каково значение этой фразы, потому что, боюсь, я что-то неправильно понимаю. Из « Learn You a Haskell» следующий абзац третий и последний содержит «мы предполагаем *». data Barry t k p =...

16
Есть ли разница между типовыми сигнатурами a -> b -> a и c -> a -> c?

Этот вопрос является теоретическим вопросом о функциях Haskell, которые могут принимать аргументы любого типа. Есть ли разница между способом функций с сигнатурами типа a -> b -> a а также c -> a -> c создаются? Любая помощь...

16
Haskell: класс типов против передачи функции

Мне кажется, что вы всегда можете передавать аргументы функции, а не использовать класс типов. Например, вместо определения класса типов равенства: class Eq a where (==) :: a -> a -> Bool И использование его в других функциях для указания аргумента типа должно быть экземпляром Eq: elem :: (Eq...

15
Есть ли в представлении Ван Ларховена `Optional`

Многие виды оптики имеют представление Ван Ларховена. Например, Lensтип Lens s t a b может быть представлен как: Functor f => (a -> f b) -> s -> f t Аналогично, a Traversalможет быть представлен аналогичным образом, поменяв местами Functorограничение Applicative: Applicative f => (a...

15
Должен ли анализатор Haskell разрешать цифры Unicode в числовых литералах?

В качестве упражнения я пишу парсер для Haskell с нуля. Создавая лексер, я заметил следующие правила в отчете Haskell 2010 : цифра → ascDigit | uniDigit ascDigit → 0| 1| … | 9 uniDigit → любая десятичная цифра Unicode октит → 0| 1| … | 7 hexit → цифра | A| … | F| a| … |f десятичное → значный {...

15
Помимо as-pattern, что еще может означать @ в Haskell?

В настоящее время я изучаю Haskell и пытаюсь понять проект, который использует Haskell для реализации криптографических алгоритмов. После того, как я прочел в Интернете « Изучаю тебя на гаскелле для хорошего блага» , я начал понимать код этого проекта. Затем я обнаружил, что застрял в следующем...

14
Стек не был протестирован с версиями GHC и Cabal

В моем проекте на Haskell, когда я stack run, он показывает следующее, но все еще работает. Что это за предупреждение? Как я могу избавиться от этого? Stack has not been tested with GHC versions above 8.6, and using 8.8.2, this may fail Stack has not been tested with Cabal versions above 2.4, but...

14
Возможно ли реализовать эту функцию слова без шага постобработки после свертывания?

Real World Haskell, глава 4, стр. 98 печати спрашивает, wordsможно ли реализовать с помощью сгибов, и это тоже мой вопрос: Является ли это возможным? Если нет, то почему? Если это так, как? Я придумал следующее, которое основано на идее, что каждый непробел должен быть добавлен перед последним...

14
тип для представления списка от 0 до 5 значений

У меня есть упражнение, в котором я должен определить тип для представления списка с 0 до 5 значений. Сначала я подумал, что могу решить это рекурсивно так: data List a = Nil | Content a (List a) Но я не думаю, что это правильный подход. Можете ли вы дать мне пищу...

12
Объединяя фрагменты кода Haskell, чтобы получить большую картину

Это код, который я где-то нашел, но хочу знать, как это работает: findIndices :: (a -> Bool) -> [a] -> [Int] findIndices _ [] = [] findIndices pred xs = map fst (filter (pred . snd) (zip [0..] xs)) Вывод: findIndices (== 0) [1,2,0,3,0]==[2,4] , где predесть (==0)& xsесть[1,2,0,3,0] Я...

12
Как сделать так, чтобы моя функция Haskell была максимально короткой?

seasonФункция использует алгебраические функции , но я чувствую, что код повторяется. Как сделать его максимально коротким? data Month = Jan | Feb | Mar | Apr | May | June | July | Aug | Sept| Oct | Nov | Dec deriving (Eq,Ord,Show,Read) data Seasons = Spring | Summer | Autumn | Winter deriving...

12
Какие правила существуют для функции a -> (), вычисляемой в Haskell?

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

12
Странное поведение (^) в Haskell

Почему GHCi дает неправильный ответ ниже? GHCi λ> ((-20.24373193905347)^12)^2 - ((-20.24373193905347)^24) 4.503599627370496e15 python3 >>> ((-20.24373193905347)**12)**2 - ((-20.24373193905347)**24) 0.0 ОБНОВЛЕНИЕ Я бы реализовал функцию Haskell (^) следующим образом. powerXY :: Double...

12
Как (-) может иметь два разных типа?

В ghci, когда я печатаю :t (-) чтобы выяснить тип (-), он возвращает (-) :: Num a => a -> a -> a Однако, когда я пишу, -1haskell возвращает число, которое, по-видимому, подразумевает, что оно (-)имеет тип Num a => a -> a. Как, (-)казалось бы, могут быть два разных...

11
Используйте Haskell как модули Prelude в модуле в raku

Я пишу чертежный пакет с некоторыми частями, и у меня есть операторы и типы данных, разбросанные по всему. Однако я не хочу, чтобы пользователи добавляли соответствующие модули каждый раз, так как это было бы довольно грязно, например, у меня был бы Pointкласс, Monoidроль и Styleкласс по разным...