cost 98 ms
如何使用 unsafePerformIO 來編寫 unsafeCoerce?

[英]How can unsafePerformIO be used to write unsafeCoerce?

眾所周知, unsafePerformIO不是類型安全的。 這通常通過使用它來實現unsafeCoerce來unsafeCoerce : 正如我幾年前所展示的,這個實現不是線程安全的。 一個線程可以寫入盒子,然后另一個線程可以在第一個線程可以讀取之前再次寫入盒子。 哎呀! 如何解決這個問題? ...

unsafeDupablePerformIO 和 accursedUnutterablePerformIO 有什么區別?

[英]What is the difference between unsafeDupablePerformIO and accursedUnutterablePerformIO?

我在 Haskell 庫的限制部分徘徊,發現了這兩個卑鄙的咒語: 然而,實際的區別似乎只是在runRW#和($ realWorld#)之間。 我對他們在做什么有一些基本的了解,但我沒有得到使用一個而不是另一個的真正后果。 有人可以解釋一下有什么區別嗎? ...

安全使用unsafeIOToSTM從數據庫中讀取?

[英]Safe to use unsafeIOToSTM to read from database?

在這個偽代碼塊中: 使用unsafeIOToSTM是否安全? 文檔說: STM實現通常會多次運行事務,因此如果您的IO有任何副作用,您需要為此做好准備。 基本上,如果一個事務失敗,那是因為其他一些線程wroteValueToLocalStorage並且當重試事務時它將返回 ...

記住有效的功能

[英]Memoizing an effectful function

我開始研究一個將元胞自動機定義為局部轉換函數的項目: 每當g是Monoid ,可以通過在應用局部轉換之前移動焦點來定義全局轉換。 這為我們提供了以下step功能: 現在,我們可以使用iterate簡單地運行自動機。 我們可以節省很多(我意味着很多:它確實可以節省小時)重新計算 ...

Haskell-希望文件中的全局變量保持不變

[英]Haskell - want global variable from file that doesn't change

我有這個功能,可以構建一個從字典文件中查找字詞的映射,該映射不會改變。 我想將地圖作為全局變量,因為它需要由其他函數使用。 目前,這些函數在buildAnagrams上使用unsafePerformIO,但我知道不建議這樣做。 整個程序也很慢,因為它要多次構建地圖。 必須有更好的方法來 ...

(已編輯)如何在沒有IO的情況下在Haskell中獲取隨機數

[英](Edited) How to get random number in Haskell without IO

我希望有一個函數在沒有IO的每個調用中返回不同的stdGen 。 我試過使用unsafePerformIO ,如下面的代碼。 但是當我嘗試在ghci中調用myStdGen時,我總是得到相同的值。 我濫用了unsafePerformIO嗎? 或者還有其他方法可以實現我的目標嗎? ...

如何包裝不安全的FFI? (Haskell的)

[英]How to wrap unsafe FFI? (Haskell)

這是一個后續問題, 是否有充分的理由使用unsafePerformIO? 所以我們知道 是不安全的,不能與unsafePerformIO一起使用。 但是p_sin函數仍然是一個數學函數,它以不安全的方式實現的事實是一個實現細節。 我們並不完全希望矩陣乘法在IO中,因為它涉及 ...

超時和不安全的PerformIO

[英]Timeout and unsafePerformIO

我正在Haskell進行一些練習,探索一些我不熟悉的領域,但是我無法理解混合System.Timeout和System.IO.Unsafe得到的行為。 我用getContents懶洋洋地讀取一個流,用一個純函數對其進行過濾,然后輸出結果。 典型的過濾器如下所示: 並使用類似的過濾 ...

來自FFI和unsafePerformIO的不可變數據

[英]Immutable data from FFI and unsafePerformIO

我正在做一個Haskell綁定到圖像加載庫,我想盡可能避免復制。 加載圖像時,我從包含圖像數據的C庫中獲取數據結構。 現在,這個結構對於所有意圖和目的都是不可變的,但是將數據從它讀入Haskell是一個IO動作。 是否可以使用unsafePerformIO(或者也許是unsafeDupab ...

為什么我不能將值寫入IORef但可以讀取它

[英]Why I can't write a value into the IORef but can read it

在haskell中,我需要一個全局變量,因此我選擇使用IORef插槽,這是我的計划: 我的計划是當執行者評估“ Call”節點時,它將參數保存到插槽中。 然后,當評估“ ARG”節點時,將讀取該備忘錄插槽。 但是,無論我做什么,我都只能讀取9999,但無法將新值寫入該插槽。 ...

我濫用不安全的PerformIO嗎?

[英]Am I abusing unsafePerformIO?

為了熟悉unsafePerformIO (如何使用它以及何時使用它),我實現了一個用於生成唯一值的模塊。 這就是我所擁有的: 令我高興的是,名為Data.Unique的包選擇了與我相同的數據類型; 另一方面,他們選擇了newUnique :: IO Unique類型,但是如果可能 ...

在編譯時或運行時生成隨機字符串,並在程序的其余部分中使用它

[英]Generate a random string at compile time or run time and use it in the rest of the program

最好的方法是什么? unsafePerformIO ? 模板Haskell? 別的什么? 我從來沒有使用過這些,所以我不知道使用它們的許多細節。 請注意,程序將在每次運行時進行編譯,因此在編譯時或運行時生成字符串無關緊要。 我還需要在整個代碼中的大量位置使用此字符串,因此我無法以 ...

在randomIO上使用unsafeperformIO的風險

[英]Risks of using unsafeperformIO on randomIO

我正在創建一個Haskell應用程序,它在無限循環上生成一個隨機數(僅在客戶端請求時)。 但是,我應該只為此目的使用純函數。 使用unsafeperformIO包裝randomIO是否安全,沒有任何嚴重的穩定性或性能風險? ...

unsafePerformIO和FFI庫初始化

[英]unsafePerformIO and FFI library initialization

我正在為C中的庫創建一個FFI模塊,它希望在其他任何東西之前調用一次非重入函數。 這個調用是冪等的,但是有狀態的,所以我可以在每個Haskell調用中調用它。 但它很慢並且由於不可重入而可能導致沖突。 那么這是使用unsafePerformIO的合適時機嗎? 我可以將Bool包裝在一 ...

如何知道一個看似純粹的 Haskell 接口何時隱藏了不安全操作?

[英]How to know when an apparently pure Haskell interface hides unsafe operations?

我最近一直在閱讀有關unsafePerformIO的內容,我想請教您一些事情。 我同意真正的語言應該能夠與外部環境交互這一事實,因此unsafePerformIO在某種程度上是合理的。 但是,據我所知,我不知道有什么快速方法可以知道一個表面上純的(從類型判斷)接口/庫是否真的純,而無需檢查代碼以搜 ...

線程應用程序中的unsafePerformIO不起作用

[英]unsafePerformIO in threaded applications does not work

以下是示例程序的來源: 當我從ghci中運行它時,printJob和printJob2都可以正常運行並將十行寫入文本文件。 但是,當使用-threaded標志進行編譯時,該程序僅寫一行。 我在ArchLinux上擁有ghc 7.0.3 這是編譯命令: 我做錯了什么 ...


 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM