Tôi đã nhận được câu hỏi sau đây trong một bài kiểm tra:
Viết hàm
fvới loại saua -> b -> (a -> b).avàbkhông nên bị ràng buộc trong bất kỳ ý nghĩa nào, mã càng ngắn thì càng tốt.
Tôi nghĩ ra f a b = \x -> snd ([a,x],b). Bạn có thể tìm thấy một cái gì đó nhỏ hơn?
Hiện tại người chiến thắng là: f _=(.f).const
f _ b _ = b, nhưng, đưa ra giải pháp trong câu hỏi, tôi nghi ngờ một loại tổng quát hơn không được phép.
f = id?
f = flà một giải pháp, vì vậy tôi đoán các điều kiện về loại này rất quan trọng!
f = const const.