![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Паттерн-матчинг в Haskell всё наворачивают.
А вот почему не сделают как в Прологе - если два идентификатора в паттерне совпадают, значит по этим позициям должны быть равные значения.
аналогично более сложному
И ещё! Не нравится мне, что при использовании многострочном объявлении функции приходится писать её название несколько раз.
А как было бы чудесно (объединяя оба примера)
Подчерк как повторение имени функции здесь условность, можно придумать что нибудь другое.
Это неважно.
А вот почему не сделают как в Прологе - если два идентификатора в паттерне совпадают, значит по этим позициям должны быть равные значения.
isDup (x:x:_) = True
isDup _ = False
аналогично более сложному
isDup (x:y:_) | x == y = True
isDup _ = False
И ещё! Не нравится мне, что при использовании многострочном объявлении функции приходится писать её название несколько раз.
А как было бы чудесно (объединяя оба примера)
isDup (x:x:_) = True
_ _ = False
Подчерк как повторение имени функции здесь условность, можно придумать что нибудь другое.
Это неважно.