6
Haskell dịch [
và ]
vào định nghĩa danh sách như thế nào? Họ có phải là nhà thầu có giá trị hay gì đó không? Họ là newtypes? Có cách nào để xác định cú pháp mã vạch, trái ngược với cú pháp không?Đường cú pháp trình tự ([1..6]) được dịch sang cú pháp danh sách thực tế (1: 2: 3 ... 6) như thế nào?
Để nhấn mạnh --- '[1, 2, 3]' và '[1..3]' có cùng giá trị * *, nhưng đến đó theo những cách rất khác nhau. '[1, 2, 3]' desugars (trực tiếp!) Tới '1: 2: 3: []' trong khi '[1..3]' desugars thành 'enumFromTo 1 3' mà sau đó * đánh giá * thành' 1: 2: 3: [] '. –
@tel: và cho đầy đủ, '[1,2,3]' và '[1..3]' không nhất thiết phải có cùng giá trị. Nó phụ thuộc vào loại của nó. Nó có thể là một danh sách của một loại thực hiện 'Enum' một cách kỳ lạ. – newacct
Một cũng có thể là lỗi kiểu như kiểu nguyên tắc của '[1,2,3]' là 'Num a => [a]' trong khi kiểu nguyên tắc của '[1..3]' là '(Num a , Enum a) => [a] '. –