gpt4 book ai didi

python - 如何将 python 生成器函数转换为 ruby​​?

转载 作者:太空宇宙 更新时间:2023-11-03 17:52:29 26 4
gpt4 key购买 nike

我想知道如何将这段 Python 代码翻译成 Ruby:

from __future__ import generators

def xcombinations(items, n):
if n==0: yield []
else:
for i in xrange(len(items)):
for cc in xcombinations(items[:i]+items[i+1:],n-1):
yield [items[i]]+cc

--我根据要求尝试:

def xcombinations(items, n)
Fiber.new do
if n == 0
Fiber.yield []
else
for i in 0...items.length
xcombinations(items[0...i]+items[i+1..-1],n-1).resume.each do |cc|
Fiber.yield [items[i]] << cc
end
end
end
end
end

最佳答案

我不确定是否有从 python 转换为 ruby​​ 的通用方法,但至少在你的示例中,它可以通过使用枚举器类进行转换,如下所示。

def xcombinations(items, n)
Enumerator.new do |y|
if n == 0 then
y << []
else
for i in 0...items.length
xcombinations(items[0...i]+items[i+1..-1],n-1).each do |cc|
y << [items[i]]+cc
end
end
end
end
end

关于python - 如何将 python 生成器函数转换为 ruby​​?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28932094/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com