Haskell Existential Typen

8

Ich versuche mein Gehirn um Haskells existenzielle Typen zu wickeln, und mein erstes Beispiel ist eine heterogene Liste von Dingen, die gezeigt werden können:

%Vor%

Nun scheint es mir, dass ich das nächste, was ich tun möchte Showable eine Instanz von Show machen soll, damit zum Beispiel meine showableList im repl angezeigt werden kann:

%Vor%

Das Problem, das ich habe, ist, dass ich hier die a Implementierung aufrufen möchte. Aber ich habe Probleme, sich darauf zu beziehen:

%Vor%

wählt die show-Methode Showable auf der RHS aus, die in Kreisen läuft. Ich habe es versucht, Show automatisch abzuleiten, aber das funktioniert nicht:

%Vor%

gibt mir:

%Vor%

Ich suche nach einer Möglichkeit, die zugrunde liegende Show :: show-Implementierung aufzurufen, damit Showable das Rad nicht neu erfinden muss.

    
Ara Vartanian 13.08.2011, 13:59
quelle

1 Antwort

17
%Vor%

show a = show a funktioniert nicht so, wie du es erkannt hast, weil es unendlich recusiert. Wenn wir dies ohne existentielle Typen versuchen, können wir dasselbe Problem und dieselbe Lösung sehen.

%Vor%     
Logan Capaldo 13.08.2011, 14:04
quelle

Tags und Links