Alexander
ты ещё скажи что Identity перечислить нельзя?
Cheese
Alexander
Tuple это не пара
Алексей
Там одноэлементное множество
Alexander
Tuple это контейнер
Алексей
С точки зрения фолдабля
Alexander
я не знаю зачем твой мозг даёт ложные переводы и аналогии и обманывает теб
Alexander
что такое пара?
Alexander
и что такое контейнер
Алексей
А яваскрипт получается, если использовать кучу эвристик противоречащих друг другу
Alexander
по мне пара это data Pair a = P a a
Alexander
и это контейнер
Cheese
контейнер — что-то содержащее что-то другое
Алексей
Alexander
полиморфная переменная типа есть?
Cheese
Alexander
ее и содержит
Alexander
ну это контейнер
Алексей
В стандартной библиотеке нету
Alexander
причем даже Proxy это контейнер
Алексей
То есть тупля ничего не содержит?
Alexander
хотя в Proxy полей нет
Cheese
не знаю, почему ты защищаешь свой язык, разрешающий писать плохой код
Alexander
потому что я нахожу то, что ты хочешь нелогичным
Alexander
и непоследовательным
Алексей
Поведение фолдабла в случае тупли совершенно логично, но с непривычки неинтуитивно
Cheese
ты мыслишь низко, в терминах хаскельных конкструкторов и тайпклассов, а я про понятия, которые они призваны реализовать, но реализуют плохо
Cheese
кана
кана
потому что я нахожу то, что ты хочешь нелогичным
нужно уточнить, чем ты считаешь хаскель для себя (и язык программирования в принципе)
Для меня, например, не важно, чтобы все инстансы были написано, наоборот, я бы хотел, чтобы хоть и верных, но опасных инстаснов не было, чтобы я СЛУЧАЙНО не допустил ошибку, потому что для меня компилятор - средство помощи. А если они нужны - имплиситно взять их через ньютайп
Ilya
кана
instance (a, b) where
null _ = True
fold _ = mempty
Cheese
@qnikst spam ^
kosc
Это что, спам-бот, который спамит через бота?
Cheese
@icrbow spam ^^^^
Cheese
кана
A64m
нужно уточнить, чем ты считаешь хаскель для себя (и язык программирования в принципе)
Для меня, например, не важно, чтобы все инстансы были написано, наоборот, я бы хотел, чтобы хоть и верных, но опасных инстаснов не было, чтобы я СЛУЧАЙНО не допустил ошибку, потому что для меня компилятор - средство помощи. А если они нужны - имплиситно взять их через ньютайп
опасных - это каких?
Алексей
Cheese
A64m
ну т.е. они реализуют "что-то, помеченное чем-то", и инстансы заходят в банку, и не трогают ее этикетку
Alexander
Alexander
негодный инстанс, почему он работает не так как остальные?
Alexander
почему он ломает мой траверсабл?
кана
в смысле не так, что значит "так"
кана
он работает
кана
и выполняет законы
Alexander
такой инстанс можно для любого типа написать
Alexander
поведение фолдаблов всех, такое что они производят операции на всех значениях самого внешнего параметра типов
Alexander
почему инстанс для тупла должен быть особенным я не очень понимаю
Cheese
Alexander
это же логично!
Alexander
в общем, я понимаю почему наличие инстанса для тупля может привести к проблемам при рефакторинге
кана
они просто взяли один из многих инстансов
кана
по своему желанию
A64m
про этот тупл надо на собеседованиях спрашивать
Alexander
я вот написал почему он такой, и и list и tuple и любой тип в эту логику укладывает
Alexander
даже дефолтный дерайвинг укладывается
Alexander
пытаться доказать что он плохой и нужен тривиальный инстанс это какая-то форма глупости
Alexander
есть ли проблемы с инстансом - есть
Alexander
лучше бы было если бы его не было - нет
Alexander
нужен другой инстанс - абсолютно нет
Cheese
A64m
ДА С ЧЕГО ОН БЕСПОЛЕЗНЫЙ-ТО
кана
почему не было бы лучше?
Возможно лучше, если бы он как-то сильно помогал
А так он как минимум делает код понятнее
Aleksei (astynax)
Нынешний инстанс - полезный
кана
мой вариант был выше такой - делать использование этого инстанса ЯВНО через ньютайп
Алексей
Ну он и реализует. Но из-за ограничений тайпклассов работает только с одним элементом
A64m
[("FOO", 1), ("BAR",2)]
ПОПРОБУЙТЕ СУММУ ПОСЧИТАЙТЕ БЕЗ ЭТОГО БЕСПОЛЕЗНОГО ИНСТАНСА
Cheese