Rubyでデカルト積を計算するには、を使用できますArray#product
。配列の配列があり、積を計算したい場合の構文はどうですか?
[[1,2],[3,4],[5,6]] => [[1,3,5], [2,3,5], ...]
Rubyのドキュメントでは、product
メソッドは任意の数の引数で定義されているため、わかりません。次のように、配列の配列を引数として渡すだけです。
[].product(as) => [
十分ではありません。どうすればこれを解決できますか?
このメソッドは複数の引数を取りますが、引数を含む配列は取りません。したがって、次のように使用する必要があります。
[1,2].product [3,4], [5,6]
が配列の配列である場合as
は、次のように「スプラット」する必要があります。
as[0].product(*as[1..-1])
私が持っている最も近い表記は次のとおりです。
:product.to_proc.call(*as)
# shorthand
:product.to_proc.(*as)
:product.to_proc[*as]