КОД
type Point = (Float,Float)
type Candidate = (Point,Point,[Point],Float)
print_list :: [[Point]] -> String
print_list [] = ""
print_list [x:xs] = show x ++ "," ++ print_list(xs)
candidate_to_string :: Candidate -> String
candidate_to_string (a, x, y:ys, z) = "Start point: " ++ show a ++
"\nSupporting Points: " ++ print_list(y:ys) ++ "\nEnd Point: " ++ show x
++ "\nTime: " ++ show z
СООБЩЕНИЕ ОБ ОШИБКЕ
C:\\Users\conor\Desktop\haskellcoursework.hs:47:50: error:
* Couldn't match type `(Float, Float)' with `[Point]'
Expected type: [[Point]]
Actual type: [Point]
* In the first argument of `print_list', namely `(xs)'
In the second argument of `(++)', namely `print_list (xs)'
In the second argument of `(++)', namely `"," ++ print_list (xs)'
|
47 | print_list [x:xs] = show x ++ "," ++ print_list(xs)
| ^^
C:\\Users\conor\Desktop\haskellcoursework.hs:50:107: error:
* Couldn't match type `(Float, Float)' with `[Point]'
Expected type: [[Point]]
Actual type: [Point]
* In the first argument of `print_list', namely `(y : ys)'
In the first argument of `(++)', namely `print_list (y : ys)'
In the second argument of `(++)', namely
`print_list (y : ys)
++ "\nEnd Point: " ++ show x ++ "\nTime: " ++ show z'
|
50 | candidate_to_string (a, x, y:ys, z) = "Start point: " ++ show a ++
"\nSupporting Points: " ++ print_list(y:ys) ++ "\nEnd Point: " ++ show x ++
"\nTime: " ++ show z ^^^^
|
Используемые мной подписи указаны для меня.Моя задача - написать функцию кандидат_в_строку :: Candidate -> String, которая создает строковое представление кандидата.Каждая точка записывается в отдельной строке, начиная с начальной точки, за которой следуют все опорные точки и заканчивая конечной точкой.Время печатается в дополнительной строке, состоящей из строки «Time:» и значения.