2
各行如何寫代碼包含以下細節的Haskell語言:閱讀Haskell的一個文本文件,處理的是單獨
- 第一讀取文本文件。
- 然後,在一個循環中處理一個函數在這個文本文件的每一行上。
- 最後將每個處理過的行寫入輸出文本文件。
注意:行在之前的輸入文件中是分開和組織的,並且已準備好進行處理。
這裏有我的代碼,我的意思是關於上述細節。的確,我希望你在下面的代碼中指導我關於?
部分,並幫助我根據我在評論--/
部分中提到的內容在此代碼中完成?
部分。
main :: IO()
main = do
file:_ <- getArgs
gr <- readPGF file
content <- readFile "input.txt"
loop gr content
loop :: PGF -> String -> IO()
loop gr content = ?
-- ln <- lines content
-- if ln == EndOfFile then putStrLn "bye" else do
-- appendFile "output.txt" $function gr line
-- loop gr content
function :: PGF -> String -> String
function gr s = *functions body*
感謝您的回答。
編輯1:
我試圖構建一個循環,我的代碼,我寫了下面的代碼:
module Main where
import PGF
import System.Environment
import System.IO
main :: IO()
main = do
file:_ <- getArgs
gr <- readPGF file
content <- readFile "testCasePF.txt"
line <- lines content
loop gr line
loop :: PGF -> String -> IO()
loop g x:y = do
if x == "quit" then putStrLn "bye" else do
appendFile "output.txt" $function g x
loop gr y
function :: PGF -> String -> String
function gr s = *function body*
但鋼我有問題,當我嘗試編譯它,我發現我無法修復的錯誤: parse error in pattern: loop
我希望你能幫我解決這個問題。
'循環(gr內容)'應該是'循環gr內容'。函數應用程序不需要括號,在這裏它實際上會導致類型錯誤,因爲它使得它看起來像是將參數'content'應用於函數'gr',這顯然是不正確的。 – bheklilr
我希望將內容作爲參數傳遞給循環,並且我只是要將內容分隔到行中,然後在每行上應用翻譯功能。你是對的,我必須省略括號。 – mohammad