Tôi có những gì tôi sẽ gọi một câu hỏi triết học về tính toán.
Khi bạn khám phá-tính toán, bạn sẽ ngạc nhiên khi thấy tất cả những điều bạn có thể làm ở đó. Bạn có thể định nghĩa các số nguyên, các phép toán số học, booleans, câu lệnh if-then-other, vòng lặp, hàm đệ quy, v.v ... Tôi tin rằng nó đã được chứng minh tính toán hoàn chỉnh.
Nhưng mặt khác, nếu bạn xem xét những gì bạn có thể làm với các hàm trong-compus, bạn nhận ra rằng điều duy nhất bạn có thể làm là cung cấp cho nó một hàm và nó trả về một hàm khác. Và quá trình đó không bao giờ kết thúc.
Vì vậy, làm thế nào bạn có thể trích xuất một kết quả từ một tính toán?
Giả sử kết quả của một biểu thức là hàm f
. Bạn muốn kiểm tra xem đó f
là những gì bạn mong đợi. Bạn có thể kiểm tra nó, lấy một chức năng mà bạn biết, áp dụng f
cho nó và nhận g
. Nhưng để kiểm tra g
là chính xác, bây giờ bạn cần xác minh những gì g
. Và bạn bắt đầu lại tất cả. Vì vậy, làm thế nào bạn có thể nói bất cứ điều gì về f
?
Dường như với tôi rằng bạn có thể thay thế tất cả các hàm trong-compus bằng một hàm duy nhất, hàm nhận dạng I = λx.x
và mọi thứ vẫn hoạt động như được mô tả trong-compus. Chữ số của Giáo hội 3
khi được cho f
và x
trả lại f(f(f(x)))
. Nhưng kể từ khi f
và x
chỉ có thể I
, nó trở lại I
. I
áp dụng cho I
và I
cũng trả lại I
. Vì vậy, I
thỏa mãn định nghĩa của 3
. Các booleans của người Viking (λxy.x)
và (λxy.y)
cần 2 đối số, sẽ là như vậy I
và I
cả hai booleans sẽ quay trở lại I
. Mỗi cái tương đương với danh tính, mặc dù chúng hành xử chính xác theo định nghĩa của chúng.
Vậy làm thế nào để bạn tạo ra sự khác biệt? Làm thế nào để bạn chỉ ra rằng-compus xử lý nhiều hơn chỉ là một hàm duy nhất?
Có một khái niệm về bản sắc? Bạn có thể xác định một chức năng ngay lập tức mà không đánh giá nó? Tôi tin rằng nó đã được chứng minh rằng không có cách nào để kiểm tra 2 chức năng cho sự bình đẳng.
Hoặc là calcul-tính toán không phải về các chức năng, mà là về mô tả chính thức về những gì họ làm? Điều đó có nghĩa là λ biểu thức không chỉ xác định những gì các hàm làm mà còn là dữ liệu mà các hàm thao tác. Vì vậy, khi bạn viết A B
, bạn không áp dụng A
để B
, nhưng bạn áp dụng các chức năng được mô tả bởi chuỗi A
để định nghĩa chính thức của một hàm chứa trong B
trở lại một định nghĩa chính thức.
Điều gì thực sự đang diễn ra trong-compus? Các đối tượng toán học mà nó đối phó là gì?
Theo sát:
OK, từ câu trả lời bên dưới, có vẻ như calcul-compus không phải là quá nhiều về các hàm theo nghĩa toán học, mà là về tập hợp con của các hàm có thể được biểu thị dưới dạng biểu thức.. Hoặc thậm chí nhiều hơn về các thao tác của λ biểu thức.