
Evgeniy
17.06.2018
14:12:03

Andrew
17.06.2018
14:14:12
А то смотришь на код типа “a >>=+> b” и даже не знаешь, как это прочитать

Evgeniy
17.06.2018
14:15:56
HOPAC

Google

Ayrat
17.06.2018
14:25:56
В гопаке есть упоротые операторы, но часто употребимые как в хаскеле. >>= >>-, Channel give похож на go *<-
Упоротые это всякие Alt. Prepare Job with nack

Evgeniy
17.06.2018
14:29:01
Непонятно, зачем использовать такие операторы, когда есть функции.

Ayrat
17.06.2018
14:30:23
Оператор заменяет сразу две сущности |> + функцию (Job.map или Job.bind)

Mariia
17.06.2018
14:30:42

Ayrat
17.06.2018
14:30:46
Зачем нам оператор + если есть функция sum?
A |> sum B
Норм же? Не то что эти ваши операторы А + В

Evgeniy
17.06.2018
14:32:15

Ayrat
17.06.2018
14:32:45
Монадические комбинаторы в школе не проходят, но мы ж не в школе

Evgeniy
17.06.2018
14:33:52
Все верно, а еще их нет в стандартной библиотеке.

Andrew
17.06.2018
14:33:54

Mariia
17.06.2018
14:34:31

Evgeniy
17.06.2018
14:34:34

Google

Andrew
17.06.2018
14:34:38
Если компилятор позволяет любую функцию использовать как экстеншен метод

Mariia
17.06.2018
14:34:55

Ayrat
17.06.2018
14:34:57
В стандартной либе нет map в комп экспрешнах. Им тоже нельзя пользоваться?

Evgeniy
17.06.2018
14:36:09
Что делает map понятно из названия, что делает >>- уже не так просто понять при чтении. ;)

Ayrat
17.06.2018
14:36:39

Andrew
17.06.2018
14:37:07

Ayrat
17.06.2018
14:38:46
Спорим ниочом) в Fake есть оператор </> который заменяет Path.Combine. Очевидно что он делает из интеллисенса.
Короче, операторы это хорошо. Их понимание вопрос второй. Вы же поняли что :: или @ делает.
Вот к >>- или >>= можно привыкнуть так же быстро
Тем более они общеупотребимые

Evgeniy
17.06.2018
14:40:25

Vlad
17.06.2018
14:44:55

Andrew
17.06.2018
14:50:40
Плюс или минус еще можно назвать общеупотребимыми, с натяжкой можно считать таковым бинарный сдвиг, но даже про оператор собаки я не представляю что он делает

Daniel
17.06.2018
15:04:43
Я так думаю, у всех присутствующих (кто учился в техничкском вузе, конечно) были хотя-бы вышмат и матанализ. В рамках этих дисциплин вводилось немало символьных операций. Их тоже словами заменить? Когда постоянно используешь какую-либо нотацию - она быстро запоминается
Уж точно |+| лучше читается, чем SemigroupK.combine
Лёгкость освоения != удобство ежедневного использовпнияш
Симвоьные операторы в dsl благо

Pavel
17.06.2018
15:06:32
вот только в другой библиотеке |+| может означать все что угодно

Daniel
17.06.2018
15:07:04
Ну и что с того?

Google

Daniel
17.06.2018
15:07:20
combine тоже

Pavel
17.06.2018
15:07:37
держать в уме 100 и один вариант использования кастомного оператора?

Daniel
17.06.2018
15:09:08

Pavel
17.06.2018
15:09:32
эт япро оператор имелл ввиду
combine то хоть какойто контекст подразумевает

Ayrat
17.06.2018
15:11:27
Холивар за операторы. Нормас

Andrew
17.06.2018
15:12:24

Ayrat
17.06.2018
15:13:26
Джависты тоже гордятся что они геттеры и сеттеры одной кнопкой разворачивают в простыню

Andrew
17.06.2018
15:14:31
У джавистов одна крайность, у любителей операторов другая - ищем золотую середину

Evgeniy
17.06.2018
15:14:50
Проблема в том, что в голове нужно держать довольно много контекста, а тексты, где каждый знак важен, очень тяжело читать.

Pavel
17.06.2018
15:18:05
в общем для изращенцев есть такая штука https://marketplace.visualstudio.com/items?itemName=TaoLiu.MathSymbol

Igor
17.06.2018
15:37:44

Evgeniy
17.06.2018
15:38:38

Igor
17.06.2018
15:40:40
Эх блин, он страшненький ?

Ayrat
17.06.2018
15:44:32
И по-моему компилятор в F# на него ругается
Не за компом сейчас, проверьте пожалуйста кто может

Mikhail
17.06.2018
15:46:39
А как относитесь к >=> в Giraffe?

