Chơi xung quanh trong ghci
tôi có các biểu hiện sau: unlines . map (\(a,b) -> show a ++ " " ++ show b)
Tại sao thay đổi chữ ký sau khi chuyển nhượng
Bây giờ khi tôi kiểm tra xem nó qua :t
tôi nhận được:
> :t unlines . map (\(a,b) -> show a ++ " " ++ show b)
unlines . map (\(a,b) -> show a ++ " " ++ show b)
:: (Show a, Show a1) => [(a, a1)] -> String
Vì vậy, chính xác như mong đợi. Nhưng bây giờ nếu tôi cố gắng gán nó cho một số tên, tôi nhận được một chữ ký cụ thể hơn so với bản gốc:
> let f = unlines . map (\(a,b) -> show a ++ " " ++ show b)
> :t f
f :: [((),())] -> String
Tại sao điều này xảy ra?
Xem thêm: [1] (http://stackoverflow.com/questions/7055146), [2] (http://stackoverflow.com/questions/11439163), [3] (http: // stackoverflow. com/questions/9714697), [4] (http://stackoverflow.com/questions/8434808), [5] (http://stackoverflow.com/questions/7799345), [6] (http: // stackoverflow .com/questions/8262020), [7] (http://stackoverflow.com/questions/8655900), [8] (http://stackoverflow.com/questions/11003535). Tôi thành thật không chắc chắn (nếu có) trong số này để đánh dấu một bản sao này. –