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

161
Как определить функцию в ghci через несколько строк?

Я пытаюсь определить любую простую функцию, которая занимает несколько строк в GHCI, взять в качестве примера следующее: let abs n | n >= 0 = n | otherwise = -n До сих пор я пытался нажать Enter после первой строки: Prelude> let abs n | n >= 0 = n Prelude> | otherwise = -n...

156
Специализация с ограничениями

У меня проблемы с получением GHC, чтобы специализировать функцию с ограничением класса. У меня есть минимальный пример моей проблемы здесь: Foo.hs и Main.hs . Два файла компилируются (GHC 7.6.2, ghc -O3 Main) и запускаются. ПРИМЕЧАНИЕ: Foo.hs действительно урезано. Если вы хотите понять, зачем...

155
Последствия фолд против фолд (или фолд)

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

147
Почему GHC такой большой / большой?

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

143
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:...

141
Правильное использование API HsOpenSSL для реализации TLS-сервера

Я пытаюсь понять, как правильно использовать API OpenSSL.Session в параллельном контексте. Например, предположим, что я хочу реализовать a stunnel-style ssl-wrapper, я бы ожидал получить следующую базовую структуру скелета, которая реализует наивныйfull-duplex tcp-port-forwarder: runProxy ::...

138
Что такое «лифтинг» в Хаскеле?

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

136
Как отправить исполняемый файл с Language.Haskell.Interpreter?

Я надеялся встроить интерпретатор на Haskell, hintчтобы я мог написать плагины на Haskell для использования с моей программой. Я не хочу отправлять всю платформу Haskell для моих исполняемых файлов. Обычно исполняемые файлы Haskell довольно автономны. Например, удаление PATHне вызывает проблемы: $...

136
Мемоизация в Хаскеле?

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

135
Многострочные команды в GHCi

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

130
Сокращение времени паузы при сборке мусора в программе на Haskell

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

130
Разница между `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 zero *Main> mod 1 (-1) 0 *Main>...

129
Идиомы композиции функций (.) И приложения функции ($) в Haskell: правильное использование

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

128
Что означает символ «@» в отношении списков в Haskell?

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

127
Каковы убедительные примеры использования зависимых типов методов?

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