我正在尝试 ACSLogo(Mac 版本的 Logo)中的递归程序,并希望返回 2 个整数的列表(基本上是 X 坐标和 Y 坐标)。我不知道如何让它返回 2 个值。它没有问题。
此外,当您创建一个列表并希望引用它以提取特定索引中的值时,您似乎必须按原样粘贴该列表,并且您不能通过分配的名称引用它。
例子:
Item 4 [1 1 2 3 5 8 13 21]
您不能将该列表命名为“fibb”并像这样引用它X + fibb item 4
我正在尝试 ACSLogo(Mac 版本的 Logo)中的递归程序,并希望返回 2 个整数的列表(基本上是 X 坐标和 Y 坐标)。我不知道如何让它返回 2 个值。它没有问题。
此外,当您创建一个列表并希望引用它以提取特定索引中的值时,您似乎必须按原样粘贴该列表,并且您不能通过分配的名称引用它。
例子:
Item 4 [1 1 2 3 5 8 13 21]
您不能将该列表命名为“fibb”并像这样引用它X + fibb item 4
您可以将列表分配给变量名称,如下所示:
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)
因此,要从位置列表中获取x
和y
坐标,然后创建一个location
包含x
和y
值的新变量,您可以这样做:
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))