Вопросы по теме 'strictness'

Более строгий контроль.Monad.Trans.Writer.Strict
Итак, у нас есть: import Control.Monad.Writer.Strict type M a = Writer (Map Key Val) a для некоторых Key и Val . Все работает нормально, пока мы не смотрим на собранные выходные данные: report comp = do let (a,w) = runWriter...
428 просмотров

Принудительная строгость для списков в haskell
Я сделал очень трудоемкий алгоритм, который в результате выдает короткую строку. Когда я пытаюсь распечатать его (через putStrLn), он появляется на экране посимвольно. Я понял, почему это произошло, и попытался принудительно оценить строку перед...
698 просмотров

Является ли оператор && строгим в Haskell?
Например, у меня есть операция fnB :: a -> Bool , которая не имеет смысла, пока fnA :: Bool не вернет False . В C я могу объединить эти две операции в один if блок: if( fnA && fnB(a) ){ doSomething; } а C гарантирует, что...
15148 просмотров
schedule 12.05.2023

Низкая производительность Haskell foldl с (++)
У меня есть такой код: import Data.List newList_bad lst = foldl' (\acc x -> acc ++ [x*2]) [] lst newList_good lst = foldl' (\acc x -> x*2 : acc) [] lst Эти функции возвращают списки с каждым элементом, умноженным на 2: *Main>...
1069 просмотров

Упражнение с неопровержимым/ленивым шаблоном в викикниге Haskell
На полпути сюда... https://en.wikibooks.org/wiki/Haskell/Laziness ...это упражнение, в котором спрашивают о влиянии изменений на альтернативную реализацию функции head , которая использует неопровержимые шаблоны. Он дает определение head'...
376 просмотров

Работа с бесконечными списками со строгими монадами
У меня есть функция f :: [a] -> b , которая работает с бесконечными списками (например, take 5 , takeWhile (< 100) . scanl (+) 0 и т. д.). Я хочу передать этой функции значения, сгенерированные строгими монадическими действиями (например,...
303 просмотров

Ошибка GHC из-за отсутствия строгих полей
Я читаю эту статью . Он гласит: При построении значения с синтаксисом записи GHC выдаст вам ошибку, если вы забудете строгое поле. Это даст вам предупреждение только для нестрогих полей. Может ли кто-нибудь привести мне конкретный...
152 просмотров
schedule 11.09.2023