Podczas testu dostałem następujące pytanie:
Napisz funkcję
f
o następującym typiea -> b -> (a -> b)
.a
ib
nie powinien być w żaden sposób związany, im krótszy kod, tym lepiej.
Wymyśliłem f a b = \x -> snd ([a,x],b)
. Czy możesz znaleźć coś mniejszego?
Obecnie zwycięzcą jest: f _=(.f).const
f _ b _ = b
, ale, biorąc pod uwagę rozwiązanie w kwestii, podejrzewam bardziej ogólny typ jest nie dozwolone.
f = id
?
f = f
to rozwiązanie, więc myślę, że warunki na typie są bardzo ważne!
f = const const
.