Я пытаюсь выполнить упражнения в реальном мире Haskell в режиме TDD, используя HUnit. Как вы, наверное, догадались, что мне еще далеко не удалось, поэтому я абсолютно новичок, когда дело доходит до Haskell. Учитывая следующий код, как я могу решить следующую GHCI ошибки производит:Как работать с assertEqual с параметризованными типами
Неопределенного типа переменная
a' in the constraints:
Показать а « , вытекающей из использованияassertEqual' at List_Test.hs:6:27-58
уравнения а», вытекающие из использования `assertEqual» в List_Test.hs: 6: 27-58 Возможная ошибка: добавить сигнатуру типа, который фиксирует эти типа переменной (ы)
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)
Я пробовал добавлять ограничения типа как к объявлению списка, так и к определению toList без успеха. Интернет-поиск также не предоставил никакой информации.
спасибо, не знал о синтаксисе, чтобы указать тип возвращаемого значения для данного вызова функции. –