Haskell - Wie zu verwenden - in Where-Klauseln

7

Ich habe den folgenden Code:

%Vor%

Nun möchte ich den "x & lt; - bar 6" -Teil in eine where-Klausel einfügen, wie folgt:

%Vor%

Wie mache ich das?

    
Yahya Uddin 16.11.2014, 21:15
quelle

2 Antworten

15

Dies ist nicht erlaubt. Eine where -Klausel erlegt keine Bewertungsreihenfolge auf, die für die meisten Monaden erforderlich ist, z. B. IO . Wenn dies möglich wäre, wann würde bar 6 relativ zu den beiden print s ausgeführt werden? Wäre es am Anfang oder zwischen ihnen?

    
David Young 16.11.2014, 21:21
quelle
5
  

Wie mache ich das?

Es macht keinen Sinn. Es tut mir leid.

Folgendes in einem do -Block:

%Vor%

entspricht:

%Vor%

Also a <- b allein, wäre äquivalent zu: b >>= (\a ->) , was ein Grammatikfehler ist.

Sie müssen x in einem where -Klausel trotzdem nicht speichern. In Ihrem Programm:

%Vor%

Nach x <- bar 6 können Sie x überall im do -Block wiederverwenden.

    
Shoe 16.11.2014 21:28
quelle

Tags und Links