Entry tags:
хотелки
Паттерн-матчинг в Haskell всё наворачивают.
А вот почему не сделают как в Прологе - если два идентификатора в паттерне совпадают, значит по этим позициям должны быть равные значения.
аналогично более сложному
И ещё! Не нравится мне, что при использовании многострочном объявлении функции приходится писать её название несколько раз.
А как было бы чудесно (объединяя оба примера)
Подчерк как повторение имени функции здесь условность, можно придумать что нибудь другое.
Это неважно.
А вот почему не сделают как в Прологе - если два идентификатора в паттерне совпадают, значит по этим позициям должны быть равные значения.
isDup (x:x:_) = True
isDup _ = False
аналогично более сложному
isDup (x:y:_) | x == y = True
isDup _ = False
И ещё! Не нравится мне, что при использовании многострочном объявлении функции приходится писать её название несколько раз.
А как было бы чудесно (объединяя оба примера)
isDup (x:x:_) = True
_ _ = False
Подчерк как повторение имени функции здесь условность, можно придумать что нибудь другое.
Это неважно.
no subject
Иногда, говорят, мешает. Вот конкретно с числами это мешает переделать систему типов классов в более математическом стиле.
no subject
Кстати, Eq там не обязателен. Пусть это будет аналогично сравнению с образцом, который не деривит Eq.
no subject
Вот. Соответственно, Num нужем всюду, где есть числа, и Prelude требует серъёзной переделки для избавления от этого. Возможно, вместе с ghc.
Попробуй представсь себе полиморфный код, но без Eq.
f (x:x:_) = x
f [1,2]
f "Hello"
f [Just $ Data.Set.Set.fromList "Hello",Just $ Data.Set.Set.fromList "Hello"] ;)
Получится структурное сравнение, то же, что и получается при deriving Eq. ;)
no subject
no subject
Lone Starr: Listen! We're not just doing this for money... We're doing it for a SHIT LOAD of money!
Barf: Oh, you're right. And when you're right, you're right. And you - you're always right.
http://imdb.com/rg/title-tease/quotes/title/tt0094012/quotes
;)
no subject
no subject
На Lucky Starr не тяну, хотя и очень охота. ;)
no subject
no subject
no subject
no subject
no subject