[英]writing file with output function haskell
我想將程序的輸出自動寫入文件,但是出現一些錯誤。 我是Haskell的新手。
一個非常簡單的示例:
func = do
writeFile "file.txt" show(calc)
calc = do return (1+1)
我想要這樣的東西。 當我執行功能時,創建一個文件並在上面寫
錯誤是:
錯誤“ test.hs”:5-輸入中的語法錯誤(意外的=)
謝謝。
此代碼中有幾個錯誤:
do
來簡化func
和calc
。 從技術上講這不是錯誤,但是您不應該使用不必要的do
因為它們只會使您的代碼混亂。 show
的類型為Show a => a -> String
calc
Show a => a -> String
,而calc
的類型為IO String
。 由於類型不匹配,因此您的程序將無法編譯。 這是一個具有相同功能的程序,可以編譯:
func :: IO () -- is an IO action
func = writeFile "file.txt" (show calc) -- removed the do
calc :: Integer -- has type integer, meaning "show" is able to operate on it
calc = 1+1 -- removed do and return
除去返回的原因是, return
不表現得像return
的類C語言。 Haskell中的return
以單聲道動作包裝一個值,而在類似C的語言中,它僅返回表達式或變量的值作為函數的結果。 我建議閱讀這一章以獲取更多信息,因為它涵蓋了在Haskell輸入和輸出相當不錯。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.