3
ответа

Каковы отношения между распакованными типами и строгостью?

Распакованные типы, как Int# и строгие функции, как f (! x) =..., что-то другое, но я вижу концептуальное подобие - они запрещают преобразователей/лень в некотором роде. Если Haskell был строгим...
вопрос задан: 30 September 2011 19:19
0
ответов

Что такое нормальная форма слабой головы?

Что означает нормальная форма слабой головы (WHNF)? Что означает нормальная форма головы (HNF) и нормальная форма (NF)? Real World Haskell заявляет: Знакомая функция seq оценивает выражение для того, что мы ...
вопрос задан: 9 July 2019 02:36
0
ответов

Отладка нежелательной строгости?

У меня проблема, о которой я не знаю, как рассуждать. Я как раз собирался спросить, может ли кто-нибудь помочь мне с конкретной проблемой, но меня осенило, что я могу задать более общий вопрос и...
вопрос задан: 23 May 2017 10:29
0
ответов

Является ли оператор && строгим в Haskell?

Например, у меня есть операция fnB :: a -> Bool, которая не имеет смысла, пока fnA :: Bool не вернет False. В CI можно объединить эти две операции в один блок if: if (fnA && fnB (a)) {...
вопрос задан: 31 August 2016 13:31
0
ответов

Профилирование программы на Haskell

У меня есть фрагмент кода, который многократно выбирает из распределения вероятностей с использованием последовательности. Морально это выглядит примерно так: :sampleMean ::MonadRandom m => Int -> m Float -> m Float...
вопрос задан: 22 July 2012 00:15
0
ответов

Strict fmap с использованием только Functor, а не Monad

Одно раздражение, связанное с ленивым вводом-выводом, привлекло мое внимание недавно import System.IO import Control.Applicative main = withFile "test.txt" ReadMode getLines >> = mapM_ putStrLn where getLines h = ...
вопрос задан: 24 February 2012 00:28
0
ответов

В чем заключаются точки строгости Haskell?

Все мы знаем (или должны знать), что Haskell по умолчанию является ленивым. Ничего не оценивается до тех пор, пока его не нужно оценивать. Итак, когда нужно что-то оценивать? Есть моменты, в которых Haskell должен быть строгим. Я ...
вопрос задан: 5 February 2012 00:34
0
ответов

Преимущества строгих полей в типах данных

Теперь это может быть немного нечетко, но мне было интересно, какое-то время. Насколько мне известно с!, Можно убедиться, что параметр для конструктора данных оценивается до создания значения: ...
вопрос задан: 20 December 2011 14:21
0
ответов

Будет ли foldl когда-либо предпочтительнее своего строгого кузена foldl '?

В Haskell есть две функции левой свёртки для списков: foldl, и «строгий» вариант, фолдль. Проблема с нестрогим foldl состоит в том, что он строит башню преобразователей: foldl (+) 0 [1..5] -> ((((0 + ...
вопрос задан: 23 November 2011 00:21
0
ответов

Принудительная строгость для списков в haskell

Я действительно потратил время алгоритм потребления, который в результате выдает короткую строку. Когда я пытаюсь распечатать его (через putStrLn), он появляется на экране символ за символом. Я действительно понял, почему это ...
вопрос задан: 30 September 2011 19:19
0
ответов

Почему map не устанавливает строгость, тогда как zipWith делает?

Существует две строгих версии функции zipWith: 1) Действительно строгие, элементы списков l1 и l2 оцениваются, поэтому их преобразователи не занимают все пространство стека (код Дона Стюарта) zipWith 'f l1 l2 = [f e1 ...
вопрос задан: 30 September 2011 19:18