Dies ist eine ziemlich einfache Frage, und ich wollte nur überprüfen, dass das, was ich mache und wie ich die F # interpretiere, sinnvoll ist. Wenn ich die AussageF # Funktionen vs. Werte
let printRandom =
x = MyApplication.getRandom()
printfn "%d" x
x
haben Statt printRandom
als Funktion der Erstellung läuft F # einmal und dann weist sie einen Wert. So, jetzt, wenn ich printRandom anrufe, bekomme ich, anstatt einen neuen zufälligen Wert zu bekommen und es zu drucken, einfach, was beim ersten Mal zurückgegeben wurde. Ich kann dieses Problem umgehen, meine definiert es als solches:
let printRandom() =
x = MyApplication.getRandom()
printfn "%d" x
x
Ist dies der richtige Weg, diese Unterscheidung zwischen parameterlose Funktionen und Werten zu ziehen? Das erscheint mir nicht ideal. Hat es Konsequenzen in Curry, Komposition usw.?
Beachten Sie, dass Sie fast sicher ein 'let' vor dem ersten Vorkommen von' x' hinzufügen möchten - andernfalls führen Sie einen Vergleich durch und werfen dann das Ergebnis weg. – kvb
Awesome Frage, hatte das genaue * gleiche Problem. Leider habe ich das gefunden, nachdem ich die Lösung entdeckt habe. – ses011