Tôi đang cố gắng tìm hiểu xem Haskell có sử dụng phạm vi động hay tĩnh không. Tôi nhận ra rằng, ví dụ, nếu bạn xác định:Haskell sử dụng loại phạm vi nào?
let x = 10
sau đó xác định chức năng
let square x = x*x
Bạn có 2 khác nhau "x", và điều đó có nghĩa nó là tự động scoped? Nếu không, nó sử dụng phạm vi nào và tại sao?
Ngoài ra, biến Haskell có thể có bí danh (tên khác cho cùng một vị trí/giá trị bộ nhớ) không?
Cảm ơn.
BTW, Sev, bạn có thể muốn xem xét xem bạn vẫn muốn giữ câu trả lời của igorgue là câu trả lời cho câu hỏi này, với điều kiện đã được chứng minh là sai trên điểm bí danh (xem trả lời dưới đây) và, trong khi có tranh luận về nó, anh ta không thể đưa ra bất kỳ lý lẽ nào mà anh ta không sai về điểm biến. –