Eine weitere Einschränkung von F # -Angeboten?

8

Früher stieß ich heute auf eine Einschränkung von F # -Angeboten und stellte hier eine Frage dazu: F # -Angebote: Variable kann den Bereich verlassen

Nun, ich habe vielleicht eine andere Einschränkung bei der Konvertierung von Beispielen gefunden, die in Ссылка erscheinen von MetaOcam zu F #.

Diesmal habe ich dieses MetaOcaml-Snippet:

%Vor%

und ich habe es in

umgewandelt %Vor%

Ich bekomme den folgenden Fehler bei der Kompilierung: This expression was expected to have type int -> Expr<int> but here has type Expr<'a> mit den zwei <@ f @> .

Intuitiv finde ich den Fehler sehr sinnvoll. Aber gibt es einen Weg in F #, um zu beschreiben, was ich in diesem Fall will?

Codebeispiel:

%Vor%     
Lasse Espeholt 20.06.2011, 21:51
quelle

1 Antwort

4

Ich denke, Sie treffen das gleiche Problem wie in der vorherigen Frage - als ich die notwendigen Erklärungen aus der Zeitung kopierte, bekam ich:

  

Fehler FS0446: Die Variable 'f' ist in einem Zitat gebunden, wird aber als Teil eines gespleissten Ausdrucks verwendet. Dies ist nicht erlaubt, da es seinem Umfang entgehen kann.

Dies ist sinnvoll - das Erfassen von Variablen, die in einem gesplicten Ausdruck in einem Zitat enthalten sind, ist in F # nicht erlaubt und dies wird definitiv im Code-Snippet gemacht.

Ich bin mir nicht ganz sicher, warum Sie eine andere Fehlermeldung erhalten: Wenn Sie ein minimales vollständiges Sample posten können, kann das beantwortet werden, aber Sie werden immer noch diese Begrenzung der variablen Erfassung treffen. (Was wahrscheinlich in MetaOCaml ziemlich häufig verwendet wird).

    
Tomas Petricek 20.06.2011, 22:49
quelle