【发布时间】:2020-04-29 22:02:28
【问题描述】:
我有一个做数组乘积的函数:
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"]]
我们将不胜感激对任何一种方法的解决方案的任何见解。
【问题讨论】: