我想創建一個Haskell IO函數,它使用函數將一個數據類型的項添加到列表中,然後打印這些數據類型的列表。Haskell基本IO
DataType = Str Str Int []
它總是將相同的項目添加到列表中。
我有這個至今:
myFn = putStrLn(listAll (addData "a" "b" 2000 [] testDatabase))
,但我得到了以下錯誤:
:20想不出匹配類型[字符]與字符,期望的字符串,實際[字符串]
現在這可能是因爲listAll輸出了一個字符串列表,而putStrLn只能處理一個?但我不知道我該如何解決這個問題。
:19功能「一」被應用到3個參數
但是,「a」是不是一個函數,這是我想被加(許多混亂)的數據類型的一部分。
好了,現在我有'FN = mapM_ putStrLn(listAll(addData(「a」「b」2000 [])testDatabase))',我現在得到的唯一錯誤是它說「a」適用於3個參數,當整個部分的意圖是addData的第一個參數,testDatabase是第二個參數。 – Chillo
'addData'的類型是什麼? –
@Chillo,this:'(「a」「b」2000 [])'沒有意義。你正在應用''一個''作爲一個函數給三個參數。 Haskell不需要括號來調用函數,函數應用程序簡單地並置。 –