【发布时间】:2011-11-27 21:20:04
【问题描述】:
我正在尝试在 Scheme 中执行以下操作:
List<int> list = new List<int>();
List<int> list1 = new List<int>();
List<int> list2 = new List<int>();
list.Add(1);
list.Add(2);
list.Add(3);
list.Add(4);
list1.Add(2);
list1.Add(4);
list1.Add(6);
list1.Add(8);
for (int i = 0; i < list.Count; i++)
{
for (int p = 0; p < list1.Count; p++)
{
list2.Add(list[i] * list1[p]);
}
}
如上面的代码所示,我试图将第一个列表中的每个元素与第二个列表中的每个元素相乘。所以 1*2, 1*4, 1*6, 1*8,然后去下一个元素,2*2,2*4..等等。
我无法在 Scheme 中实现这一点。我尝试使用 map 函数,但这似乎并没有按照我想要的方式工作。有什么想法吗?
【问题讨论】:
-
您是如何使用 map 进行尝试的,但它怎么没有像您想要的那样工作?如果您唯一的问题是结果在嵌套列表中,您可以在之后将其展平。
标签: list recursion scheme racket multiplication