Ist es unmöglich, den Unterschied zwischen maxBound und minBound eines Enum-Typs zu berechnen?

8

Habe ich recht, dass es keine Möglichkeit gibt, maxBound - minBound in Haskell für einen beliebigen Enum und Bounded -Typ zu berechnen? Oder fehlt mir ein Trick / Hack? Das ist was ich habe, was eindeutig nicht funktionieren kann:

%Vor%

Fehler:

%Vor%

Ich verstehe, warum ich diesen Fehler erhalte - es gibt keinen tatsächlichen Begriff mit dem Typ a , also kann er nicht herausfinden, was a ist. Die Frage ist, ob es einen Weg gibt, dies zu umgehen.

    
Luis Casillas 05.11.2012, 21:24
quelle

2 Antworten

9

Verwenden Sie Proxy , um den gewünschten Typ anzugeben, und verwenden Sie ScopedTypeVariables , um diesen Typ in der Funktionsdefinition in den Bereich einzubeziehen.

%Vor%

Bearbeiten: Mit Daniels Vorschlag:

%Vor%     
Gabriel Gonzalez 05.11.2012, 21:26
quelle
12
%Vor%

Nenne es als z.B. difference (undefined :: Char) .

Beachten Sie jedoch, dass dies für einige Typen (vor allem Int ) überläuft, verwenden Sie stattdessen ein Integer result:

%Vor%     
dave4420 05.11.2012 21:44
quelle

Tags und Links