Вопросы по теме '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 просмотров
schedule
01.05.2022
Принудительная строгость для списков в haskell
Я сделал очень трудоемкий алгоритм, который в результате выдает короткую строку. Когда я пытаюсь распечатать его (через putStrLn), он появляется на экране посимвольно. Я понял, почему это произошло, и попытался принудительно оценить строку перед...
698 просмотров
schedule
04.03.2023
Является ли оператор && строгим в 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 просмотров
schedule
07.12.2022
Упражнение с неопровержимым/ленивым шаблоном в викикниге Haskell
На полпути сюда...
https://en.wikibooks.org/wiki/Haskell/Laziness
...это упражнение, в котором спрашивают о влиянии изменений на альтернативную реализацию функции head , которая использует неопровержимые шаблоны. Он дает определение head'...
376 просмотров
schedule
28.09.2023
Работа с бесконечными списками со строгими монадами
У меня есть функция f :: [a] -> b , которая работает с бесконечными списками (например, take 5 , takeWhile (< 100) . scanl (+) 0 и т. д.). Я хочу передать этой функции значения, сгенерированные строгими монадическими действиями (например,...
303 просмотров
schedule
07.05.2023
Ошибка GHC из-за отсутствия строгих полей
Я читаю эту статью . Он гласит:
При построении значения с синтаксисом записи GHC выдаст вам ошибку, если вы забудете строгое поле. Это даст вам предупреждение только для нестрогих полей.
Может ли кто-нибудь привести мне конкретный...
152 просмотров
schedule
11.09.2023