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

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

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

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

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

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

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

2
Стек не был протестирован с версиями 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 …

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

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


1
В чем разница между unsafeDupablePerformIO и accursedUnutterablePerformIO?
Я бродил в Запретном разделе Библиотеки Хаскелла и нашел эти два мерзких заклинания: {- System.IO.Unsafe -} unsafeDupablePerformIO :: IO a -> a unsafeDupablePerformIO (IO m) = case runRW# m of (# _, a #) -> a {- Data.ByteString.Internal -} accursedUnutterablePerformIO :: IO a -> a accursedUnutterablePerformIO (IO m) = case …

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

3
Как сделать так, чтобы моя функция 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 | …

2
Объединяя фрагменты кода 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] Я …

1
Странное поведение (^) в 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 -> Int -> Double powerXY x 0 = 1 powerXY x y | y < 0 = powerXY (1/x) (-y) …

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.