小编And*_*834的帖子

代码在Elm中编译,但在Haskell中不编译

目前我正在尝试学习Haskell,但我偶然发现了一个我不理解的错误:

* Occurs check: cannot construct the infinite type: a ~ [a]
  Expected type: [a]
    Actual type: [[a]]
* In the expression: (addL x acc [])
  In the first argument of `foldl', namely
    `(\ x acc -> (addL x acc []))'
Run Code Online (Sandbox Code Playgroud)

至于我实际上想做什么,是我试图转置矩阵(下面提供的代码).奇怪的是,如果我在Elm中运行代码(稍微调整一下),它就可以完美地运行.我需要一些帮助,因为我不明白我做错了什么.

榆木代码:

trans matrix =
   List.foldl (\x acc -> addL x acc []) [] matrix

addL x matrix solution =
   case x of
     []   -> solution
     h::t -> case matrix of
               []     -> addL t matrix (solution++[[h]])
               h2::t2 -> …
Run Code Online (Sandbox Code Playgroud)

haskell transpose functional-programming matrix elm

4
推荐指数
1
解决办法
161
查看次数

标签 统计

elm ×1

functional-programming ×1

haskell ×1

matrix ×1

transpose ×1