Запитання з тегом «haskell»

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

1
Чи є представлення ван Лаарховена `Необов’язково '
Багато типів оптики мають представлення ван Лаарховена. Наприклад, Lensтип Lens s t a b може бути представлений у вигляді: Functor f => (a -> f b) -> s -> f t Аналогічно a Traversal, можна представити аналогічним чином, змінюючи Functorобмеження на Applicative: Applicative f => (a -> f b) -> …

2
Stack не перевірявся з версіями 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 …

3
тип представлення списку з 0 до 5 значень
У мене є вправа, де я повинен визначити тип для представлення списку зі значеннями від 0 до 5. Спочатку я подумав, що можу вирішити це рекурсивно так: data List a = Nil | Content a (List a) Але я не думаю, що це правильний підхід. Чи можете ви, будь ласка, …
14 haskell 

3
Чи реалізація цієї функції слів можлива без кроку після обробки після складання?
Реальний світ Haskell, глава 4, сторінка 98 друку запитує, чи wordsможна реалізувати за допомогою складок, і це також моє питання: Це можливо? Якщо ні, то чому? Якщо так, то як? Я придумав наступне, що ґрунтується на ідеї, що кожне не пробіл має бути попередньо до останнього слова у списку виводу …


1
Яка різниця між небезпечнимDupablePerformIO та incursedUnutterablePerformIO?
Я блукав у розділі з обмеженими можливостями бібліотеки Хаскелл і виявив ці дві мерзенні заклинання: {- 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) …

3
Як (-), здавалося б, може мати два різні типи?
У ghci, коли я набираю :t (-) щоб з'ясувати тип (-), він повертається (-) :: Num a => a -> a -> a Однак, коли я пишу -1haskell, повертає число, яке, мабуть, означає, що (-)це тип Num a => a -> a. Як, (-)здавалося б, можуть бути двох різних типів?
12 haskell 


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 є …

1
Дивна поведінка (^) в Хаскеллі
Чому 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? Можна подумати, що немає необхідності проводити будь-яку оцінку в такому випадку, компілятор міг би замінити всі такі виклики на негайне ()значення, якщо немає явних запитів на суворість, і в цьому випадку код може вирішити, чи слід повернення ()або дно. Я …

1
Як розділити монаду продовження на ліві та праві сполучення?
Оскільки державна монада може бути розподілена на продукт (ліворуч - функціонер) та читач (справа - представницький). Чи є спосіб факторизувати продовження Монади? Нижче коду - моя спроба, яка не перевіряю тип -- To form a -> (a -> k) -> k {-# LANGUAGE MultiParamTypeClasses, TypeOperators, InstanceSigs, TypeSynonymInstances #-} type (<-:) …

1
Використовуйте Haskell як модулі Prelude в модулі в raku
Я пишу пакет креслень з деякими частинами, і у мене є оператори та типи даних, що розкидані через групу. Однак я не хочу, щоб користувачі щоразу додавали відповідні модулі, оскільки це було б дуже безладно, наприклад, я мав би Pointклас, Monoidроль та Styleклас у різних шляхах, як це unit module …
11 haskell  raku 

1
Наберіть ролі та заплутану поведінку за допомогою "примусу"
У мене є тип, Id aі я намагаюся запобігти випадковому примусу, наприклад, Id Doubleдо ан Id Int. Якщо я правильно розумію ролі типу, наступне не слід збирати. {-# LANGUAGE RoleAnnotations #-} import Data.Coerce (coerce) type role Id nominal newtype Id a = Id String badKey :: Id Int badKey = …
11 haskell  roles  coerce 

2
Підсумовування списків довільних рівнів вкладеності у F #
Я намагаюся створити функцію F #, яка поверне суму списку ints довільної вкладеності. Тобто він буде працювати для a list<int>, a list<list<int>>і a list<list<list<list<list<list<int>>>>>>. У Haskell я б написав щось на кшталт: class HasSum a where getSum :: a -> Integer instance HasSum Integer where getSum = id instance HasSum …
10 haskell  f# 

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.