Cubesumming in Haskell

8
___ answer8594837 ___

Wie wäre es mit Typenklassen?

%Vor%     
___ answer8594227 ___

Vielleicht das? Nimmt Assoziativität an, aber das Hinzufügen einer neuen Ebene ist einfach

%Vor%     
___ answer8594038 ___

Sie müssen von innen nach außen arbeiten. Wenn Sie eine Funktion map sum zum Summieren einer Datenstruktur haben, dann ist %code% die Methode, eine Liste dieser Datenstrukturen zu summieren.

%Vor%     
___ tag123haskell ___ Haskell ist eine funktionale Programmiersprache mit starker statischer Typisierung, verzögerungsfreier Auswertung, umfangreicher Parallelitäts- und Parallelitätsunterstützung und einzigartigen Abstraktionsfunktionen. ___ answer8594078 ___

Zuerst gibt es Template Haskell (GHC-Erweiterung). Oder Sie könnten ein %code% verwenden, das willkürliche Tieflistenverschachtelung wie folgt unterstützt:

%Vor%

Was %code% hier ausgibt. Dies stellt jedoch nicht sicher, dass alle Blätter die gleiche Verschachtelungstiefe haben, und ich weiß nicht, wie man das aus Listen erstellt.

    
___ answer8597053 ___

Es scheint mir am natürlichsten zu sein, die %code% einer zusätzlichen Dimension als %code% der vorherigen Dimension zu definieren.

%Vor%

Das ist im Grunde die gleiche Idee wie das, was Sjoerd gesagt hat. Wenn Sie nur %code% und %code% verwenden wollen und nicht allgemeine Teilausdrücke in nützliche Namen umgestalten sollen ... dann ersetzen Sie die benutzerdefinierten Funktionen %code% , %code% usw. durch Gleichsetzung.

    
___ qstnhdr ___ Cubesumming in Haskell ___
Magnus Kronqvist 21.12.2011, 17:17
quelle

5 Antworten

12

Sie müssen von innen nach außen arbeiten. Wenn Sie eine Funktion f zum Summieren einer Datenstruktur haben, dann ist sum . map f die Methode, eine Liste dieser Datenstrukturen zu summieren.

%Vor%     
Sjoerd Visscher 21.12.2011, 17:44
quelle
14

Wie wäre es mit Typenklassen?

%Vor%     
Landei 21.12.2011 18:52
quelle
5

Vielleicht das? Nimmt Assoziativität an, aber das Hinzufügen einer neuen Ebene ist einfach

%Vor%     
sdcvvc 21.12.2011 17:58
quelle
1

Es scheint mir am natürlichsten zu sein, die sum einer zusätzlichen Dimension als sum der vorherigen Dimension zu definieren.

%Vor%

Das ist im Grunde die gleiche Idee wie das, was Sjoerd gesagt hat. Wenn Sie nur map und sum verwenden wollen und nicht allgemeine Teilausdrücke in nützliche Namen umgestalten sollen ... dann ersetzen Sie die benutzerdefinierten Funktionen sum2 , sum3 usw. durch Gleichsetzung.

    
Dan Burton 21.12.2011 22:09
quelle
0

Zuerst gibt es Template Haskell (GHC-Erweiterung). Oder Sie könnten ein data verwenden, das willkürliche Tieflistenverschachtelung wie folgt unterstützt:

%Vor%

Was 19 hier ausgibt. Dies stellt jedoch nicht sicher, dass alle Blätter die gleiche Verschachtelungstiefe haben, und ich weiß nicht, wie man das aus Listen erstellt.

    
amoebe 21.12.2011 17:47
quelle

Tags und Links