mins [] = []
mins (x:xs) = x : foldr (λ x f -> ((:) <*> f) . min x) (const []) xs x

>> mins [9,6,8,7,5,4,2]
=> [9,6,6,6,5,4,2]


내 능지로는 저것보다 pointfree하게는 못하겠어서 pointfree.io 에 넣어보니까 foldr 에 인자로 들어가는 람다식

flip ((.) . ((:) <*>)) . min

이렇게 됨 ㅅㅂ ㅋㅋㅋㅋㅋㅋㅋ