我对 Python 完全陌生,我被赋予了使用 Y 组合器重写两个 Python 函数的任务。为此,我必须先将它们转换为 lambda,这就是问题所在 - 它们都有多个语句,我在使它们与 lambda 兼容时遇到了麻烦。我一直在阅读有关使用元组或列表的信息,但这似乎不适用于我的情况。
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:])
例如,我尝试将最后一个函数编写为以下 lambda:
wf_print = (lambda wordfreq:
None
if wordfreq == []
else
[None, (w, c) = wordfreq[0], print(w, '-', c), wf_print(wordfreq[1:])][0]
)
但是列表中的赋值存在语法错误。
当涉及到这两个功能时,您能指出我正确的方向吗?