кана
я представить не могу, что кто-то так будет писать
кана
мало того, у [a] -> Maybe a есть и теоретическое обоснование, которое тоже важно
кана
функция forall a. [a] -> a невозможна теоретически
Ilya
а как часто ты пишешь код вида \(Just x) -> f x?
я и head не вызываю, если не уверен, что пустого списка не будет. и что с того. это разговор в плоскости best practices. ты не можешь представить, а кто-то возьмёт и напишет этот unJust, и компилятор съест.
кана
ну мой поинт был про то, что шанс заюзания head намного выше, чем шанс заюзания \(Just x) -> g
Dmitry
Alexander
Ilya
fromJust иногда встречается в моём коде.
правильно. потому что иногда программист уверен, что значение Nothing не придёт, и тогда fromJust оправдан. точно так же иногда программист уверен, что пустого списка не будет изначально, и тогда частичный head оправдан
Alexander
кроме bottom
Ilya
кана
дело в том, что жс программисты тоже в своем коде уверены, поэтому не полагаются на систему типов)
кана
проблемы две:
- иметь правильный тип
- правильно обработать значение
первая имхо приоритетнее второй, поэтому [a] -> Maybe a уже решение. Остается проблема обработки, которую хаскель не решает (и даже ворнинг не всегда показывает)
кана
но то, что мы не можем обработать - не значит, что нужно игнорировать и первую проблему
кана
так же мне кажется, что "уверен в том, что там Just" - флаг того, что типы неправильные
Alexander
вот не иметь head а иметь только safeHead имхо глупость неописуема
кана
нет, head полезен таки, если падение программы в неожиданном месте - норма
Alexander
глупости
Alexander
фашисткие
кана
иначе программа падает же
кана
без возможности захендлить ошибку
Ilya
Alexander
не падает если у тебя есть инварианты
Alexander
в том что второе тормозит в добавок
кана
так
кана
сейчас началась полная херня
Alexander
ваще я подробно написал
кана
мы говорим не о разных вещах
Ilya
Alexander
выше
кана
кана
только тогда, когда ты уверен, что там есть голова, иначе нужно упасть, ведь это невозможно
Alexander
прочитай выше, меня задолбало тут по полчаса подробно писать, чтобы потом очередной пурист пришел с заставлял с руганью меня повторяться
кана
кана
ебана
Alexander
а потом, мне бы говорили, что я слишком агрессивный и плохо пишу, и вообще тут комьюнити строят
Alexander
в общем есть смысл от призмы _head и head частичной
кана
твои слова: head можно использовать там, где ты уверен, что есть значение, ведь обратный кейс невозможный
мои слова: head можно использовать там, где я уверен, что есть значение, ведь иначе следует упасть, ведь это невозможно
ты мне отвечаешь: пурист, фашист, глупость
Alexander
значит я неверно прочитал что выше
Alexander
приношу извинения
Alexander
я прочитал как то, что head не нужно, а нужно использовать его безопасную версию
Alexander
возможно из-за части дискуссии выше
Alexander
Два хороших человека всегда найдут способ договориться
Alexander
Но если при этом полгорода в руинах, можно ли это считать успехом? Ощущения как от просмотра супергеройского фильма. Хеппи енд, все радуются, а что там половину мирного населения в расход пустили, никого не заботит
кана
смотри на это иначе
Taras 🦀
😂👍
кана
полгорода живы
A64m
т.е. писать какой-то высокоуровнеый код в принципе можно, что без проверок было бы затруднительно, но это не помогатель доказывателя же, в этом направлении будет боль и ужас
A64m
Alexander
ena
В "Иду на грозу" такая атмосфера описана, только для физиков как ваше обсуждение
Alexander
в общем я кажется совсем не понимаю hasql
Есть двумерный массив рэнжей, для рэнжей есть инстанс (mkDValue :: Value (Int, Int))
я пишу
let arrayOf = array . arrayDimension replicateM . arrayValue
in Map.fromList . ([0..6] `Prelude.zip`) <$> (arrayOf . arrayOf) mkDValue
Мне отет все та же "ResultError (RowError 0 (ValueError "End of input"))"
Как это отлаживать не очень понятно
Alexander
вот черт, это было прямо в документации в примерах использования :(
Vladislav
а есть ли что-то лучше чем pastebin для haskell?
Зигохистоморфный
какбы гисты на гитхабе
Denis
Denis
ИМХО.
Cheese
Vladislav
lpaste
что-то он у меня не открывается.
Vladislav
у кого-нибудь открывается?
Nikolay
Vladimir
http://isitblockedinrussia.com/?host=lpaste.net
Vladimir
> Yes! It appears that lpaste.net is currently blocked in Russia.
Vladimir
Но, видимо, он и без этого плохо себя чувствует.
Cheese
Vladislav
Vladimir
Там же написано, /17.
Vladislav
но он не открывается даже через впн
Artem
Из Чехии не открывается
Artem
Пару месяцев назад, кстати, для него искали мэинтейнеров на Реддите
https://www.reddit.com/r/haskell/comments/862k28/looking_for_new_maintainer_of_lpastenet/
Aleksei (astynax)
lpaste автор обещал закрыть вроде
A64m
чет как начался поиск желающих почитать про линтипы в комитетской рассылочке они и остальные пропозалы прекратили обсуждать. мертвыми прикинулись
Alexander
Почему - прикинулись мертвыми? Читают... Продираются... Офигевают...
A64m
ну да, конечно
Alexander
ну да, конечно
Люблю, когда со мной соглашаются, даже если согласие выглядит как сарказм
A64m
не только выглядит