我正在嘗試使用HUnit以TDD方式在Real World Haskell中進行練習。正如你可能猜到的,我還沒有到很遠的地步,所以在Haskell方面我是一個絕對的初學者。考慮下面的代碼,我怎麼能解決以下錯誤ghci的生產:如何使用帶參數化類型的assertEqual
曖昧類型變量
a' in the constraints:
顯示一個「 從使用assertEqual' at List_Test.hs:6:27-58
方程引起的」從List_Test.hs一個使用assertEqual便的`」產生的: 6:27-58 可能的修復:添加用於固定這些類型的變量(S)
List_Test.hs一個類型簽名:
module List_Test
where
import List
import Test.HUnit
fromEmptyList = TestCase $ assertEqual "" [] (toList (Nil))
main = runTestTT fromEmptyList
List.hs:
module List
where
data List a = Cons a (List a)
| Nil
deriving (Show)
toList Nil = []
toList (Cons a b) = (:) a (toList b)
我試過向List聲明和toList定義添加類型約束而沒有成功。互聯網搜索也沒有提供任何信息。
謝謝,沒有意識到指定一個給定的函數調用返回類型的語法。 – 2009-09-13 22:21:13