Странное поведение сопоставления с образцом в Идрисе

Я наткнулся на то, что кажется странным для Идриса.

Я использую Emacs 25.3 на Ubuntu 17.04 и Idris 1.0.

Рассмотрим следующий модуль:

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

... как будто Идрис не соответствует буквальному 0 в третьем пункте. Это происходит также при загрузке модуля в обычную оболочку (idris Strange.idr).

Разве я не должен получить какую-то ошибку о не совокупности? Это какая-то ошибка в этой версии Idris?

0 ответов

Другие вопросы по тегам