Nếu bạn học Lambda Calculus, có thể bạn đã biết rằng λxy.y arg1 arg2 * * sẽ giảm tới arg2, kể từ khi x được thay thế bằng gì, và phần còn lại (λy.y) là bản sắc chức năng.
Bạn có thể viết số không theo nhiều cách khác (ví dụ: đưa ra một quy ước khác), nhưng có lý do chính đáng để sử dụng λxy.y. Ví dụ, bạn muốn số không là số tự nhiên đầu tiên, do đó nếu bạn áp dụng hàm kế thừa cho nó, bạn nhận được 1, 2, 3 vv. Với hàm λabc.b (abc), bạn nhận được λxy.x (y)), λxy.x (x (y)), λxy.x (x (x (y))), nói cách khác, bạn nhận được một hệ thống số nguyên.
Ngoài ra, bạn muốn không là phần tử trung tính đối với phần bổ sung. Với chức năng kế nhiệm của chúng tôi S: = λabc.b (abc), chúng ta có thể xác định n + * m * như n S m, nghĩa là, n lần so với áp dụng các chức năng kế để m. Không λxy.y của chúng tôi thỏa mãn điều này, cả 0 S m và m S 0 giảm xuống m.
Đây là một câu hỏi liên quan mà tôi đã hỏi trong các nhóm google: Giả sử tôi có một hàm f. Làm thế nào để tôi cho thấy rằng điều này chuyển thành một số tự nhiên 0? Tôi cần những chức năng nào khác để suy ra rằng hàm f của tôi hoạt động giống như 0? – unj2
Nếu bạn muốn chứng minh rằng hàm 'f' bằng 0 theo mã hóa thông thường, bạn cần hiển thị rằng đối với tất cả' g' (f g x) == x. Bạn không cần phải biết gì ngoài điều này. –