-4
Может кто-нибудь объяснить мне, что означает этот код haskell?Функция Haskell для подсчета подсчета списка
sublists [] = [[]]
sublists (x:xs) = [x:sublist | sublist <- sublists xs] ++ sublists xs
Я знаю, что эта функция вычисляет подсписку данного списка. Но я хочу знать, как это работает.
Вы считаете, что изучаете Haskell? – melpomene
Вы не понимаете алгоритм или реализацию алгоритма Haskell? – chepner
Интересная часть состоит в том, почему она выполняет рекурсивный вызов дважды, а не вычисляет его один раз и дважды использует результат. Это на самом деле очень важно. Можете ли вы понять, почему? – dfeuer