Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Stack 因子中的字签名_Stack_Factor Lang - Fatal编程技术网

Stack 因子中的字签名

Stack 因子中的字签名,stack,factor-lang,Stack,Factor Lang,我尝试迭代一个包含天气数据的数组。这已经很好了,我还可以从数组中加载对我来说很重要的数据。因此,我写了一个帮助词,看起来像这样: :获取值(hsh str--str)在*处交换 [“main”获取值“temp”获取值]每9[+]次 此代码从堆栈上的数组中推送温度值,并构建总和。“main”和“temp”是数组的键值 我使用以下命令执行它:get weather list生成数组 “维也纳”获取天气列表[“主”获取值“临时”获取值]每9[+]次 结果是堆栈上的一个数字。现在我想把这个电话分成一两个

我尝试迭代一个包含天气数据的数组。这已经很好了,我还可以从数组中加载对我来说很重要的数据。因此,我写了一个帮助词,看起来像这样:

:获取值(hsh str--str)在*处交换

[“main”获取值“temp”获取值]每9[+]次

此代码从堆栈上的数组中推送温度值,并构建总和。“main”和“temp”是数组的键值

我使用以下命令执行它:get weather list生成数组

“维也纳”获取天气列表[“主”获取值“临时”获取值]每9[+]次

结果是堆栈上的一个数字。现在我想把这个电话分成一两个字。例如:

:获取天气信息(城市--str)
获取天气列表
[“主”获取值“临时”获取值]每9[+]次

问题是我不太理解这个词的签名。我总是得到“每个”的输入报价与预期效果不匹配”。我试了很多,但找不到解决这个问题的方法。谁能有个主意?我非常感谢您的帮助:)

干杯
Stefan

这是一个非常古老的问题,但它可能对某些人仍然有用

首先,关于
每个
:引号的堆栈效应是
(…x…)

这意味着它消耗一个输入,而不输出任何东西。你的引语对解释器起了作用,因为它可以让你避开“错误”的代码。但是,对于从定义的单词调用每个单词,您的引用不能输出任何内容

因此,
每一个
都不是你想要的。如果您试图将数量可变的值推送到堆栈中,您将再次遇到同样的问题。序列字都输出固定数量的值

您要做的是以下两件事之一:

  • 用所需的值创建一个新序列,然后对其调用
    sum

  • 在处理列表时,使用类似于“减少”
  • 的方法来累积总和

    例如,使用
    reduce

     get-weather-list 0 [ "main" get-value "temp" get-value + ] reduce ;