2009-07-23 3 views
1

У меня есть простой тип:F # Лямбда в записях

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

Как я могу перейти к значению анонимной функции, возвращающей строку вместо правильной строки? Следующее не компилируется. Благодаря

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

ответ

6

ОК, я полный Newb в F #, но я думаю, что вы присваиваете функцию в строку, которая не делает много смысла. Вы можете либо изменить desc2 быть функцией, как

desc2 : unit -> string

или присвоить строку с помощью вызова анонимной функции, т.е.

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

В зависимости от случай, который вам действительно нужен.

1

Я предполагаю, что вы имели в виду, чтобы вызвать функцию:

Пусть оо = { DESC = "ОК"; desc2 = (fun() -> "")() }

Смежные вопросы