Igor
17.06.2018
15:48:19

Google

Igor
17.06.2018
15:48:47

Ayrat
17.06.2018
15:49:27
Это кляйзли и там, и там вроде.

Mikhail
17.06.2018
15:49:31

Igor
17.06.2018
15:50:08
Тогда норм. Плохо что в жирафе task юзаются

Mikhail
17.06.2018
15:50:37
А чем таски плохи? Не по канону?

Igor
17.06.2018
15:56:25
Семантика у них другая, с функционально точки зрения они хуже (зато перформанс лучше, это да).

Ayrat
17.06.2018
16:01:36

Igor
17.06.2018
16:03:10
error FS0035: This construct is deprecated: '$' is not permitted as a character inoperator names and is reserved for future use
А было у кого такое? Проект не собирается, хотя в коде ошибок нет.
error FS0192 : internal error : primDestForallTy: not a forall type
Гуглится только одна ишья на github f#, закрытая Д. Саймом (типа невоспроизводится).

Mariia
17.06.2018
16:12:49
let primDestForallTy g ty = ty |> stripTyEqns g |> (function TType_forall (tyvs, tau) -> (tyvs, tau) | _ -> failwith "primDestForallTy: not a forall type")

Roman
17.06.2018
16:14:12

Andrew
17.06.2018
16:25:03

Igor
17.06.2018
16:28:03

Evgeniy
17.06.2018
19:16:25
https://twitter.com/ben_a_adams/status/1008406784212656130

Vladimir
17.06.2018
19:38:49
интересно что такое mw
нашел - middleware =)
А вот ссылка https://www.techempower.com/benchmarks/#section=test&runid=bebca46e-899f-4958-8052-d5f5f5c81eb2&hw=ph&test=plaintext&l=qmx0ql

Evgeniy
18.06.2018
07:47:36
Привет.

Cute Guy
18.06.2018
07:47:55
Привет

Evgeniy
18.06.2018
07:48:19

Google

Cute Guy
18.06.2018
07:48:37
Хочу познать чудесный мир ФП. Пока просто смотрю

Evgeniy
18.06.2018
08:01:29

Cute Guy
18.06.2018
08:01:56
Да, уже читаю) спасибо

Ayrat
18.06.2018
08:35:19
Давайте навалимся и проголосуем за подсветку операторов в райдере
https://youtrack.jetbrains.com/issue/RIDER-16929#u=1529310658198

Dima
18.06.2018
08:38:57

Cute Guy
18.06.2018
08:39:37

Evgeniy
18.06.2018
08:47:16
Dima По поводу F# и прода. ;)
https://fsharp.org/testimonials/

Rustem
18.06.2018
09:22:12
это возможно решить на F# оптимальным способом?
#announcement #task_102
? Задача 102: Минимальное кол-во операций (решение будет в понедельник)
Дано натуральное число N. Вы можете выполнять след.операции над числом: вычитать 1, делить на 2 (если делится), делить на 3 (если делится).
Необходимо найти наименьшее кол-во операций, ктр приведут заданное число к 1.
Входные данные: N - натуральное число от 1 до 10^6
Вывод: число X - наименьшее кол-во операций, ктр приведут число N к 1.
Пример: N = 9
Answer = 2
P.S. На след.неделе мы перенесем публикацию анонса, чтобы у вас было больше времени на решение задачи!
но не оптимальное


Anna
18.06.2018
09:27:08
#announcement #task_102
? Задача 102: Минимальное кол-во операций (решение будет в понедельник)
Дано натуральное число N. Вы можете выполнять след.операции над числом: вычитать 1, делить на 2 (если делится), делить на 3 (если делится).
Необходимо найти наименьшее кол-во операций, ктр приведут заданное число к 1.
Входные данные: N - натуральное число от 1 до 10^6
Вывод: число X - наименьшее кол-во операций, ктр приведут число N к 1.
Пример: N = 9
Answer = 2
P.S. На след.неделе мы перенесем публикацию анонса, чтобы у вас было больше времени на решение задачи!
надо завести массив и хранить там количество операций, которые нужны, чтобы получить число, соответствующее индексу. в x[1] запишем ноль, потом идём вперёд, на клетку +1, x2, x3 и записываем туда новое количество операций, если получается меньше, чем там уже было
Не функциональненько получается, зато за линию


Ayrat
18.06.2018
09:29:46
Числодробилки вообще делать на ФП бывает удобно, но крайне неоптимально.
Мутабельность изо всех щелей, а ускорение в 90% случаев достигается через разбиение работы на X слайсов (где X кол-во ядер).
Короче, там больше C++ какой-то тренируется чем F#

Artem
18.06.2018
10:11:21
Что за шрифт?

Rustem
18.06.2018
10:12:04