现在真的很想念哈斯克尔。你知道吗
我有这个密码:
for i in someFunc(arg0...argN):
//some logic
问题是someFunc
的返回值非常大,内存不足。你知道吗
我想我可以把它包装在一个生成器中,但这没有帮助,因为我不控制someFunc
,也就是说:
def gen_someFunc(someFunc):
for i in someFunc(arg0...argN):
yield i
没有帮助,因为someFunc
仍然是立即计算的。我怎样才能懒散地评估someFunc
?你知道吗
Tags:
在Python(或Haskell,这不是)中,不能对返回完全物化对象的函数进行延迟排队。在您使用函数之后,可能会发生懒惰,但是如果数据一次全部转储到您身上,您对此无能为力。你知道吗
也许有一些参数用于调用你还不知道的函数,这会让你懒散地评估它,但是我们从这里给出的信息中不知道这一点。你知道吗
如果可以在内存中保留对数据的初始调用,那么作为生成器调用它的Pythonic方法是
不要写这个函数,然后再调用它。你知道吗
相关问题 更多 >
编程相关推荐