好吧,讓我們假設我有一個函數,它接受一個字符串並返回由文本文件指定的字符串的某個值。文本文件將如下所示。另一個haskell IO問題
你好 - 2
再見 - 3
因此函數將返回2給出 「你好」 和3所給出的 「再見」。現在,功能型重量(我不能改變它,因爲這是該框架的一部分):
type Weight = String -> Int
如何實現這樣的功能,因爲它必須是類型重量。問題是,我不知道如何讓體重知道給定一個字符串返回什麼值。我無法對這些值進行硬編碼,因爲它們在不同的文本文件中會有所不同。我不能在函數內部讀取文件或類似的東西,對吧?還有其他選擇嗎?
'READFILE無論>> =回報。 assignWeight'可以寫爲'assignWeight <$> readFile whatever'。 – kqr
謝謝,這就是我的想法。不幸的是,這些都不令人滿意,所以我不得不尋找一些解決方法。我只是想,也許你可以模擬一個全局固定變量來保存文件的內容,因爲在文件內容被讀取後它不會改變。但我看不到這樣做的方式。 – redFur
@ user2922609你不能。 Haskell不允許這種突變 – jozefg