f#-async

___ tag123f ___ F # ist eine prägnante, ausdrucksstarke und effiziente funktionale und objektorientierte Sprache für .NET, mit der Sie einfachen Code zur Lösung komplexer Probleme schreiben können. ___ answer25877035 ___

Wie bereits in der Frage diskutiert, werden %code% -Ausdrücke mit einem Berechnungsausdruck für die %code% -Klausel einfach nicht unterstützt (in F # 3.1). Es ist jedoch einfach, eine Funktion zu implementieren, die im Wesentlichen ein solches Verhalten aufweist. Hier ist eine Beispielimplementierung:

%Vor%     
___ tag123async ___ hilf uns, dieses Wiki zu bearbeiten ___ qstntxt ___

Zum Beispiel:

%Vor%

Sie können die %code% nicht ausführen, da Sie schließlich die Nachricht vom Compiler bekommen "Sie können do! nur in einem Berechnungsausdruck verwenden", aber es ist immer noch drin.

Ich weiß, wie ich das lösen kann, aber ich möchte verstehen, warum der Compiler dieses Szenario einschränkt.

Ok, nach einigem Gerede denke ich, dass es so entzuckert ist: (Ich bin sehr glücklich, dass wir Cexprs schreiben können)

von:

%Vor%

zu:

%Vor%

Ich bekomme, dass der zweite Teil von %code% keine %code% unterstützt.

    
___ qstnhdr ___ Warum erstreckt sich ein Berechnungsausdruck nicht über den finally-Block? ___
1
Antwort

Warum erstreckt sich ein Berechnungsausdruck nicht über den finally-Block?

Zum Beispiel: %Vor% Sie können die do! nicht ausführen, da Sie schließlich die Nachricht vom Compiler bekommen "Sie können do! nur in einem Berechnungsausdruck verwenden", aber es ist immer noch drin. Ich weiß, wie ich das lösen kann,...
16.09.2014, 13:31