Вопросы по теме 'unsafe-perform-io'

Как использовать putStrLn для трассировки (Haskell)
Я пытаюсь заставить функцию Haskell показывать всякий раз, когда она применяется, добавляя вызов «putStrLn»: isPrime2 1 = False isPrime2 n = do putStrLn n null (filter (==0) (map (mod n) (filter isPrime2 [2..(floor (sqrt(fromIntegral...
1357 просмотров
schedule 09.02.2023

Показать для типов ввода-вывода
У меня есть тип данных, который содержит IORef как важный элемент. Это означает, что нет простого способа сделать его членом класса типов show . Это не так уж плохо, так как у меня есть функция print в монаде IO для этого типа. Но в GHCi это...
2612 просмотров

unsafePerformIO в многопоточных приложениях не работает
Ниже приведен исходный код примера программы: Когда я запускаю его из ghci, и printJob, и printJob2 работают нормально и записывают десять строк в текстовый файл. Но при компиляции с флагом -threaded программа записывает только одну строку. У...
551 просмотров

Почему я не могу записать значение в IORef, но могу его прочитать
В haskell мне нужна глобальная переменная, поэтому я решил использовать слот IORef, вот мой план: memo :: IORef Int memo = unsafePerformIO $ newRefInt 9999 evaluate ARGs s = do v <- Right $ unsafePerformIO $ readIORef memo val <- Right...
243 просмотров

Неизменяемые данные от FFI и unsafePerformIO
Я делаю привязку Haskell к библиотеке загрузки изображений и хочу максимально избегать копирования. Когда изображение загружено, я получаю структуру данных из библиотеки C, содержащую данные изображения. Теперь эта структура во всех смыслах...
173 просмотров
schedule 17.03.2023

(Отредактировано) Как получить случайное число в Haskell без ввода-вывода
Я хочу иметь функцию, которая возвращает разные stdGen в каждом вызове без ввода-вывода. Я пытался использовать unsafePerformIO в качестве следующего кода. import System.IO.Unsafe import System.Random myStdGen :: StdGen myStdGen =...
1915 просмотров
schedule 02.12.2023

Запоминание эффективной функции
Я начал работать над проектом, определяющим клеточный автомат как локальную функцию перехода: newtype Cellular g a = Cellular { delta :: (g -> a) -> a } Всякий раз, когда g является Monoid , можно определить глобальный переход,...
144 просмотров
schedule 14.10.2022