Tôi đã nhận được câu hỏi sau đây trong một bài kiểm tra:
Viết hàm
f
với loại saua -> b -> (a -> b)
.a
vàb
khô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 = f
là 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
.