4

我正在尝试 ACSLogo(Mac 版本的 Logo)中的递归程序,并希望返回 2 个整数的列表(基本上是 X 坐标和 Y 坐标)。我不知道如何让它返回 2 个值。它没有问题。

此外,当您创建一个列表并希望引用它以提取特定索引中的值时,您似乎必须按原样粘贴该列表,并且您不能通过分配的名称引用它。

例子:

Item 4 [1 1 2 3 5 8 13 21]

您不能将该列表命名为“fibb”并像这样引用它X + fibb item 4

4

1 回答 1

3

您可以将列表分配给变量名称,如下所示:

Make "locations [1 1 2 3 5 8 13 21]

然后,您可以访问列表中的一项,如下所示:

Item 1 :locations

例如,要设置一个名为x等于第二项的变量,您可以这样做:

Make "x (Item 2 :locations)

接下来,要从两个不同的值创建一个新列表,您可以使用List命令,例如:

Make "location (List 1 2)

或者,从变量:

Make "location (List :x :y)

因此,要从位置列表中获取xy坐标,然后创建一个location包含xy值的新变量,您可以这样做:

Make "locations [1 1 2 3 5 8 13 21]
Make "x (Item 1 :locations)
Make "y (Item 2 :locations)
Make "location (List :x :y)

或者,更简单地说:

Make "locations [1 1 2 3 5 8 13 21]
Make "location (List (Item 1 :locations) (Item 2 :locations))
于 2014-11-19T01:43:53.820 回答