【发布时间】:2014-01-19 19:33:34
【问题描述】:
一台机器正在打开和关闭。
seqStartStop是一个seq<DateTime*DateTime>,收集机器任务执行的开始和结束时间。
我想生成机器空闲的时间序列。为此,我想构建一个元组序列(beginIdle, endIdle)。
-
beginIdle对应机器在运行过程中的停机时间 上一个周期。 -
endIdle对应当前生产的开始时间 循环。
在实践中,我必须通过获取 i-1 元组的第二个元素和以下元组 i 的第一个元素来构建 (beginIdle, endIdle)
我想知道如何在不将 seqStartStop 转换为数组然后以命令式方式循环遍历数组的情况下完成这项任务。
另一个想法是创建两个seqStartStop 的副本:一个去除头部是尾部,一个去除头部(向后移动元素);然后应用map2。
我可以按照here 的描述使用skip和take
所有这些看起来都相当麻烦。有没有更直接的东西 一般来说,我想知道如何对序列中具有不同滞后的元素执行计算。
【问题讨论】:
-
如何计算第一期的
beginIdle和最后一期的endIdle? -
或者空闲时间比机器运行时间少一个,这种情况下我们不用担心。
-
好问题。是的,机器运行时的空闲时间更少。空闲时段是工作时段之间的时段。因此,空闲周期总是比工作周期数少一个。