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

127
Маленькая программа на Haskell, скомпилированная с помощью GHC, в огромный двоичный файл

Даже тривиально маленькие программы на Haskell превращаются в гигантские исполняемые файлы. Я написал небольшую программу, которая была скомпилирована (с помощью GHC) в двоичный файл размером более 7 МБ! Что может заставить даже небольшую программу на Haskell компилироваться в огромный двоичный...

125
Как вы представляете граф в Haskell?

Достаточно просто представить дерево или список в haskell, используя алгебраические типы данных. Но как бы вы представили график типографически? Похоже, вам нужны указатели. Я предполагаю, что у вас может быть что-то вроде type Nodetag = String type Neighbours = [Nodetag] data Node a = Node a...

124
Объем памяти типов данных Haskell

Как я могу найти фактический объем памяти, необходимый для хранения значения некоторого типа данных в Haskell (в основном с GHC)? Можно ли оценить его во время выполнения (например, в GHCi) или можно оценить потребности в памяти для составного типа данных по его компонентам? В общем, если...

124
foldl против поведения foldr с бесконечными списками

В коде функции myAny в этом вопросе используется foldr. Он прекращает обработку бесконечного списка, когда предикат удовлетворен. Переписал с помощью foldl: myAny :: (a -> Bool) -> [a] -> Bool myAny p list = foldl step False list where step acc item = p item || acc (Обратите внимание, что...

124
Emacs Interactive-Haskell отвечает на отсутствие ответа, если кабала или рабочий каталог установлен на каталог проекта

Я столкнулся со странным поведением с ответом Interactive-Haskell emacs. Когда я загружаю файл, emacsмини-буфер показывает серию интерактивных запросов: Start a new project named 'myproject'? Cabal dir (guessed from myproject.cabal): Build target (empty for default): Set current directory: Если я...

124
Тип Haskell против конструктора данных

Я изучаю Haskell на сайте learnnyouahaskell.com . У меня проблемы с пониманием конструкторов типов и конструкторов данных. Например, я не очень понимаю разницу между этим: data Car = Car { company :: String , model :: String , year :: Int } deriving (Show) и это: data Car a b c = Car { company :: a...

122
Какова цель читающей монады?

Читательская монада настолько сложна и кажется бесполезной. В императивном языке, таком как Java или C ++, нет эквивалентной концепции для читающей монады, если я не ошибаюсь. Вы можете привести мне простой пример и немного прояснить...

121
Руководство по Haskell для начинающих? [закрыто]

В его нынешнем виде этот вопрос не подходит для нашего формата вопросов и ответов. Мы ожидаем, что ответы будут подтверждены фактами, ссылками или опытом, но этот вопрос, скорее всего, повлечет за собой дебаты, аргументы, опросы или расширенное обсуждение. Если вы считаете, что этот вопрос можно...

119
Чем полезна ленивая оценка?

Я давно задавался вопросом, чем полезна ленивая оценка. Мне еще предстоит, чтобы кто-нибудь объяснил мне разумным образом; в основном все сводится к «поверь мне». Примечание: я не имею в виду мемоизацию....

119
Сокращенный способ назначения одного поля в записи при копировании остальных полей?

Допустим, у меня есть следующая запись ADT: data Foo = Bar { a :: Integer, b :: String, c :: String } Мне нужна функция, которая принимает запись и возвращает запись (того же типа), где все поля, кроме одного, имеют значения, идентичные значению, переданному в качестве аргумента, например: walkDuck...

118
Требуется ли для Haskell сборщик мусора?

Мне любопытно, почему реализации Haskell используют GC. Я не могу представить себе случай, когда сборщик мусора был бы необходим на чистом языке. Это просто оптимизация для уменьшения количества копий или это действительно необходимо? Я ищу пример кода, который мог бы протечь, если бы GC не...

118
Что означает синтаксис «Just» в Haskell?

Я поискал в Интернете фактическое объяснение того, что делает это ключевое слово. Каждый учебник по Haskell, который я просматривал, просто начинает использовать его случайным образом и никогда не объясняет, что он делает (а я просмотрел многих). Вот базовый фрагмент кода из Real World Haskell,...

118
Почему минималистичный пример быстрой сортировки Haskell не является «настоящей» быстрой сортировкой?

На веб-сайте Haskell представлена ​​очень привлекательная функция быстрой сортировки из 5 строк , как показано ниже. quicksort [] = [] quicksort (p:xs) = (quicksort lesser) ++ [p] ++ (quicksort greater) where lesser = filter (< p) xs greater = filter (>= p) xs Они также включают «Истинную...

118
Haskell: Где vs. пусть

Я новичок в Haskell, и меня очень смущает Where vs. Let . У них обоих, похоже, схожая цель. Я прочитал несколько сравнений между Where и Let, но мне трудно понять, когда использовать каждый. Может ли кто-нибудь предоставить некоторый контекст или, возможно, несколько примеров, демонстрирующих,...

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

Я хочу решить некоторые проблемы с обработкой изображений в Haskell. Я работаю как с растровыми (растровыми), так и с цветными изображениями с миллионами пикселей. У меня есть ряд вопросов: На каком основании мне выбирать между Vector.Unboxedи UArray? Оба являются распакованными массивами, но...

115
Какие библиотеки Haskell лучше всего подходят для реализации программы? [закрыто]

Закрыто. Этот вопрос не соответствует рекомендациям по переполнению стека . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он соответствовал теме Stack Overflow. Закрыт 5 лет назад . Уточните этот вопрос Если я собираюсь запустить программу в...

114
Переполнение кучи потоков Haskell, несмотря на использование всего 22 МБ памяти?

Я пытаюсь распараллелить трассировщик лучей. Это означает, что у меня есть очень длинный список небольших вычислений. Ванильная программа запускается на определенной сцене за 67,98 секунды при использовании 13 МБ общей памяти и производительности 99,2%. В своей первой попытке я использовал...

112
Интерфейс Java и класс типов Haskell: различия и сходства?

Пока я изучаю Haskell, я обратил внимание на его типовой класс , который, как предполагается, был великим изобретением, появившимся на Haskell. Однако на странице Википедии о классе типов : Программист определяет класс типа, указывая набор имен функций или констант вместе с их соответствующими...

112
Почему функция Haskell «ничего не делает», id, потребляет тонны памяти?

В Haskell есть функция идентификации, которая возвращает входные данные без изменений. Определение простое: id :: a -> a id x = x Итак, для удовольствия, это должно вывести 8: f = id id id id id id id id id id id id id id id id id id id id id id id id id id id main = print $ f 8 Через несколько...