Merak ediyorum ve böyle bir şey için Haskell için bir teklif bulamadık. sort
'un yazıldığını, ancak sortBy
olduğunu düşünün.Yerel veri bildirimleri/Örnekleri için öneriler
sortBy :: forall a. (a -> a -> Ordering) -> [a] -> [a]
sortBy f = map getX . sort . map X
where
newtype X = X { getX :: a }
instance Ord X where
compare (X a) (X b) = f a b
Bu teklifi gören oldu mu?
Değeri için bunu [yansıma] (http://hackage.haskell.org/package/reflection) işlevsel inci/paket ile elde edebilirsiniz; bakınız [bu örnek] (https://github.com/ekmett/reflection/blob/master/examples/Monoid.hs). (Tam açıklama: Pakette taahhütlerim var.) – ehird
Bu fikri sevdiğim kadarıyla (ve geçmişte de aynı şeyi istedim), bunun gerçek bir soru olduğundan emin değilim ... –
önerme; Daha önce önerilmiş olabileceğinden oldukça emindim ama bulamadım. Kabul edilebilir bir cevap, bu ya da benzer bir öneriyi tartışan, ya da topluluğun bu yönüyle ilgili bir kimsenin "Görmedim ki; burada bazı şeyler var." Bu gerçek bir soru mu? – luqui