Матчится то, что не должно матчиться, имя S-выражения не совпадает, но паттерн матчится. Причём будет ли такой баг зависит от имени S-выражения.
Программа:
fun weirdCase (s) {
case s of
Binop (x) -> printf("weird 0\n")
| _ -> printf("weird 1\n")
esac
}
fun weirdCase2 (s) {
case s of
Abc (x) -> printf("weird 0\n")
| _ -> printf("weird 1\n")
esac
}
weirdCase(Binoprrr (100500));
weirdCase2(Abcrrr (100500))
Матчится то, что не должно матчиться, имя S-выражения не совпадает, но паттерн матчится. Причём будет ли такой баг зависит от имени S-выражения.
Программа:
Вывод: