Saya mendapat pertanyaan berikut saat ujian:
Tulis fungsi
f
dengan tipe berikuta -> b -> (a -> b)
.a
danb
seharusnya tidak terikat dalam arti apa pun, semakin pendek kode, semakin baik.
Saya datang dengan f a b = \x -> snd ([a,x],b)
. Bisakah Anda menemukan sesuatu yang lebih kecil?
Saat ini pemenangnya adalah: f _=(.f).const
f _ b _ = b
, tetapi, mengingat solusi dalam pertanyaan, saya curiga jenis yang lebih umum tidak diperbolehkan.
f = id
?
f = f
adalah solusi, jadi saya kira kondisi pada jenis itu sangat penting!
f = const const
.