tôi đã có thể thực thi mã sau hoàn hảoKhông thể phù hợp với loại dự kiến 'một 'với kiểu thực tế `[a]'
myLast :: [a] -> a
myLast [] = error "Can't call myLast on an empty list!"
myLast (x:_) = x
nhưng tôi nhận được lỗi này Couldn't match expected type `a' with actual type `[a]'. `a' is a rigid type variable bound by the type signature for myLast :: [a] -> a
cho đoạn mã sau:
myLast :: [a] -> a
myLast [] = error "Can't call myLast on an empty list!"
myLast (_:x) = x
Tôi là người mới bắt đầu trong Haskell và thông báo lỗi là quá Hy Lạp và Latinh đối với tôi. Từ những gì tôi có thể hiểu, trình biên dịch không thể suy ra loại trong trường hợp thứ hai. Ai đó có thể chỉ cho tôi những gì đang thực sự xảy ra ở đây không?