Как может значение типа:
type Tree =
| Node of int * Tree list
есть значение, которое ссылается на себя, сгенерированное функциональным способом?
Результирующее значение должно быть равно x в следующем коде Python для подходящего определения дерева:
x = Tree()
x.tlist = [x]
Правка: Очевидно, необходимы дополнительные пояснения. Я пытаюсь изучить F# и функциональное программирование, поэтому я решил реализовать дерево покрытия, которое я раньше программировали на других языках. Здесь важно то, что точки каждого уровня являются подмножеством точек нижнего уровня. Структура концептуально выходит на уровень-бесконечность.
В императивных языках у узла есть список дочерних элементов, в который входит и он сам. Я знаю, что это можно сделать императивно в F#. И нет, это не создает бесконечный цикл, учитывая алгоритм дерева покрытия.
let rec x = Node (something, [x])
(за исключением того, что это не работает). - person sepp2k   schedule 21.06.2010