2014-06-27 13 views
6

Tôi hiện đang đọc về cơ sở lý thuyết danh mục và cố gắng hiểu ý nghĩa của tên mà Haskell gán cho hoạt động đơn lẻ, ngữ nghĩa.Di sản tên của các toán tử đơn lẻ

Tất cả tài liệu tôi đã xem qua là return làm bản đồ đơn vị và join làm bản đồ phép nhân (Tôi đồng ý với tên "tham gia"). Đối với >>= hoặc bind Tôi thậm chí chưa tìm thấy tên phổ biến trong môn toán. Thay vào đó tôi đã đi qua hình thức lật của nó, lift hoặc - *, mà lần lượt có ý nghĩa với tôi.

câu hỏi thực tế (TLDR):

  1. Tại sao "trở lại" đã được sử dụng thay cho "đơn vị"?
  2. Tại sao "ràng buộc" được đặt dưới dạng danh pháp?
  3. Có tên nào để "liên kết" trong thế giới toán học không?
  4. Ngữ nghĩa mà các tên "ràng buộc" và "trả lại" nên ngụ ý là gì?

Trả lời

9

Cả hai tên đều đến từ lập trình chứ không phải là toán. return, được sử dụng làm tuyên bố cuối cùng của biểu thức do, làm cho nó trông rất cấp bách: do {do_something; return result}. Tên của bind xuất phát từ bản dịch do: action >>= \x -> something dịch sang số do {x <- action; something}, trông giống như x bị ràng buộc với giá trị được trả lại từ action.

Đối với số tương tự trong thế giới toán học của bind, google "Kleisli triple".

+1

BTW, việc đặt tên 'return' thường được coi là sai lầm, vì nó không thực sự hoạt động giống như' return' bắt buộc ở tất cả các trường hợp đơn giản nhất. –

Các vấn đề liên quan