Я совершенно новичок в Python, и мне было дано задание переписать две функции Python, используя Y-комбинатор. Для этого мне нужно сначала преобразовать их в лямбды, и вот в чем проблема - у них обоих есть несколько утверждений, и у меня возникают проблемы с тем, чтобы сделать их лямбда-совместимыми. Я читал об использовании кортежей или списков, но в моем случае это не работает.
def count(word_list, stopwords, wordfreqs):
if word_list == []:
return
else:
word = word_list[0]
if word not in stopwords:
if word in wordfreqs:
wordfreqs[word] += 1
else:
wordfreqs[word] = 1
count(word_list[1:], stopwords, wordfreqs)
def wf_print(wordfreq):
if wordfreq == []:
return
else:
(w, c) = wordfreq[0]
print(w, '-', c)
wf_print(wordfreq[1:])
Например, я попытался написать последнюю функцию в виде следующей лямбда-выражения:
wf_print = (lambda wordfreq:
None
if wordfreq == []
else
[None, (w, c) = wordfreq[0], print(w, '-', c), wf_print(wordfreq[1:])][0]
)
Но есть синтаксическая ошибка с назначением в списке.
Не могли бы вы указать мне правильное направление, когда речь идет об обеих этих функциях?