
Roman
14.09.2018
19:18:23

Fill
14.09.2018
19:20:37
Давно вот вопрос мучает:
match some with
| true
| false
Это ок?

Roman
14.09.2018
19:21:04

Anna
14.09.2018
19:21:11

Google

Fill
14.09.2018
19:22:12

Grigoriy
14.09.2018
19:22:30

Roman
14.09.2018
19:23:05
Привет!

Grigoriy
14.09.2018
19:23:18
можно сократить нажатия - оставляешь true (или false) от "основной" логики
а второй паттрен заменяешь на _

Fill
14.09.2018
19:23:46

Arseniy
14.09.2018
19:24:00

Roman
14.09.2018
19:24:13

Grigoriy
14.09.2018
19:24:18
let a = if .. then ?
попробуй без else

Roman
14.09.2018
19:24:47

Fill
14.09.2018
19:24:49

Grigoriy
14.09.2018
19:25:09

Fill
14.09.2018
19:25:10
По моему матч декларативнее

Google

Fill
14.09.2018
19:25:21

Arseniy
14.09.2018
19:25:37
Ридабилити
Сириусли? Можешь найти разницу в РИДАБИЛИТИ между ифом и матчем по булам?

Vasily
14.09.2018
19:25:41
Ну если всего два кейса, лучше if,имхо

Fill
14.09.2018
19:25:54

Arseniy
14.09.2018
19:26:06
ну вот это единственная проблема этого вопроса

Grigoriy
14.09.2018
19:26:19
тоже 2 кейса
или Result

Arseniy
14.09.2018
19:26:34
на ридабилити может влиять, если ты все в point free напишешь.

Anna
14.09.2018
19:26:55

Vasily
14.09.2018
19:27:05
Анна чуть выше написала

Arseniy
14.09.2018
19:27:25
а как ты ветвление организовал — никто и не заметит.
один думают, что если всего 2 ветки, то надо Иф.
другие думают, что если везде матч, то зачем нам частный случай, давайте унифицировать.
разницы по факту 0

Roman
14.09.2018
19:48:03

Arseniy
14.09.2018
19:50:06
а что поменялось от того, что ты усложнил условие? а во втором случае, судя по всему врапнул вычисление на базе этого условия в опшен?

Roman
14.09.2018
19:53:33

Ivan
14.09.2018
19:55:03
Кстати дурацкий вопрос. Ну хорошо мы сделали match по DU из чужого nuget. Но он с версией добавил case. Упадет или нет и с чем?

Roman
14.09.2018
19:55:38

Vasily
14.09.2018
19:55:57

Google

Vasily
14.09.2018
19:56:09
Упадёт

Ivan
14.09.2018
19:56:19
С чем?

Vasily
14.09.2018
19:56:25
С matchfailureexception

Roman
14.09.2018
19:56:32
Но обычно сами DU из библиотек мало используются, надо пользоваться функциями которые либа предоставляет для использования типа

Grigoriy
14.09.2018
19:56:33
Упадёт
Сообщения можно редактировать :)

Arseniy
14.09.2018
19:56:41

Roman
14.09.2018
19:56:52

Ivan
14.09.2018
19:56:54
Спасибо, то есть он вставляет дополнительную проверку.

Vasily
14.09.2018
19:57:00

Roman
14.09.2018
19:57:47

Grigoriy
14.09.2018
19:58:15
Упадёт
Даже если в матче есть паттерн _ ?

Roman
14.09.2018
20:00:01

Grigoriy
14.09.2018
20:00:56
Нет
| _ -> failwith "Никогда такого не было и вот, опять"

Roman
14.09.2018
20:01:04

Grigoriy
14.09.2018
20:02:42
Тут на самом деле свой тип эесепшона нужен или некое дефолтное поведение, если уж матчишь по потенциально изменяемому и внешнему ДЮ

Ivan
14.09.2018
20:02:45


