Недавно я читал некоторые материалы о функциональном программировании на Python, один из них здесь: http://www.ibm.com/developerworks/linux/library/l-prog2/index.html
Я набираю код:
from functional import *
taxdue = lambda: (income-deduct)*rate
incomeClosure = lambda income,taxdue: closure(taxdue)
deductClosure = lambda deduct,taxdue: closure(taxdue)
rateClosure = lambda rate,taxdue: closure(taxdue)
taxFP = taxdue
taxFP = incomeClosure(50000,taxFP)
taxFP = rateClosure(0.30,taxFP)
taxFP = deductClosure(10000,taxFP)
print"Functional taxes due =",taxFP()
print"Lisp-style taxes due =", \
incomeClosure(50000,
rateClosure(0.30,
deductClosure(10000, taxdue)))()
, но в итогеСледующая информация об ошибке:
Functional taxes due =
Traceback (most recent call last):
File "E:/Study/python/FP/FP1.py", line 16, in <module>
print"Functional taxes due =",taxFP()
File "E:/Study/python/FP/FP1.py", line 5, in <lambda>
taxdue = lambda: (income-deduct)*rate
NameError: global name 'income' is not defined
Я использую Python 2.7.1, я хочу знать, в чем проблема, заранее спасибо.