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

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

7
Последствия фолд против фолд (или фолд)
Во-первых, Real World Haskell , который я читаю, говорит никогда не использовать, foldlа вместо этого использовать foldl'. Поэтому я верю в это. Но я не знаю, когда использовать foldrпротив foldl'. Хотя я вижу структуру их работы по-разному, но я слишком глуп, чтобы понять, когда «что лучше». Я думаю, мне кажется, …

6
Почему GHC такой большой / большой?
Есть простой ответ: почему GHC такой большой? OCaml: 2 МБ Python: 15 МБ SBCL: 9 МБ OpenJRE - 26 МБ GHC: 113 МБ Не интересуется евангелизацией «Почему меня не волнует размер, если Haskell - правильный инструмент»; это технический вопрос.
147 haskell  ghc 

1
Обработка списочных типов с помощью Esqueleto
У меня есть типы данных, определенные как: data ComitteeView = CommitteeView { committeeId :: CommitteeId , committeeMembers :: [Person] } data CommitteesView = CommitteesView { committeeView :: [CommitteeView] } Теперь у меня есть постоянная модель, определенная как: Person name Text Committee name Text CommitteePerson personId PersonId committeeId CommitteeId Я могу …
144 sql  list  haskell  esqueleto 

2
GHC-мод должен использовать полные имена для типов?
Я пытаюсь использовать ghc-modплагин vim для проверки типа / синтаксиса и т. Д. Однако я обнаружил, что ghc-modв сообщениях об ошибках всегда используются полные пути типов, например: test.hs|71 col 13 error| Couldn't match type ‘Data.Text.Internal.Text’ || with ‘[GHC.Types.Char]’ || Expected type: containers-0.5.6.2:Data.Map.Base.Map || [GHC.Types.Char] || ([(integer-gmp-1.0.0.0:GHC.Integer.Type.Integer, || integer-gmp-1.0.0.0:GHC.Integer.Type.Integer)], || containers-0.5.6.2:Data.Set.Base.Set …
143 haskell  ghc  ghc-mod 

1
Правильное использование API HsOpenSSL для реализации TLS-сервера
Я пытаюсь понять, как правильно использовать API OpenSSL.Session в параллельном контексте. Например, предположим, что я хочу реализовать a stunnel-style ssl-wrapper, я бы ожидал получить следующую базовую структуру скелета, которая реализует наивныйfull-duplex tcp-port-forwarder: runProxy :: PortID -> AddrInfo -> IO () runProxy localPort@(PortNumber lpn) serverAddrInfo = do listener <- listenOn localPort …
141 haskell  openssl  ssl 

5
Что такое «лифтинг» в Хаскеле?
Я не понимаю, что такое «подъем». Должен ли я сначала понять монады, прежде чем понять, что такое «лифт»? (Я тоже совершенно не осведомлен о монадах :) Или кто-то может объяснить мне это простыми словами?

1
Как отправить исполняемый файл с Language.Haskell.Interpreter?
Я надеялся встроить интерпретатор на Haskell, hintчтобы я мог написать плагины на Haskell для использования с моей программой. Я не хочу отправлять всю платформу Haskell для моих исполняемых файлов. Обычно исполняемые файлы Haskell довольно автономны. Например, удаление PATHне вызывает проблемы: $ PATH=. Hello Hello world Тем не менее, простая тестовая …

8
Мемоизация в Хаскеле?
Любые указатели на то, как эффективно решить следующую функцию в Haskell, для больших чисел (n > 108) f(n) = max(n, f(n/2) + f(n/3) + f(n/4)) Я видел примеры запоминания в Хаскеле для решения чисел Фибоначчи, которые включали (лениво) вычисление всех чисел Фибоначчи до требуемого n. Но в этом случае для …

2
Почему оптимальные оценщики λ-исчисления способны вычислять большие модульные возведения в степень без формул?
Церковные числа представляют собой кодирование натуральных чисел как функций. (\ f x → (f x)) -- church number 1 (\ f x → (f (f (f x)))) -- church number 3 (\ f x → (f (f (f (f x))))) -- church number 4 Аккуратно, вы можете возвести в степень …

5
Многострочные команды в GHCi
У меня проблема с вводом многострочных команд в ghci. Следующий двухстрочный код работает с файлом: addTwo :: Int -> Int -> Int addTwo x y = x + y Но когда вхожу в ghci, появляется ошибка: <interactive>:1:1: error: Variable not in scope: addTwo :: Int -> Int -> Int Я …
135 haskell  ghci 


5
Сокращение времени паузы при сборке мусора в программе на Haskell
Мы разрабатываем программу, которая принимает и пересылает «сообщения», сохраняя при этом временную историю этих сообщений, чтобы она могла рассказать вам историю сообщений по запросу. Сообщения идентифицируются численно, обычно имеют размер около 1 килобайта, и нам необходимо хранить сотни тысяч таких сообщений. Мы хотим оптимизировать эту программу для задержки: время между …

4
Разница между `mod` и` rem` в Haskell
В чем именно разница между modи remв Haskell? Оба, кажется, дают одинаковые результаты *Main> mod 2 3 2 *Main> rem 2 3 2 *Main> mod 10 5 0 *Main> rem 10 5 0 *Main> mod 1 0 *** Exception: divide by zero *Main> rem 1 0 *** Exception: divide by …
130 haskell 

7
Идиомы композиции функций (.) И приложения функции ($) в Haskell: правильное использование
Я читал Real World Haskell , и я приближался к концу, но вопрос стиля был мелочным у меня делать с (.)и ($)операторами. Когда вы пишете функцию, которая является композицией других функций, вы пишете ее так: f = g . h Но когда вы применяете что-то в конце этих функций, я …

4
Что означает символ «@» в отношении списков в Haskell?
Я наткнулся на фрагмент кода Haskell, который выглядит так: ps@(p:pt) Что означает @символ в этом контексте? Кажется, я не могу найти никакой информации в Google (к сожалению, сложно искать символы в Google), и я не могу найти функцию в документации Prelude, поэтому я полагаю, что вместо этого это должен быть …
128 haskell  syntax 

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