Arseniy
14.09.2018
20:03:59
Опшн это пример, просто где булы логично матчить.давац его исключим из обсуждения, если хочешь. Остаётся длинное булево выражение
если более развернуто.
я когда работал писателем наскале, видел как человек на ревью зарубает за if(a == false), с мотивацией, мол надо писать if(!a), потому что это "читается как думается", а в случае a == false, надо распознать сравнение и тд и тп.
далее, я знаю, что многие аналитики, в sql запросе предложение where начинают с 1 = 1, потому что дальше они через and будут писать условия, которые будут комментироваться и расскомментироваться по 100 раз.
даллее, я знаю людей, которые не любят тернарный оператор в C#, потому что он якобы мешает им думать и там легко совершить ошибку.
но по факту, на фоне всего объяма кода , если вникаешь в суть, заметить эти нюансы просто невозможно.
для этого надо сильно в себе культивировать один единственный правильный стиль и всегда его предерживаться, что контпродуктивно.
то есть if от match я не отличу. а если там будет поднято вычисление в монаду ради якобы больше "парадигмальности", то конечно будет фи.


Roman
14.09.2018
20:05:50
если более развернуто.
я когда работал писателем наскале, видел как человек на ревью зарубает за if(a == false), с мотивацией, мол надо писать if(!a), потому что это "читается как думается", а в случае a == false, надо распознать сравнение и тд и тп.
далее, я знаю, что многие аналитики, в sql запросе предложение where начинают с 1 = 1, потому что дальше они через and будут писать условия, которые будут комментироваться и расскомментироваться по 100 раз.
даллее, я знаю людей, которые не любят тернарный оператор в C#, потому что он якобы мешает им думать и там легко совершить ошибку.
но по факту, на фоне всего объяма кода , если вникаешь в суть, заметить эти нюансы просто невозможно.
для этого надо сильно в себе культивировать один единственный правильный стиль и всегда его предерживаться, что контпродуктивно.
то есть if от match я не отличу. а если там будет поднято вычисление в монаду ради якобы больше "парадигмальности", то конечно будет фи.
Сложно


Grigoriy
14.09.2018
20:05:54
if (a == false) - полностью согласен

Ivan
14.09.2018
20:06:01
Это чат - это пойдемте во флуд обсуждать.

Google

Roman
14.09.2018
20:06:13

Arseniy
14.09.2018
20:06:31
это флуд

Ivan
14.09.2018
20:06:51
А есл а -
Nullable
Не писали?

Arseniy
14.09.2018
20:07:34
мы мы вроде договорились, что опшены — не эквивалетный пример.

Ivan
14.09.2018
20:10:00
Да опшен - это круто. Но еше - это монада. С ней императивно, как бы грех.. ?

Grigoriy
14.09.2018
20:11:32
крутъ
алярма! пытаюсь заматчить enum из C#
все значения заматчил, а оно всё равно говорит - incomplete

Roman
14.09.2018
20:13:37

Ivan
14.09.2018
20:13:54
Кто нибудь смотрел, как компилятор строить автомат на computation expression?

Roman
14.09.2018
20:14:07

Grigoriy
14.09.2018
20:14:35
Все так же
а в тултипе - ещё одно энтри (как это по-русски?)
value__
без соответствующего инта
что это???

Roman
14.09.2018
20:15:01

Ivan
14.09.2018
20:15:05

Google

Roman
14.09.2018
20:15:34

Grigoriy
14.09.2018
20:16:31

Ivan
14.09.2018
20:17:04
Ды автоматы. Хотел понять почему асинки менее эффективны чем таски.

Roman
14.09.2018
20:17:59

Ivan
14.09.2018
20:18:00
enum пхоже кастомный оператор

Arseniy
14.09.2018
20:19:52
что это???
может быть то, что сишарповый енум можно приведением запихнуть значение, которое в енуме не прописано, ммм?

Grigoriy
14.09.2018
20:20:18

Ayrat
14.09.2018
20:21:32
на самом деле на IO работе вообще пофигу

Arseniy
14.09.2018
20:23:30

Ivan
14.09.2018
20:24:02
Это как раз да Айрат. Все же не понима пока во что компилится. А во что должно`(ударение)

Arseniy
14.09.2018
20:26:46
а чо не поднять сборку через дотпик в сишарп, если ил читать лень?
и посмотреть, что там реально происходит?