2014-06-16 2 views
0

de type Si je tente d'utiliser la commande Hoogle suivante (v4.2.33) pour rechercher des fonctions contenant la signature de type ByteString->[ByteString]:requête Hoogle fonctions retour qui ne correspondent pas à la signature

hoogle --count 40 "ByteString->[ByteString]" 

puis vers la fin de la sortie que je reçois:

Data.ByteString.Char8 transpose :: [ByteString] -> [ByteString] 
Data.ByteString.Lazy transpose :: [ByteString] -> [ByteString] 
Data.ByteString.Lazy.Char8 transpose :: [ByteString] -> [ByteString] 
Codec.Compression.Zlib.Raw compress :: ByteString -> ByteString 
Codec.Compression.GZip compress :: ByteString -> ByteString 

Pourquoi les fonctions de retour Hoogle avec signature ByteString -> ByteString etc. quand je spécifier la signature de type à ByteString->[ByteString]?

+4

Hoogle fait une sorte de correspondance floue. –

+1

probablement parce que ces fonctions pourraient être utilisées pour mettre en œuvre des fonctions du type vous avez besoin, et si vous ne les voulez vraiment pas, vous pouvez simplement les ignorer. –

Répondre

2

Hoogle utilise un concept de "type correspondant approximate", en généralisant les types et le décapage des constructeurs pour trouver des correspondances proches.

Questions connexes