我的問題是Haskell如何與系統交互。 例如,IO如何發生?Haskell與OS交互(中斷)
我對IO monad不感興趣。或者如何讓Haskell打印一個字符串或讀取一個文件。 我對Haskell和底層操作系統之間的層感興趣(如果是這樣的話)。 Haskell本身(不是我)如何將任何內容打印到控制檯?它如何與操作系統交互?
例如,在Python中,我可以執行任何系統命令。我可以讓它做echo message
。
這真的變得非常重要的是瞭解套接字如何工作,以及如何確保我的程序在我獲得新連接時被中斷。
在python中,一種方法是使用epoll
這是操作系統的一部分(我相信只是接管了對python進程的控制)。
編輯:@Daniel Wagner建議讓我把這個問題更具體一些。 目前我並不是在解決問題,我只是理論上很好奇。 因此,讓我問你: Haskell如何處理Linux上套接字產生的中斷?
編輯:並使它更容易理解我在尋找的答案: - 當Haskell獲得中斷時,Haskell是否停止播放? - 在我可以完成舊的處理之前,是否有任何保證可以回答新的連接? - 它如何獲得中斷?
在某些時候,Haskell標準I/O庫與本地代碼有一些綁定,可能是標準的C I/O例程。 –
你的問題有點含糊。 (操作系統很大!)是,「我如何使用套接字?」?或者,也許是,「我如何產生運行特定命令的另一個進程?」?如果兩者都不是,你現在面臨的實際問題是什麼?你需要做什麼,你不知道該怎麼做? –