Giải tích Lambda tinh khiết - và chức năng


0 Phiếu
Đã hỏi 24/5/2016 bởi ynh_then (600 điểm)
Tôi hiện đang học Haskell và cũng tham gia vào một bài giảng lý thuyết khá về functional programming tại Đại học. Tôi biết rằng đây là câu hỏi lý thuyết/học hoàn toàn, nhưng tuy nhiên tôi quan tâm đến việc làm thế nào để nhận chức năng đơn giản khác nhau chỉ đơn giản với giải tích lambda tinh khiết (tức là không có bất kỳ hằng số được định nghĩa). Một số tài liệu bài giảng của tôi xác định các giá trị boolean chẳng hạn như:
thực = \\xy.x sai = \\xy.y
(\\ biểu thị ký hiệu lambda) nếu họ được xác định như các chức năng công cụ chọn, nếu tình trạng có thể dễ dàng được định nghĩa là:
nếu = \\x.x
không có tôi đang cố gắng để đi lên với một số form ngắn cho sự hợp lý "và"-chức năng. Đoán đầu tiên của tôi là:
= \\xy. {( nếu x) [( nếu y) đúng sai ] sai }
vì vậy, về cơ bản này function lambda sẽ nhận được 2 luận cứ u v mà cả hai đều phải được gõ giống như True/False. Nếu tôi làm nhiều beta-giảm với tất cả các kết hợp 4 của logic table tôi nhận được kết quả đúng. Tuy nhiên function này trông xấu xí một chút và tôi đang nghĩ về làm cho nó thêm thanh lịch. Bất kỳ đề xuất ở đây?

Xin vui lòng đăng nhập hoặc đăng ký để trả lời câu hỏi này.


ToughDev Q&A là gì?

Trang web hỏi đáp cho các bạn đam mê lập trình, phát triển phần mềm và các vấn đề kỹ thuật khác. Với sự giúp đỡ của bạn, chúng tôi hy vọng sẽ xây dựng thành công một thư viện đầy đủ các câu hỏi và trả lời về tất cả các vấn đề có liên quan đến lập trình!







...