相关疑难解决方法(0)

连接两个向量 - 为什么长度不被视为可交换?

我正在玩伊德里斯,我遇到了一些令我困惑的事:

以下类型检查:

conc : Vect n a -> Vect m a -> Vect (n+m) a
conc [] ys = ys
conc (x :: xs) ys = x :: (conc xs ys)
Run Code Online (Sandbox Code Playgroud)

但这不是:

conc : Vect n a -> Vect m a -> Vect (m+n) a
conc [] ys = ys
conc (x :: xs) ys = x :: (conc xs ys)
Run Code Online (Sandbox Code Playgroud)

出现以下错误:

When checking right hand side of conc with expected type
        Vect (m + 0) a

Type mismatch between …
Run Code Online (Sandbox Code Playgroud)

idris

3
推荐指数
1
解决办法
269
查看次数

标签 统计

idris ×1