
Pineapple
06.07.2018
09:41:36
А сложение флоатов неассоциативно

Ilya
06.07.2018
09:42:22
то есть Sum Float и так моноид, без дополнительного инстанса для Fractional (Sum a)

Yuriy
06.07.2018
09:43:35

Ilya
06.07.2018
09:44:29
(это не говоря уж о том, что моноидные законы и с переполнением как-то не особо дружат, это же не мешает нам писать `Monoid (Product Int)`)

Google

Yuriy
06.07.2018
09:45:11
повод расширить стандартную библиотеку

Ilya
06.07.2018
09:51:21
просто оно ещё и Fractional

Yuriy
06.07.2018
09:52:10
1.5 Num
ой. я имел в виду, Num не 1.5
для 1.5 недостаточно Num

Ilya
06.07.2018
09:52:33

Ilya
06.07.2018
09:52:39
не в любой Num влезет 1.5, скажем так ?

Leonid
06.07.2018
09:54:42
Я поражаюсь hlint конечно. Прямо приятно что я не один такой тупой, а тупых так много что аж такие вот советы линтер встроены.
почему я сам не догадался написать "m == Just "on" а первое что в голову пришло было maybe False (== "on") m?

Ilya
06.07.2018
09:56:20
слишком функционально мыслишь

Yuriy
06.07.2018
09:56:26
булева слепота

Leonid
06.07.2018
09:58:29
да я вроде недавно был у офтальмолога

Aleksey
06.07.2018
10:00:28

Google

Aleksey
06.07.2018
10:01:11
Вместо "распакуй и сравни" делаю "запакуй эталон до нужной структуры" ;)

Ilya
06.07.2018
10:03:10
а на плохой стиль hlint тоже ругается? скажем излишнее увлечение point-less

Yuriy
06.07.2018
10:03:28

Ilya
06.07.2018
10:03:38
или вот такое, я недавно писал zipWith id [(^2), (^3)] [1, 2]

Yuriy
06.07.2018
10:03:48

Ilya
06.07.2018
10:04:10

Timofey
06.07.2018
10:04:43
во, кстати. Что всякие стайл-гайды говорят про if..then..else в сравнении с case..of?

Yuriy
06.07.2018
10:04:46

Timofey
06.07.2018
10:05:02
рыбка - >=>

Leonid
06.07.2018
10:05:11
(<=<) - более правильная

Yuriy
06.07.2018
10:05:27

Leonid
06.07.2018
10:06:16
ну а что? Если композишь вперед так пиши просто do

Yuriy
06.07.2018
10:06:25

Leonid
06.07.2018
10:07:05
if как-то выделяется из остального синтаксиса. глаза режет

Yuriy
06.07.2018
10:07:12

Timofey
06.07.2018
10:07:39
ладно, а относительно fromMaybe и maybe?

Yuriy
06.07.2018
10:07:47
вот между и ифом и гардами есть конфликт

A64m
06.07.2018
10:08:55
Кстати, почему?
да забыли просто. в каждом релизе обычно какието инстансы базовых классов для базовых типов новые до которых до этого руки не доходили

Leonid
06.07.2018
10:09:26
если со значением под Maybe надо что-то сделать то maybe, если нет то fromMaybe.
good = maybe "" show
bad = fromMaybe "" . fmap show

Yuriy
06.07.2018
10:09:42

Google

Timofey
06.07.2018
10:10:31

Leonid
06.07.2018
10:11:11
я кстати не обламываюсь делать case для мейби в монадном коде. читается лучше чем join . maybe
case норм

A64m
06.07.2018
10:12:13
я и кейс и иф не люблю

Timofey
06.07.2018
10:12:27

Ilya
06.07.2018
10:13:12
больше похоже на императивщину

Leonid
06.07.2018
10:13:34

A64m
06.07.2018
10:16:15
потому что композиционный стиль?
потому что в хаскеле два синтаксиса из двух языков эквейшн-стиль как у тернера и экспрешн стиль как в эмелях и второй я недолюбливаю в принципе

shadowjack
06.07.2018
10:16:28
Кстати а есть поинтфри аналог кейса?

A64m
06.07.2018
10:16:51
\case

Leonid
06.07.2018
10:17:01

