我有一个执行数组产品的函数:
arrayProduct(l1,l2,l3) = [[a, b, c] |
a := l1[_]
b := l2[_]
c := l3[_]
]
如果我有如下定义的三个数组:
animals1 = ["hippo", "giraffe"]
animals2 = ["lion", "zebra"]
animals3 = ["deer", "bear"]
那么输出arrayProduct(animals1, animals2, animals3)
将是:
[["hippo","lion","deer"],["hippo","lion","bear"],["hippo","zebra","deer"],["hippo","zebra","bear"],["giraffe","lion","deer"],["giraffe","lion","bear"],["giraffe","zebra","deer"],["giraffe","zebra","bear"]]
如果我可以保证输入将始终是列表,我可以创建一个函数来做同样的事情,除了它可以接受动态数量的列表作为输入而不是仅仅 3?
我也在探索是否也可以只使用一个包含其中所有数组的参数来执行此操作,而不是接受多个参数。例如:
[["hippo", "giraffe"], ["lion", "zebra"], ["deer", "bear"], ["ostrich", "flamingo"]]
任何对任何一种方法的解决方案的见解将不胜感激。