Nim-lang:具有两个变量的列表理解

时间:2019-01-12 07:04:21

标签: nim

对如何使用两个变量执行列表理解感到困惑。

这是我到目前为止想要做的:

let profile_row = lc[profile[r][c] | ( r <- 0..<4, c <- 0..<k ), int]

这是错误:

greedy_motif_ba2d.nim(22, 40) Error: type mismatch: got <seq[int], float>

这如何正确完成?

2 个答案:

答案 0 :(得分:2)

由于Nim 1.2 lc已被删除,因此对于今天进行搜索的任何人,以下是这样做的方法:

let profile_row = collect(newSeq):
  for r in 0..<4:
    for c in 0..<4:
      profile[r][c]

注释collect无需指定profile[r][c]的类型,但需要您为容器profile_row提供初始化过程

答案 1 :(得分:0)

事实证明,我所做的工作确实有效,只需要更改类型即可。

let profile_row = lc[profile[r][c] | ( r <- 0..<4, c <- 0..<k ), float]