Ilya
06.07.2018
10:17:44
вот тут например явно case пошёл бы лучше, не было бы лесенки https://www.govnokod.ru/6765

Yuriy
06.07.2018
10:19:29

kana
06.07.2018
10:19:57
тут даже не кейс
а просто гард с elem

Yuriy
06.07.2018
10:20:31
лучше матчить, чем сравнивать

kana
06.07.2018
10:20:59
10 матчей или elem "01234567890."?
даже не так, тут просто
chislo = all (`elem` "0123456789.")

Google

Yuriy
06.07.2018
10:21:07
напоминаю про существование MultiWayIf

A64m
06.07.2018
10:23:08

Leonid
06.07.2018
10:24:56
0-9 же идут друг за другом в ascii
не говоря уже про Data.Char.isNumber

kana
06.07.2018
10:25:31
есть, но там точка еще, проще сделать одну проверку, а не две

A64m
06.07.2018
10:25:56

Ilya
06.07.2018
10:26:03

kana
06.07.2018
10:26:07
chislo = all (`elem` '.':['0'..'9'])

Admin
ERROR: S client not available

Ilya
06.07.2018
10:26:37

Leonid
06.07.2018
10:26:50
foo str = case str of
[] -> error "YOLO"
'.':xs -> whatever
x:xs | isNumber x -> blah
| otherwise -> blahblha

Ilya
06.07.2018
10:27:30
тут уж не говоря о том, что "1.3..44" это тоже число будет

Leonid
06.07.2018
10:28:14
и да, я считаю что ro-che был прав и case лучше чем несколько тел функции с матчем

Aleksey
06.07.2018
10:29:36
несколько тел хороши, пока тела однострочные

Leonid
06.07.2018
10:29:51

Aleksey
06.07.2018
10:29:59
optText "" = Nothing
optText t = Just t
Вот такое ок и красиво

A64m
06.07.2018
10:30:24
я в свое время чуть не бросил изучать хаскель заглянув в ЯХТ и увидав там адовые лесенки из кейсов и ифов

Google

Leonid
06.07.2018
10:31:23

Aleksey
06.07.2018
10:31:59
Беда переписывания с мультиклозов на case - несколько параметров у функции. Лишний визуальный шум от кортежей - фу

A64m
06.07.2018
10:35:44
с однострочностью все наоборот, когда все это повторение в соседних строках - это только раздражает, а через несколько строк это лучше читается чем висящий паттерн кейса относящийся не пойми к чему

Leonid
06.07.2018
10:37:25
вам ленивость дали что-бы вы могли писать всё в where и потом в кейзах писать одну строчку

Aleksey
06.07.2018
10:37:50
"мало матчинга, много логики" = case
"много матчинга, мало логики" = клозы
Мультиклозы с общим where были бы норм ваще

Leonid
06.07.2018
10:39:55
мне кажется что часто много матчинга и глубокие структуры это скорее от лени написать еще один АДТ и зарание подготовить для проблемной области

Aleksey
06.07.2018
10:40:45
Нет же, вот ты матчишь два переметра на предмет комбинаций - отличный вариант для мультиклоза

Leonid
06.07.2018
10:40:53
Вот у Джаспера про это https://jaspervdj.be/posts/2016-05-11-ad-hoc-datatypes.html

Aleksey
06.07.2018
10:41:15
Вот! Я про такие случаи
Сам то точе часто предпочитаю case. Даже LambdaCase ;)

Leonid
06.07.2018
10:41:48
у меня в конпиляторе такое было для тайпчеков всяких везде. Правда я тогда и хаскель толком не умел

Антон
06.07.2018
10:45:10

Leonid
06.07.2018
10:46:11
да сравнивайте вы уже с >= '0' && c <= '9'

Aleksey
06.07.2018
10:46:17
numbers_only, is_number - не надо так!

Leonid
06.07.2018
10:46:43
а вообще на хакадже есть is-number вроде

Антон
06.07.2018
10:46:55

Aleksey
06.07.2018
10:46:59
left-pad

A64m
06.07.2018
10:47:00
для такого уже комбинаторный парсер надо

Антон
06.07.2018
10:47:04
Перенимаем опыт JS

Leonid
06.07.2018
10:47:11