Liệu tính toán mẫu biểu thị một bước tiến trong ngôn ngữ hay chúng ta sẽ quay trở lại LISP?


11

Barry Jay trong cuốn sách của mình đưa ra một số tuyên bố táo bạo - về cơ bản bằng cách nói rằng, cốt lõi của một chương trình, mọi thứ đều là nguyên tử hoặc sáng tác. Sau đó, mọi thứ có thể dễ dàng lặp đi lặp lại, được lọc, cập nhật, chỉ bằng cách điều hướng mối quan hệ sáng tác này.

Đây có phải là một biên giới mới trong Khoa học Máy tính cho các ngôn ngữ máy tính - hay chúng ta sẽ quay trở lại LISP?


13
Quay trở lại Lisp sẽ là một bước tiến.
Shane

4
Đây không phải là một câu hỏi được xác định rõ ràng: nó nên được tạo ra wiki cộng đồng.
Charles Stewart

Đồng ý @Shane nhưng nghĩ rằng nó cần các loại và một bộ thư viện hiện đại
hawkeye

Câu trả lời:


6

Một trong những lợi ích chính của công việc gần đây của Jay là nó làm giảm mã soạn sẵn mà người ta cần phải viết để vượt qua các cấu trúc dữ liệu để thực hiện các hoạt động như bản đồ . Tính toán mẫu cho phép một người viết mã truyền tải một lần cho tất cả các cấu trúc dữ liệu và áp dụng nó cho cấu trúc dữ liệu của riêng bạn. Điều này chắc chắn làm giảm số lượng mã cần thiết, nhưng không cho phép bạn viết bất kỳ chương trình nào mà bạn không thể viết. Chắc chắn có nhiều ý tưởng thú vị trong công việc, nhưng vẫn còn phải chứng minh rằng nó thực sự hoạt động.


6

Tôi không quen thuộc với công việc gần đây của Barry Jay, nhưng công việc cũ của anh ấy bao gồm những điều mà bạn không thể làm ở Lisp, vì các loại cung cấp thêm thông tin.

Ví dụ: giả sử bạn muốn xác định kích thước của cấu trúc dữ liệu Lisp. Đó là 1 cho một nguyên tử và n cho danh sách n nguyên tử và nói chung là kích thước (x) + kích thước (y) cho (cons x y).

Bây giờ ném các loại vào hỗn hợp. Kích thước của một danh sách sẽ là chiều dài của nó. Bây giờ kích thước của một danh sách các danh sách các nguyên tử là gì? Nếu bạn coi cấu trúc dữ liệu này là một danh sách (có các yếu tố tình cờ là danh sách các nguyên tử), câu trả lời là độ dài của danh sách. Nếu bạn coi cấu trúc dữ liệu này là chứa các nguyên tử tình cờ được lưu trữ trong danh sách danh sách, câu trả lời là tổng độ dài của danh sách thành phần.

Các loại cho phép bạn phân biệt giữa hai chế độ xem (hình dạng) của dữ liệu thô. Bạn cần một hệ thống loại cho phép bạn phân biệt giữa (Danh sách) (Danh sách nguyên tử) và (Danh sách danh sách) (Nguyên tử). Việc thực hiện phổ biến nhất của sự khác biệt này là với các lớp loại (như trong Haskell).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.