在Scala中实现传统的基于循环的任务的最佳方法

我是Scala的新手,正在致力于实现算法。在C#中,使用必要的循环会容易得多,但是用Scala函数式编程语义来实现它有点令人困惑。

  1. 假设我必须用一维列表(L)中的值填充电子表格(S)中的N行和M列。
  2. 在电子表格中归档单个单元格时,涉及来回逻辑。
  3. 2a。系统将按顺序遍历L中的项目,并将其填充到工作表S中的下一个空白单元格中
  4. 2b。在从一个单元格中的L填充当前已处理物料的物料值时,系统将检查当前单元格是否接受该物料值。如果是,它将填充,然后继续进行下一个项目,然后执行步骤2a。如果不是,它将查看是否可以填充L中的下一个项目。在找到适合的值之前,系统将继续评估直到用完所有值并将其留空。
  5. 2c。在步骤2b中填充单元后,系统将移至下一个单元。现在,它将首先检查当前处理的单元格是否可以接受上一步(2b)中任何未处理的值。如果是,它将填充相同的内容并继续使用未处理的值进行处理。如果找不到适合的未处理值,它将根据指针在步骤2b上的位置从L中提取下一项。

如果我能获得有关如何使用Scala进行构建的想法,那将是非常不错的。正如我之前提到的,在C#中使用foreach循环会很容易,但是我不确定在函数式编程构造中实现此目的的最佳方法是什么。