FizzBuzz Bereinigung

7

Ich lerne immer noch Haskell, und ich frage mich, ob es eine weniger wortreiche Möglichkeit gibt, die folgende Aussage mit einer Codezeile auszudrücken:

%Vor%

Erzeugt: [(1,""),(2,""),(3,"fizz"),(4,""),(5,"buzz"),(6,"fizz"),(7,""),(8,""),(9,"fizz"),(10,"buzz"),(11,""),(12,"fizz"),(13,""),(14,""),(15,"fizzbuzz"),(16,""),(17,""),(18,"fizz"),(19,""),(20,"buzz"),(21,"fizz"),(22,""),(23,""),(24,"fizz"),(25,"buzz"),(26,""),(27,"fizz"),(28,""),(29,""),(30,"fizzbuzz") , usw.

Es fühlt sich an, als würde ich die Syntax mehr bekämpfen, als ich sollte. Ich habe in Haskell andere Fragen dazu gesehen, aber ich suche nach dem optimalen Weg, dies in einer einzigen Aussage auszudrücken (zu versuchen, zu verstehen, wie man die Syntax besser bearbeitet).

    
Jonathan Dunlap 28.01.2012, 19:10
quelle

8 Antworten

7

Wenn Sie auf einem Einzeiler bestehen:

%Vor%     
hammar 28.01.2012, 20:10
quelle
10

Wir müssen nicht stinken ' mod ...

%Vor%

oder etwas kürzer

%Vor%

Oder der brutale Weg:

%Vor%     
Landei 29.01.2012 13:01
quelle
4

Wie geht es ...

%Vor%     
Fred Foo 28.01.2012 19:23
quelle
2

Konnte nicht widerstehen, in die andere Richtung zu gehen und es komplizierter zu machen. Schau, nein mod ...

%Vor%     
pat 28.01.2012 21:12
quelle
1

Entspricht genau der Antwort von larsmans:

%Vor%     
dave4420 28.01.2012 19:47
quelle
1

Ich denke, der Grund, warum Sie das Gefühl haben, mit der Syntax zu kämpfen, ist, dass Sie zu viele Typen mischen.

Anstatt zu versuchen zu drucken:

%Vor%

Denken Sie einfach an das Drucken von Zeichenfolgen:

%Vor%

Mein Versuch:

%Vor%

Um einen Int in einen String zu konvertieren, verwenden Sie:

%Vor%     
elviejo79 28.01.2012 23:50
quelle
1

Nur zum Lernen

%Vor%

erzeugt

%Vor%     
Sergey Yashin 24.05.2016 20:31
quelle
0

Writer monad sieht vielleicht gut aus (wenn Sie concat nicht mögen):

%Vor%

Es ist jedoch nicht besonders prägnant.

    
Rotsor 29.01.2012 16:38
quelle

Tags und Links