Idris中奇怪的模式匹配行为

时间:2017-12-16 14:57:04

标签: pattern-matching idris totality

我偶然发现伊德里斯似乎是一种奇怪的行为。

我在Ubuntu 17.04和Idris 1.0上使用Emacs 25.3。

考虑以下模块:

module Strange

%default total

fun : Int -> Int -> Int
fun 0 0 = 0
fun 0 n = 10
fun n 0 = 20

当我加载它(C-c C-l)时,我没有得到非全部功能警告,当我在REPL上尝试它时,我得到了这个:

λΠ> fun 100 200
20 : Int

......好像Idris与第三个子句中的文字0不匹配。在正常shell(idris Strange.idr)中加载模块时也会发生此行为。

我不应该得到关于非整体性的某种错误吗?这个版本的Idris是否有一些错误?

0 个答案:

没有答案