簡體   English   中英

在Haskell庫中處理System.Process值的最佳方法是什么?

[英]What is the best way to handle System.Process values in a Haskell library?

我正在通過轉換我的OCaml程序來學習Haskell,這些程序本身就是舊的Pick Basic程序的轉換。 我使用ncurses(我在Haskell中嘗試vty-ui)與一個自編寫的庫相結合,該庫維護一個開放會話,以Tk的願望作為最終轉換為完整GUI的開始,但主要用於報告,錯誤彈出窗口和其他用戶反饋。

我不希望調用程序必須在每次調用時都傳遞I / O句柄和進程ID。 我已經嘗試了Data.Global但無法弄清楚如何存儲進程ID。 在最初的電話中,

(hin, hout, herr, hproc) <- runInteractiveCommand "wish"
...
let gvProc = declareMVar "wish-proc" hproc

給出一個編譯器錯誤“沒有為使用”declareMVar“而產生的(Data.Typeable.Internal.Typeable ProcessHandle)實例

如果我試圖將聲明放在頂層:

gvProc = declareMVar "wish-proc" ???What do I put here???

但也許有更好的方法來完成我需要的東西?

Data.Global問題看起來像缺少Typeable實例。 你可以修復如下:

{-# LANGUAGE StandaloneDeriving, DeriveDataTypeable #-}

import Data.Typeable
import System.Process
deriving instance Typeable (ProcessHandle)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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