
Albert
09.04.2018
10:38:12

Alexey
09.04.2018
10:38:17

Quantum Harmonizer
09.04.2018
10:38:23

Руслан
09.04.2018
10:38:36
На SO обсосали ваш очень важный вопрос
https://stackoverflow.com/questions/155609/difference-between-a-method-and-a-function

Google

Albert
09.04.2018
10:38:46
Вообще. Вы забыли про процедуры

Mikhail
09.04.2018
10:40:01
Кто-нибудь использовал? https://github.com/diklimchuk/Kotlin-js-di

James Tiberius Kirk ?
09.04.2018
10:40:06
ну ясное дело что это спор из программы специальной олимпиады

Michael
09.04.2018
10:40:57
поэтому ты счел нужным принять в нем участие?

Руслан
09.04.2018
10:45:06
У него там дока, все дела

James Tiberius Kirk ?
09.04.2018
10:46:42

Mikhail
09.04.2018
10:51:27

Igor
09.04.2018
11:29:36
А в котлине ведь нет альтеpнатив такому скаловскому коду:
trait Functor[F[_]] {
// some useless stuff
}
Или я не нашел пpосто?
То есть сделать F<_> не выйдет (пока что)?

Leonid
09.04.2018
11:34:01
Higher-Kinded types нет в котлине

Igor
09.04.2018
11:37:24
Обидно, спасибо.

Michael
09.04.2018
11:40:05
А для чего это тебе на практике нужно?

Google

Michael
09.04.2018
11:40:15
(например)

Alexey
09.04.2018
11:46:06
Тайп классы

Руслан
09.04.2018
11:47:11
Из Слака, от @relizarov (PM - паттерн матчинг)
Еще один anecdotal piece of evidence. На JPoint подошла пара ребят с вопросом про PM. Я спросил:
— а в каком коде он вам помогает? — Ну когда “глубоко надо матчить“. — А где надо глубоко матчить?
— Ну вот если у нас есть `Future<Optional<Data>>

Vitalii
09.04.2018
11:48:17
В Either надо было ещё обернуть ?

Sergey
09.04.2018
12:42:30
опять с монадами и PM лезите в котлин
интересно в golang тоже в комьюнити требуют монады?

Alexey
09.04.2018
12:47:48
Вот пат мата на регулярках прям не хватает
с остальным можно жить

Sergey
09.04.2018
12:48:24
а можно конкретных кейсов когда паттерн матчинг нужен то?

Руслан
09.04.2018
12:48:43
> опять с монадами и PM лезите в котлин
> а можно конкретных кейсов когда паттерн матчинг нужен то?

Alexey
09.04.2018
12:50:07
val regexp = Regexp("""(\d+) | (\d+)""")
when(str) {
regexp(firstGroup, secondGroup) -> ???
else -> println("shit happens")
}

Quantum Harmonizer
09.04.2018
12:50:45
такие штуки на динамических языках удобно делать...

Alexey
09.04.2018
12:51:30
такие штуки в скалке активно пользуются

Vitalii
09.04.2018
12:52:53

Берял
09.04.2018
12:53:45

Quantum Harmonizer
09.04.2018
12:54:58

Alexey
09.04.2018
12:55:21
Кто будет считать редкость?

Quantum Harmonizer
09.04.2018
12:55:34

Берял
09.04.2018
12:55:35
фича более редкая на порядок

Google

Берял
09.04.2018
12:55:59
и без патмата менее полезная тоже на порядок

Quantum Harmonizer
09.04.2018
12:56:03

Alexey
09.04.2018
12:56:16
ну вот кстате да, ADT есть, а пат мата, чтобы его обходить - нет

Берял
09.04.2018
12:56:28
особенно когда зачатки патмата сделали в виде when, но не довели до конца

Igor
09.04.2018
12:57:31

Даниил
09.04.2018
12:57:33

Igor
09.04.2018
12:57:35
Сейчас скину пpуф.

Даниил
09.04.2018
12:57:48
ты про arrow?

Quantum Harmonizer
09.04.2018
12:58:26

Alexey
09.04.2018
12:59:00

Igor
09.04.2018
12:59:20
https://gist.github.com/komigor/eebbf98ee72a77016ba9c2ef91a151ba

Берял
09.04.2018
12:59:31

Igor
09.04.2018
12:59:40

Quantum Harmonizer
09.04.2018
12:59:56

Igor
09.04.2018
13:00:14

Alexey
09.04.2018
13:00:31

Igor
09.04.2018
13:00:41
Ну тут да. Увы.

Берял
09.04.2018
13:00:49

Igor
09.04.2018
13:01:01
Но вот сделать обеpтку над типом, чтобы потом extension функции к этой обеpтке имоpтились можно.

Google

Берял
09.04.2018
13:01:23

Quantum Harmonizer
09.04.2018
13:01:24

Igor
09.04.2018
13:01:43
Особенно с java-интеpопом

Берял
09.04.2018
13:02:30

Quantum Harmonizer
09.04.2018
13:02:59

Alexey
09.04.2018
13:03:34
Щас бы субъективщину за истину выставлять
Вот если бы было какое голосование, где сказали бы вот вам удобнее так или так

Берял
09.04.2018
13:04:16

Quantum Harmonizer
09.04.2018
13:05:44

Берял
09.04.2018
13:06:28

Alexey
09.04.2018
13:09:31
Похоже на фанатичное следование какой то позиции
Типо, да нет тут никаких проблем
Это с вами что то не то
У пат мата есть свои проблемы, но и достоинства там тоже есть, причем зачастую перевешивающие эти проблемы

Quantum Harmonizer
09.04.2018
13:12:26

Sergey
09.04.2018
13:15:29
в котлине мне не нравится JVM)
и то что все вокруг блокирующее

Alexey
09.04.2018
13:17:57
Из блокирующего остался же только JDBC по сути

Quantum Harmonizer
09.04.2018
13:18:14

Google

Quantum Harmonizer
09.04.2018
13:18:22
а на андроиде — так вообще

Sergey
09.04.2018
13:18:51
вот берешь ты какое-то SDK, типа AWS
и нужно проверять, не блокирующее ли оно

Руслан
09.04.2018
13:19:40

Sergey
09.04.2018
13:20:44
вот например в го, им не нужно знать как компилируются их саспенденд функции, париться о блокировках и тд. у них если написано где-то "блокируюется" значит это просто саспендится. им не нужно париться о потоках, потому что там только одна модель канкаренси
вот это все немного печалит, надеюсь kotlin/native в этом плане исправит огрехи JVM

Alexey
09.04.2018
13:21:04

Sergey
09.04.2018
13:21:23

Alexey
09.04.2018
13:21:46
Ну это же просто детские болезни

Sergey
09.04.2018
13:22:08
те же болезни у реактивных подходов, так что со временем все станет получше, надеюсь

Руслан
09.04.2018
13:22:26

Sergey
09.04.2018
13:22:55

Руслан
09.04.2018
13:25:11
Я не большой спец, но https://golang.org/pkg/io/#PipeWriter.Write

Sergey
09.04.2018
13:25:51
в go "blocking" постоянно называют саспендед, так что хз

Руслан
09.04.2018
13:27:43
Ну вот тогда еще в догонку обсуждение на SO https://stackoverflow.com/a/36117724/1538877

Sergey
09.04.2018
13:28:29

Руслан
09.04.2018
13:28:34
они по сути сделали то что мы делаем в корутинах или Rx с блокирующим API: завернули в тред пул

Sergey
09.04.2018
13:28:38
в прочем как это на и на котлине явно делаем
угу