2007年11月07日 星期三 18:15
浅解如下,如果有错误了,请不吝于指正。 > Message: 2 > Date: Wed, 7 Nov 2007 16:42:34 +0800 > From: clfff.peter <clfff.peter at gmail.com> > Subject: [python-chinese] > 谁能帮忙解释下最后一句是什么意思? > To: python-chinese <python-chinese at lists.python.cn> > Message-ID: > <17573fac0711070042t5f2f7f17odb24c4d639516ac1 at mail.gmail.com> > Content-Type: text/plain; charset="gb2312" > > from operator import mul, add, truth > > apply_each = lambda fns, args=[]: map(apply, fns, [args]*len(fns)) 定义一个 lambda 函数 apply_each,其有2个参数fns, args。 fns是要一个待执行的函数,args是给fns的参数,默认为空。这个 apply_each的功能就是对你传给它的fns的每个成员都调用一下apply(fns[?], args ),其实就是 for f in fns: apply(f, args)。 最后得到一个列表。 > > bools = lambda lst: map(truth, lst) 这个lambda函数就是简单地对lst中的每个成员都调用一遍truth(lst[?]) 最后得到一个列表。 > > bool_each = lambda fns, args=[]: bools(apply_each(fns, args)) 这个lambda函数应该是对fns的每个成员都调用一遍apply(fns[?], args),然后将返回值作为参数再调用函数 truth 得到一个列表。 > > conjoin = lambda fns, args=[]: reduce(mul, bool_each(fns, args)) 将刚才的命令得到列表逐个调用mul(x[i], x[i+1]),看字面意思就是将这个列表中的值逐个相乘。 > > all = lambda fns: lambda arg, fns=fns: conjoin(fns, (arg,)) #lambda 这个lambda函数的作用是生成另一个lambda函数,比如L2,然后调用L2就可以生成conjoin函数。 嘿嘿,让我想起了俄罗斯套娃娃的玩具。 貌似这个东西是拿来发明一个新的语言之类的 ? > 太多了,看不懂。 > -------------- 涓���ㄥ� -------------- > 一个HTML附件被移除... > URL: http://python.cn/pipermail/python-chinese/attachments/20071107/77148d9a/attachment-0001.htm -- THINK big, DO small.
2007年11月07日 星期三 19:14
非常感谢。
…~ ~
----------
在07-11-7,GoodGoodStudy&DayDayUp; <peixu.zhu在gmail.com> 写道:
>
> 浅解如下,如果有错误了,请不吝于指正。
>
> > Message: 2
> > Date: Wed, 7 Nov 2007 16:42:34 +0800
> > From: clfff.peter <clfff.peter在gmail.com>
> > Subject: [python-chinese]
> > 谁能帮忙解释下最后一句是什么意思?
> > To: python-chinese <python-chinese在lists.python.cn>
> > Message-ID:
> > <17573fac0711070042t5f2f7f17odb24c4d639516ac1在mail.gmail.com>
> > Content-Type: text/plain; charset="gb2312"
> >
> > from operator import mul, add, truth
> >
> > apply_each = lambda fns, args=[]: map(apply, fns, [args]*len(fns))
>
> 定义一个 lambda 函数 apply_each,其有2个参数fns, args。
> fns是要一个待执行的函数,args是给fns的参数,默认为空。这个
> apply_each的功能就是对你传给它的fns的每个成员都调用一下apply(fns[?], args ),其实就是 for f in
> fns: apply(f, args)。
> 最后得到一个列表。
>
> >
> > bools = lambda lst: map(truth, lst)
>
> 这个lambda函数就是简单地对lst中的每个成员都调用一遍truth(lst[?])
> 最后得到一个列表。
> >
> > bool_each = lambda fns, args=[]: bools(apply_each(fns, args))
>
> 这个lambda函数应该是对fns的每个成员都调用一遍apply(fns[?], args),然后将返回值作为参数再调用函数 truth
> 得到一个列表。
>
>
> >
> > conjoin = lambda fns, args=[]: reduce(mul, bool_each(fns, args))
>
> 将刚才的命令得到列表逐个调用mul(x[i], x[i+1]),看字面意思就是将这个列表中的值逐个相乘。
>
> >
> > all = lambda fns: lambda arg, fns=fns: conjoin(fns, (arg,))
> #lambda
>
> 这个lambda函数的作用是生成另一个lambda函数,比如L2,然后调用L2就可以生成conjoin函数。
> 嘿嘿,让我想起了俄罗斯套娃娃的玩具。
> 貌似这个东西是拿来发明一个新的语言之类的 ?
>
> > 太多了,看不懂。
> > -------------- 涓���ㄥ� --------------
> > 一个HTML附件被移除...
> > URL:
> http://python.cn/pipermail/python-chinese/attachments/20071107/77148d9a/attachment-0001.htm
>
> --
> THINK big, DO small.
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
-------------- 下一部分 --------------
一个HTML附件被移除...
URL: http://python.cn/pipermail/python-chinese/attachments/20071107/2d4992fe/attachment.html
Zeuux © 2025
京ICP备05028076号