F # Ausbeute! (yieldbang) -Operator

8

Ich lerne gerade F #, aber ich habe Schwierigkeiten, das zu verstehen:

%Vor%

Ich kann nicht herausfinden, was der Operator yield! genau macht, obwohl ich andere einfachere Beispiele gelesen habe und es scheint, dass yield! eine innere Sequenz zurückgibt.

    
Gabriel Schwienbacher 06.07.2017, 11:33
quelle

1 Antwort

9

Der Yield-Bang-Operator führt die von den aufgerufenen Sequenzausdrücken erzeugte Untersequenz zu der endgültigen Sequenz zusammen. Oder einfacher ausgedrückt: es "flacht" die zurückgegebene Sequenz ab, um die Elemente der Untersequenz in die endgültige Sequenz aufzunehmen.

Für Ihr Beispiel: Ohne den Yield-Bang-Operator würden Sie etwas wie

erhalten %Vor%

mit dem Yield-Bang-Operator erhalten Sie

%Vor%

wobei jedes { eine neue Sequenz bezeichnet. Seitenknoten: Das tatsächliche Ergebnis aus meinem ersten Beispiel würde sogar mehr Sequenzen enthalten, da es Sequenzen zurückgibt, die nur Sequenzen enthalten, da die Primzahl nur zurückgegeben wird, wenn n is prime .

    
Matten 06.07.2017, 11:40
quelle

Tags und Links