Описание тега ioref
Для IORef на языке программирования Haskell и их явно монадических эквивалентов в других языках программирования.
3
ответа
При совместном использовании IORef безопасно ли читать с readIORef, пока я пишу с помощью atomicModifyIORef?
Если я поделюсь IORef среди нескольких потоков, и использовать atomicModifyIORef написать ему: atomicModifyIORef ref (\_ -> (new, ())) Безопасно ли читать значение с простым старым readIORef? Или есть шанс readIORef вернет старое значение в друго…
17 фев '12 в 12:14
1
ответ
Почему я не могу записать значение в IORef, но могу его прочитать
В haskell мне нужна глобальная переменная, поэтому я решил использовать слот IORef, вот мой план: memo :: IORef Int memo = unsafePerformIO $ newRefInt 9999 evaluate ARGs s = do v <- Right $ unsafePerformIO $ readIORef memo val <- Right $ VInt …
04 дек '13 в 23:43
1
ответ
Как избежать IORefs в чистом коде
Я заметил, что Data.UnionFind использует монаду IO для предоставления указателей через IORefs. Я думаю, что все радостно звонят unsafePerformIO при локальном использовании в чистом коде, так как структура данных так хорошо понятна, но.. Есть ли кано…
24 апр '12 в 13:18
0
ответов
Использование IORef по сравнению с использованием Control.Monad.Trans.Control
Я хотел иметь возможность проверить цепочку перенаправлений, которые видело мое приложение при отправке запроса через Network.HTTP.Client, Эта функциональность не встроена в Network.HTTP.Clientхотя есть некоторые ссылки на идею в документации, включ…
23 авг '14 в 19:15
1
ответ
Компиляция IORef и STRef
Чтобы измерить производительность этих ссылок, я поместил сборку, созданную GHC, в следующий код: import Data.IORef main = do r <- newIORef 18 v <- readIORef r print v Я ожидал, что IORef будет полностью оптимизирован, оставив только системный…
29 авг '16 в 09:25
1
ответ
В чем разница между IORef и MVar?
У меня возникли небольшие проблемы с пониманием принципиальной разницы между типом IORef и типом MVar в Haskell. Может ли кто-нибудь помочь мне с этим? Похоже, они решают ту же проблему. MVar, кажется, нацелен на многопоточность, но IORef имеет функ…
07 мар '11 в 06:49
1
ответ
Как разделить состояние IORef между двумя вызовами функций в Haskell при использовании IO?
Я пытаюсь изучить Haskell, и я играю с IORef, к которому я пытаюсь сохранять и находить записи. Мой код выглядит примерно так (обратите внимание, что я выбрал "String" в качестве типа IORef в этом примере только для удобства и краткости, в моем реал…
08 дек '17 в 08:06
1
ответ
Zoom экземпляр для ReaderT IORef
Я новичок в объективе и у меня возникли проблемы с реализацией экземпляра Zoom для этого типа: newtype MyStateT s m a = MyStateT { unMyStateT :: ReaderT (IORef s) m a } deriving (Functor, Applicative, Monad, MonadIO) instance (MonadIO m) => Monad…
10 фев '18 в 03:46
1
ответ
Как переписать функцию Haskell, которая использует modifyIORef для использования atomicModifyIORef
Я пытаюсь решить проблему, когда Haskell дает разные выходные данные для тех же аргументов. кто-то уже предположил, что это может быть проблема, связанная с темой. Мне удалось переписать простую функцию для использования атомарной версии, но с более…
20 май '18 в 12:13
2
ответа
Показать для типов ввода-вывода
У меня есть тип данных, который содержит IORef в качестве важного элемента. Это означает, что нет чистого способа сделать его членом show тип класс. Это не так уж плохо, так как у меня есть print функция в монаде IO для этого типа. Но в GHCi раздраж…
30 ноя '11 в 20:10
3
ответа
Путаница по поводу IORefs, чтобы сделать счетчик
Я нашел пример кода и немного изменил его counter = unsafePerform $ newIORef 0 newNode _ = unsafePerformIO $ do i <- readIORef counter writeIORef counter (i+1) return i Который возвращает 1, затем 2, затем 3, 3 и т. Д. При каждом запуске. Но когд…
16 дек '10 в 14:19
1
ответ
IORef в Хаскеле
Мне было интересно, было ли законное использование IORef в Haskell? В частности, я был бы благодарен, если бы кто-то мог обратиться к следующему или указать подходящее место, чтобы узнать больше об этом: Считается ли использование IORef плохой практ…
23 сен '18 в 16:13
2
ответа
IORef сохранение значения в случае ошибки
Есть ли способ НЕ изменять значение IORef, если ошибка происходит внутри modifyIORef? import Data.IORef main = do a <- newIORef (1::Int) -- a keeps error now, not Int modifyIORef a (const $ error "Error forever") val <- readIORef a -- val is e…
06 май '16 в 17:06
1
ответ
IORef все еще ссылается на старое значение после обновления
Фон Я - Schemer, начинающий изучать Haskell. Я пытаюсь реализовать интерпретатор Scheme в C, следуя главе 4 SICP. Оказывается, программирование непосредственно на C слишком сложно. Поэтому я решил сделать первый прототип на Хаскеле. С помощью " Напи…
21 авг '17 в 11:20
3
ответа
Рассуждение о переупорядочении операций IORef в параллельных программах
Документы говорят: В параллельной программе операции IORef могут отображаться не по порядку в другом потоке, в зависимости от модели памяти базовой архитектуры процессора... Реализация необходима для того, чтобы переупорядочение операций с памятью …
02 фев '14 в 03:40
3
ответа
Haskell: производительность IORefs
Я пытался закодировать алгоритм в Haskell, который требует использования множества изменяемых ссылок, но он (возможно, неудивительно) очень медленный по сравнению с чисто ленивым кодом. Рассмотрим очень простой пример: module Main where import Data.…
05 июн '14 в 19:13
2
ответа
Использование IORef в трехпенном графическом интерфейсе
Я пытаюсь установить IORef в Threepenny-GUI, но я не могу заставить его работать. В моем приложении сам IORef будет более сложным и не будет отображаться сам по себе - но этот пример демонстрирует проблему, я думаю. Вот моя попытка: testIORef2 :: IO…
01 май '15 в 11:39
4
ответа
Когда можно использовать IORef?
Одна вещь, которая всегда смущала меня, это то, что сейчас самое время использовать IORef. Существуют ли какие-либо рекомендации, которые следует соблюдать при принятии решения, использовать ли IORef для выполнения задачи? Когда подходящее время исп…
19 дек '09 в 03:43
1
ответ
Haskell: попытка параллельной реализации `atomicModifyIORef`
Из того, что я понимаю, модификации к IORefОни очень быстрые, все, что они включают, это обновление указателя thunk. Конечно, читателю (то есть тому, кто хочет увидеть значение на своей веб-странице) потребуется время, чтобы оценить эти результаты (…
18 апр '12 в 05:40
1
ответ
Следует проверить изменения перед написанием IORef?
Есть код, который читает IORef и на основе некоторых условий и вычислений создает новое значение. Теперь он записывает новое значение в этот IORef. Но есть шанс, что это не изменилось вообще. Новое значение может быть идентично старому. Каковы сообр…
14 июн '11 в 09:48