本地数据声明/实例的提案

luq*_*qui 21 haskell local typeclass

我很好奇,并且无法在Haskell中找到类似这样的建议.考虑一下是否sort写过但没有sortBy.

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
Run Code Online (Sandbox Code Playgroud)

有没有人见过这个提案?

Art*_*yom 1

显然,本地实例已在 Haskell Prime 邮件列表中进行了简要讨论:http://web.archiveorange.com/archive/v/eKcS7T2qBpy7czBE2Jei,并且在Oleg\xe2\x80\x99s 论文 \xe2\ 的第 6 章进行了更全面的讨论x80\x9cFunctional Pearl:隐式 Con\xef\xac\x81gurations\xe2\x80\x9d。不过,我几乎没有听说过有关本地数据声明的事情。

\n