@Fsharp_chat

Страница 712 из 772
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
Ещё бы и RTypeProvider и PythonTypeProvider)
@nevoroman Пайтон провайдер не сложился?

Anna
14.09.2018
19:21:11
Google
Fill
14.09.2018
19:22:12
я бы if использовала для такого
А я бы нет, суть вопроса : а не идиот ли я?

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

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

Arseniy
14.09.2018
19:24:00
А я бы нет, суть вопроса : а не идиот ли я?
вот скажи. на что это влияет? вот на что? это что код ревью, когда я нихачу вникать в задачу, я буду заниматься стилистическими проблемами?

Roman
14.09.2018
19:24:13
В ифе можно не писать елс
Тогда функциия должна возвращать unit

Grigoriy
14.09.2018
19:24:18
let a = if .. then ?

попробуй без else

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,имхо

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

Grigoriy
14.09.2018
19:26:19
Ну если всего два кейса, лучше if,имхо
почему тогда Option в ifах не писать?

тоже 2 кейса

или Result

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

Anna
14.09.2018
19:26:55
почему тогда Option в ifах не писать?
потому что Option надо деструктурировать. А логическое ifом красиво проверяется

Vasily
14.09.2018
19:27:05
почему тогда Option в ifах не писать?
Ну потом option.bind и понеслась

Анна чуть выше написала

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

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

Roman
14.09.2018
19:53:33
а что поменялось от того, что ты усложнил условие? а во втором случае, судя по всему врапнул вычисление на базе этого условия в опшен?
Поменялась лаконичность, if явно говорит и подсказывает, что там булево значение, а матчить можно многое. Это как подсказка внутреннему компилятору, читать легче. Во втором случае какой-то bool option, даже не важно откуда он) важно, что там уже три ветки.

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

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
Упадёт
Сообщения можно редактировать :)

Roman
14.09.2018
19:56:52
Упадёт
В рантайме

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

Roman
14.09.2018
19:57:47
ну изначальный вопрос ставил не так, а именно иф против матча по булам. опшен позже вкинули. так что строго говоря, это не эквивалентные примеры
Опшн это пример, просто где булы логично матчить.давац его исключим из обсуждения, если хочешь. Остаётся длинное булево выражение

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

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

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

Ivan
14.09.2018
20:02:45
С matchfailureexception
Еще один плюс unit

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?

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

без соответствующего инта

что это???

Roman
14.09.2018
20:15:01
Кто нибудь смотрел, как компилятор строить автомат на computation expression?
@vshapenko и на msdn есть много по билдерам, но не сказал бы, что там автоматы

Ivan
14.09.2018
20:15:05
алярма! пытаюсь заматчить enum из C#
Обязательно _. Он отпускает только на DU

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
Ды автоматы. Хотел понять почему асинки менее эффективны чем таски.
Как раз потому что таски на автоматах, а Аминка на континюэйшинах. Ayrat Hudaygulov в докладе рассказывал

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

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

Ayrat
14.09.2018
20:21:32
Как раз потому что таски на автоматах, а Аминка на континюэйшинах. Ayrat Hudaygulov в докладе рассказывал
а ещё в асинках встроенная магия с проверкой канселейшн токена на каждом шаге, тоже скорости не добавляет. Но зато руками проверять не надо.

на самом деле на IO работе вообще пофигу

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

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

и посмотреть, что там реально происходит?

Страница 712 из 772