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

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

3
Haskell: лифт против лифта
В каких ситуациях следует liftIOиспользовать? Когда я использую ErrorT String IO, liftфункция работает, чтобы поднять действия ввода-вывода ErrorT, поэтому liftIOкажется излишней.

4
Как я могу удалить версию пакета Cabal?
Happstack Lite ломает меня, потому что он получает версию 0.5 blaze-html и ему нужна версия 0.4. Кабал говорит, что установлены обе версии 0.4.3.4 и 0.5.0.0. Я хочу удалить 0.5.0.0 и использовать только старую версию. Но у Кабала нет команды "удалить", и когда я пытаюсь ghc-pkg unregister --force blaze-html, ghc-pkgговорит , …
82 haskell  ghc  cabal 

3
Как предоставить явное объявление типа для функций при использовании GHCi?
Как определить эквивалент этой функции (взятый из Learnyouahaskell ) внутри GHCi? import Data.List numUniques :: (Eq a) => [a] -> Int numUniques = length . nub Без объявления типа GHCi принимает определение функции, но в конечном итоге получает бесполезный тип: Prelude Data.List> import Data.List Prelude Data.List> let numUniques' = length …

2
Функциональные линзы
Может ли кто-нибудь объяснить мне функциональные линзы? Это удивительно сложная тема для Google, и я не добился никакого прогресса. Все, что я знаю, это то, что они предоставляют ту же функциональность, что и в OO.

2
Разделите Int на Int и верните Int
Мне нужна функция, которая получает два Ints ( aи b) и возвращает A/Bкак Int. Я уверен, что A/Bэто всегда будет целое число. Вот мое решение: myDiv :: Int -> Int -> Int myDiv a b = let x = fromIntegral a y = fromIntegral b in truncate (x / y) …
79 haskell  int 

9
Написание foldl с помощью foldr
В Real World Haskell , Глава 4. Функциональное программирование : Напишите foldl с помощью foldr: -- file: ch04/Fold.hs myFoldl :: (a -> b -> a) -> a -> [b] -> a myFoldl f z xs = foldr step id xs z where step x g a = g (f a …

4
Обработка исключений в Haskell
Мне нужна помощь, чтобы понять использование трех функций Haskell попробуй ( Control.Exception.try :: Exception e => IO a -> IO (Either e a)) поймать ( Control.Exception.catch :: Exception e => IO a -> (e -> IO a) -> IO a) ручка ( Control.Exception.handle :: Exception e => (e -> IO …

3
Что именно подразумевается под «частичной функцией» в функциональном программировании?
Насколько я понимаю, частичные функции - это функции, которые мы получаем, передавая в функцию меньше параметров, чем ожидалось. Например, если это было правильно в Python: >>> def add(x,y): ... return x+y ... >>> new_function = add(1) >>> new_function(2) 3 В приведенном выше фрагменте, new_functionэто частичная функция. Однако, согласно Haskell Wiki …

2
Как уменьшить дублирование кода при работе с рекурсивными типами сумм
В настоящее время я работаю над простым интерпретатором языка программирования, и у меня есть такой тип данных: data Expr = Variable String | Number Int | Add [Expr] | Sub Expr Expr И у меня есть много функций, которые делают простые вещи, такие как: -- Substitute a value for a …

5
Есть ли шанс написать «мажор» вместо «мажор С»?
Я столкнулся с небольшой эстетической проблемой в моем музыкальном проекте, и это беспокоило меня в течение некоторого времени. У меня есть тип, data Key = C | D | ...и я могу построить Scaleиз а Keyи а Mode. В Modeразличает , например , крупный и незначительный масштаб. Я могу определить …
39 haskell  dsl 

3
Почему доступ к System.Info не считается операцией ввода-вывода в Haskell?
В модуле System.Infoя вижу эти функции: os :: String arch :: String compilerName :: String compilerVersion :: Version Почему там нет IO? Они получают доступ к системе ... Я ошибаюсь? Мое ожидание было что-то вроде: os :: IO String arch :: IO String compilerName :: IO String compilerVersion :: IO …
25 haskell 

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

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

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


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