Ich bin neugierig und konnte in Haskell keinen Vorschlag für so etwas finden. Überlegen Sie, ob sort
geschrieben wurde, aber nicht sortBy
.Vorschlag für lokale Datendeklarationen/Instanzen
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
Hat jemand diesen Vorschlag gesehen?
Für das, was es wert ist, können Sie dies mit dem funktionalen Paket [reflection] (http://hackage.haskell.org/package/reflection) erreichen; siehe [dieses Beispiel] (https://github.com/ekmett/reflection/blob/master/examples/Monoid.hs). (Volle Enthüllung: Ich habe im Paket zugesagt.) – ehird
So viel wie ich diese Idee liebe (und das gleiche Ding in der Vergangenheit gewollt habe), bin ich nicht sicher, dass das eine echte Frage ist ... –
Ich bin nicht vorschlagend; Ich war mir ziemlich sicher, dass es vorher vorgeschlagen worden wäre, aber ich konnte es nicht finden. Eine akzeptable Antwort wäre eine, die auf eine Diskussion dieses oder eines ähnlichen Vorschlags hinweist, oder eine von jemandem, der in diesen Aspekt der Gemeinschaft involviert ist und sagt: "Ich habe noch keinen gesehen; hier sind einige verwandte Dinge." Ist das eine echte Frage? – luqui