Khi bạn tôi bắt đầu học Prolog ở trường, tôi đã vui vẻ với anh ấy vì đã học một ngôn ngữ vô dụng. Tuy nhiên, anh ấy đã cho tôi xem một số thứ mà tôi chưa từng biết; Tôi muốn biết kỹ thuật này đến từ đâu.Đa luồng trong ... ngôn ngữ chức năng? (Prolog)
Kỹ thuật này là thế này:
permutation(List) :-
isAMember(X, List),
deleteFirstElement(X, List, Substring),
% and so on
Trong mã này, isAMember(X, List)
là một hàm trả về true nếu X
là trong List
. Tuy nhiên, đến thời điểm này, X
không được định nghĩa là biến - do đó chương trình sẽ sinh ra một chuỗi các chuỗi mới, một cho mỗi giá trị có thể là X
, làm cho isAMember(X, List)
true, và tiếp tục từ đó.
Điều này cho phép chúng tôi tạo thuật toán đa luồng theo cách đơn giản, thanh lịch nhất mà tôi có thể tưởng tượng nhất có thể.
Vì vậy, câu hỏi của tôi là: Tính năng Prolog cụ thể, hoặc một tính năng của tất cả các ngôn ngữ logic và/hoặc chức năng? Ngoài ra, tôi có thể tìm hiểu thêm về các kỹ thuật đa luồng tuyệt vời như thế này - đây chắc chắn là tương lai của lập trình.
Tôi sẽ nói lập trình đã bắt đầu theo cách này! Một máy Turing không xác định có khái niệm này. –
Prolog không phải là một lanauge chức năng. Nó chuyên về giải quyết vấn đề logic. – Francis