這裏是我的代碼:「無法匹配預期的類型」錯誤
xandy :: Element_w_Coord Cell -> Coord
xandy (e, (x, y)) = (x, y)
transition_world :: Ordered_Lists_2D Cell -> Element_w_Coord Cell -> Ordered_Lists_2D Cell
transition_world world (cell, (x, y)) = case (cell, (x, y)) of
(Head, (x, y))-> map_Ordered_Lists_2D Tail world
(Tail, (x, y)) -> map_Ordered_Lists_2D Conductor world
(Empty, (x, y)) -> map_Ordered_Lists_2D Empty world
(Conductor, (x, y)) -> map_Ordered_Lists_2D Head world
這裏是錯誤消息:
Sources/Transitions/For_Ordered_Lists_2D.hs:33:43:
Couldn't match expected type `Element_w_Coord e0 -> Cell'
with actual type `Cell'
In the first argument of `map_Ordered_Lists_2D', namely `Tail'
In the expression: map_Ordered_Lists_2D Tail world
In a case alternative:
(Head, (x, y)) -> map_Ordered_Lists_2D Tail world
任何人都喜歡告訴我什麼是錯我的代碼請?
順便說一句,這裏是
type Ordered_Lists_2D e = [Sparse_Line e]
data Sparse_Line e = Sparse_Line {y_pos :: Y_Coord, entries :: Placed_Elements e}
data Placed_Element e = Placed_Element {x_pos :: X_Coord, entry :: e}
type Placed_Elements e = [Placed_Element e]
map_Ordered_Lists_2D :: (Element_w_Coord e -> b) -> Ordered_Lists_2D e -> Ordered_Lists_2D b
map_Ordered_Lists_2D f world = case world of
l: ls -> map_line f l: map_Ordered_Lists_2D f ls
[] -> []
where
map_line :: (Element_w_Coord e -> b) -> Sparse_Line e -> Sparse_Line b
map_line f line = Sparse_Line {y_pos = (y_pos line), entries = map_elements f (y_pos line) (entries line)}
where
map_elements :: (Element_w_Coord e -> b) -> Y_Coord -> Placed_Elements e -> Placed_Elements b
map_elements f y elements = case elements of
c: cs -> Placed_Element {x_pos = (x_pos c), entry = f ((entry c), ((x_pos c), y))}: map_elements f y cs
[] -> []
感謝任何人的定義誰可以很好我一些建議XD
sry man ...那個地方是爲單元格類型定義的......所以它不工作T_T – libra 2013-04-05 16:08:11
@libra響應是什麼? quetion中的man函數明確地將函數作爲第一個參數('map_Ordered_Lists_2D ::(Element_w_Coord e - > b) - > ...'),並且您明確地將它傳遞給一個構造函數('map_Ordered_Lists_2D Tail'),而您省略代碼,編譯器說這是'Cell'類型。 – 2013-04-05 16:22:17
@libra我把你的確切的代碼,並填補了一些空白 - 'data Cell = Tail |頭| |空的| Conductor',以及一些可扣除的類型同義詞 - 並且它與我提出的改變一起編好。我並不是說這是您的代碼的正確解決方案,但類型應該是正確的。 – 2013-04-05 16:27:39