Функция ниже возвращает набор параметров набора (списка).F # Функция Powerset
let rec powerset = function
| [] -> [[]]
| x::xs -> List.collect (fun sub -> [sub; x::sub]) (powerset xs)
Я не понимаю, почему именно это работает. Я понимаю рекурсию. Я также понимаю, как работает List.collect. Я знаю, что рекурсия будет продолжаться до тех пор, пока не вернется экземпляр powerset [[]]. Тем не менее, я пытаюсь отслеживать возвращаемые значения после этой точки, и я никогда не получаю полный набор мощности.
Отличное объяснение! Теперь я понимаю причину этого. Большое спасибо. – topstarterrhp