簡體   English   中英

使用輸出功能haskell寫入文件

[英]writing file with output function haskell

我想將程序的輸出自動寫入文件,但是出現一些錯誤。 我是Haskell的新手。

一個非常簡單的示例:

func =  do
writeFile "file.txt" show(calc)

calc = do return (1+1)

我想要這樣的東西。 當我執行功能時,創建一個文件並在上面寫

錯誤是:

錯誤“ test.hs”:5-輸入中的語法錯誤(意外的=)

謝謝。

此代碼中有幾個錯誤:

  • 您應該刪除do來簡化funccalc 從技術上講這不是錯誤,但是您不應該使用不必要的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.

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