(Tôi chắc chắn điều này phải được trả lời trên trang web này, nhưng tìm kiếm bị ngập với khái niệm gọi miễn phí() trên một biến trong C.)"Biến miễn phí" là gì?
Tôi đã xem cụm từ "giảm eta" đã được xác định một cái gì đó như f x = M x ==> M
nếu x là "không miễn phí trong M". Ý tôi là, tôi nghĩ rằng tôi hiểu ý chính của những gì nó đang cố gắng nói, nó có vẻ giống như những gì bạn làm khi bạn chuyển đổi một chức năng thành kiểu không có điểm, nhưng tôi không biết vòng loại về x không phải là phương tiện tự do.
Nitrat nhỏ: có thể sử dụng 'x' nếu nó bị ràng buộc. Eta-reduce '(\ x -> (\ x -> x + x) x)' thành '(\ x -> x + x)' là hoàn toàn ổn, mặc dù '(\ x -> x + x)' chứa hai lần sử dụng 'x'. Đây là một trường hợp góc mà sẽ không hiển thị nhiều trong việc đối phó với mã con người viết, nhưng tôi tưởng tượng trình biên dịch sẽ chạy trên này thường xuyên hơn. – yatima2975
Tôi đã rối tung lên từ ngữ một chút ở đó. "Nhưng chỉ khi' x' không được sử dụng (tức là không miễn phí) "nên là" Nhưng chỉ khi 'x' không phải là miễn phí (tức là nó không được sử dụng hoặc là một đối số)". Ban đầu tôi đã viết nó theo cách đó nhưng thay đổi nó theo cách khác để làm cho nó đơn giản hơn. Thật không may thay đổi ý nghĩa :) – porges