Результаты поиска по запросу "haskell"
Разграничение монады IO
Приятно знать (по крайней мере, в Safe Haskell) из подписи, выполняет ли что-либо действия IO, но IO охватывает много разных вещей -putStrдоступ к базе данных, удаление и запись в файлы, IORefs и т. д. Если я использую сигнатуры типов в качестве ...
Эти проблемы не всегда являются фатальными, но об этом стоит задуматься и достаточно сильной головной боли, которой я лично избегаю ленивых операций ввода-вывода, если только нет реальной проблемы с выполнением всей работы заранее.
чно слышал, что производственный код должен избегать использования Lazy I / O. У меня вопрос, почему? Можно ли когда-нибудь использовать Lazy I / O за пределами игры? И что делает альтернативы (например, счетчики) лучше?
Таким образом, ответ на ваш вопрос таков: в Хаскеле не существует такого понятия, как время жизни промежуточных результатов. Все, что можно сказать, это то, что оцененное значение будет там, когда это необходимо.
том функциональном языке с ленивой семантикой (такой как Haskell) результаты вычислений запоминаются так, что дальнейшие вычисления функции с теми же входными данными не пересчитывают значение, а получают его непосредственно из кэша запомненных ...
быть чем-то вроде C
ища для размышлений. Когда я пишу монадический код, монада налагает упорядочение на выполненные операции. Например, если я напишу в монаде IO: do a <- doSomething b <- doSomethingElse return (a + b)я знаюdoSomething будет выполнен ...
Тип возврата в блоке do
Я пытаюсь понять Монады в Хаскеле, и во время моих бесчисленных экспериментов с кодом я столкнулся с этой вещью: f2 = do return "da"и тот факт, что он не хочет компилировать с огромной ошибкой относительно типа. Я думаю, что единственная важная ...
{- # OPTIONS_GHC -fspec-constr-count = 16 -O2 # -} использует 5,8 секунды для моего тестового файла, в то время как {- # OPTIONS_GHC -w # -} использует 10,5 секунды. Таким образом, -fspec-constr-count = 16 определенно предпочтительнее. Спасибо за помощь.
учаю следующую ошибку при попытке компиляции $ ghc --make -O2 -Wall -fforce-Recomp [1 из 1] Компиляция Main (isPrimeSmart.hs, isPrimeSmart.o) Функция SpecConstr `$ wa {v s2we} [lid] 'имеет два шаблона вызовов, но ограничение равно 1 ...
Когда GHC не может вывести сигнатуру равенства типов для допустимой функции, как в вашем случае, решение состоит в том, чтобы дать функции сигнатуру типа. Я не знаю интерфейс к этой библиотеке. Тем не менее, я думаю, что правильная подпись
аюсь работать с Numeric.AD и пользовательским типом Expr. Я хочу рассчитать символический градиент введенного пользователем выражения. Первое испытание с постоянным выражением работает хорошо: calcGrad0 :: [Expr Double] calcGrad0 = grad df vars ...
Это хороший обходной путь для моего варианта использования, но ошибка все еще существует.
сто две вещи, которые я так люблю, собираются вместе, чтобы вызвать у меня столько раздражения (помимо моих детей). На работе я написал программу на Haskell, в которой используются такие библиотеки, как text, xml-enumerator, attoparsec-text и т. ...
s.
апечатать список на стандартный вывод в Haskell? Допустим, у меня есть список[1,2,3] и я хочу преобразовать этот список в строку и распечатать его. Думаю, я мог бы построить свою собственную функцию, но, безусловно, в Haskell есть встроенная ...
, полезно для абсолютных новичков, таких как я, которые на самом деле ищут «почему мои новые строки не отображаются в ghci, как я хочу»
могу создать новую строку внутри строки? Это возможно без использованияIO ()? formatRow :: Car -> String formatRow (a, d:ds, c, x:xs) = a ++ " | " ++ x ++ concat xs ++ " | " ++ show c ++ " | " ++ d ++ concat ds ++ (show '\n')