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

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

5
Коли корисні вищі типи?
Я деякий час займався розробкою у F #, і мені це подобається. Однак одне модне слово, яке я знаю, не існує у F # - це вищі типи. Я читав матеріали про вищі типи, і, думаю, розумію їх визначення. Я просто не впевнений, чому вони корисні. Хтось може навести кілька …

7
Чому писати компілятор функціональною мовою простіше? [зачинено]
Закрито . Це питання ґрунтується на думках . Наразі відповіді не приймаються. Хочете покращити це питання? Оновіть питання, щоб на нього можна було відповісти фактами та цитатами, відредагувавши цю публікацію . Закрито 2 роки тому . Удосконалюйте це питання Я довго думав над цим питанням, але насправді не міг знайти …

1
Чому цей код Haskell працює повільніше з -O?
Цей фрагмент коду Haskell працює набагато повільніше -O, але -Oповинен бути небезпечним . Хто-небудь може сказати мені, що сталося? Якщо це важливо, це спроба вирішити цю проблему , і вона використовує двійковий пошук та постійне дерево сегментів: import Control.Monad import Data.Array data Node = Leaf Int -- value | Branch …

2
Який комбінаторний логічний еквівалент інтуїціоністської теорії типу?
Нещодавно я закінчив університетський курс, де проходили Haskell та Agda (залежний тип функціональної мови програмування), і мені було цікаво, чи можна замінити лямбда-числення в них комбінаційною логікою. З Haskell це здається можливим за допомогою комбінаторів S і K, що робить його безточковим. Мені було цікаво, що це еквівалент для Агди. …

4
Як я використовую виправлення та як це працює?
Мене трохи розгубила документація fix(хоча, я думаю, я розумію, що вона повинна робити зараз), тому я подивився вихідний код. Це мене ще більше розгубило: fix :: (a -> a) -> a fix f = let x = f x in x Як саме це повертає фіксовану точку? Я вирішив спробувати …


1
Як я можу отримати esqueleto для генерації рядка SQL для мене?
Як я можу отримати esqueleto для генерації рядка SQL з fromоператора? У документації toRawSqlсказано, що "ви можете просто увімкнути реєстрацію запитів постійних". Я спробував усі можливі форми, MonadLoggerякі я міг зрозуміти, але він ніколи не друкував жодного SQL. У цій же документації також сказано, що "використання цієї функції вручну ... …

6
Точковий оператор у Хаскелі: потрібні додаткові пояснення
Я намагаюся зрозуміти, що робить оператор крапок у цьому коді Хаскелла: sumEuler = sum . (map euler) . mkList Весь вихідний код наведено нижче. Моє розуміння Точковий оператор приймає за вхідні дані дві функції, sumа також результат map eulerі результат mkList. Але, sumхіба функція не є аргументом функції, чи не …

6
Осиротілі випадки в Хаскелі
Під час компіляції моєї програми Haskell з цією -Wallопцією GHC скаржиться на випадки, що залишились без батьків, наприклад: Publisher.hs:45:9: Warning: orphan instance: instance ToSElem Result Клас типу ToSElemне є моїм, він визначається HStringTemplate . Тепер я знаю, як це виправити (перемістити декларацію екземпляра в модуль, де оголошено результат), і я …
86 haskell  ghc  typeclass 

17
Яку мову вивчати після Хаскелла? [зачинено]
В даний час це питання не підходить для нашого формату запитань та відповідей. Ми очікуємо, що відповіді будуть підтверджені фактами, посиланнями чи експертизою, але це питання, швидше за все, вимагатиме дебатів, аргументів, опитування чи розширеного обговорення. Якщо ви вважаєте, що це питання можна покращити і, можливо, знову відкрити, відвідайте довідковий …


1
Як прочитати цей «доказ» Ядра GHC?
Я написав цей невеликий фрагмент Haskell, щоб зрозуміти, як GHC доводить, що для натуральних чисел можна парні парні лише вдвічі: {-# LANGUAGE DataKinds, GADTs, KindSignatures, TypeFamilies #-} module Nat where data Nat = Z | S Nat data Parity = Even | Odd type family Flip (x :: Parity) :: …

3
Хаскелл: чому конвенція називати допоміжну функцію "go"?
Я goбагато бачу, читаючи матеріал або джерело Haskell, але мені ніколи це не сподобалось - (мабуть, у мене на думці негативний відтінок "goto"). Я почав вивчати Haskell з LYAH, і саме тут я взяв тенденцію до використання accта stepпід час написання складок. Звідки береться конвенція про письмо go? Найголовніше, що …

1
Різниця між типовими класами MonadPlus, Alternative та Monoid?
Стандартна бібліотека Haskell класів типів MonadPlus, Alternativeі Monoidкожен з них надає два методи з практично тією ж самою семантикою: Пусте значення: mzero, emptyабо mempty. Оператор , a -> a -> aякий з'єднує значення в класі типів разом: mplus, <|>або mappend. Усі три визначають ці закони, яких слід дотримуватися: mempty `mappend` …

3
Схеми рекурсії для чайників?
Я шукаю по-справжньому простих, простих для сприйняття пояснень схем рекурсії та схем основних курсів (катаморфізми, анаморфізми, гіломорфізми тощо), які не потребують переходу безлічі посилань або відкриття підручника з теорії категорій. Я впевнений, що багато з цих схем винайшов несвідомо і "застосував" їх у своїй голові під час процесу кодування (я …

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