Вопросы по теме '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 просмотров
schedule
22.01.2024
unsafePerformIO в многопоточных приложениях не работает
Ниже приведен исходный код примера программы:
Когда я запускаю его из ghci, и printJob, и printJob2 работают нормально и записывают десять строк в текстовый файл.
Но при компиляции с флагом -threaded программа записывает только одну строку.
У...
551 просмотров
schedule
01.01.2023
Почему я не могу записать значение в IORef, но могу его прочитать
В haskell мне нужна глобальная переменная, поэтому я решил использовать слот IORef, вот мой план:
memo :: IORef Int
memo = unsafePerformIO $ newRefInt 9999
evaluate ARGs s = do
v <- Right $ unsafePerformIO $ readIORef memo
val <- Right...
243 просмотров
schedule
29.03.2024
Неизменяемые данные от 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