Рекурсивные объекты в F#?

Этот фрагмент кода F#

    let rec reformat = new EventHandler(fun _ _ ->
        b.TextChanged.RemoveHandler reformat
        b |> ScrollParser.rewrite_contents_of_rtb
        b.TextChanged.AddHandler reformat
        )
    b.TextChanged.AddHandler reformat

приводит к следующему предупреждению:

traynote.fs(62,41): warning FS0040: This and other recursive references to the object(s) being defined will be checked for initialization-soundness at runtime through the use of a delayed reference. Это происходит потому, что вы определяете один или несколько рекурсивных объектов, а не рекурсивных функций. Это предупреждение может быть подавлено с помощью '#nowarn "40"' или '--nowarn:40'.

Есть ли способ переписать код, чтобы избежать этого предупреждения? Или в F# нет кошерного способа иметь рекурсивные объекты?

7
задан Muhammad Alkarouri 15 June 2012 в 19:19
поделиться