2009-07-23 7 views
1

Ich habe eine einfache Art:F # Lambda-Ausdrücke in Aufzeichnungen

type p = 
    { 
     desc : string; 
     desc2: string 
    } 

Wie kann ich auf einen Wert übergeben eine anonyme Funktion eine Zeichenfolge anstelle einer richtigen Zeichenfolge zurückkehrt? Folgendes wird nicht kompiliert. Dank

let oo = 
    { 
     desc = "ok"; 
     desc2 = (fun() -> "") 
    } 

Antwort

6

OK, ich bin ein total Newb in F #, aber meine Vermutung ist, dass Sie eine Funktion in einen String sind zuweisen, die nicht eine ganze Menge Sinn macht. Sie können entweder ändern desc2 eine Funktion zu sein, wie

desc2 : unit -> string

oder eine Zeichenfolge zuweisen, indem Sie die anonyme Funktion aufgerufen wird, das heißt

desc2 = (fun() -> "")()

Je nach der Fall, den du tatsächlich brauchst.

1

Ich denke, man kann die Funktion aufgerufen gemeint:

let oo = { desc = "ok"; desc2 = (Spaß() -> "")() }