
Alexey
23.10.2018
17:36:02

Egor
23.10.2018
17:36:06
Спасибо, что оформил

Alexey
23.10.2018
17:36:32

Google

Alexey
23.10.2018
17:38:01
Ну вобщем, основной кейс это конечно разбор разных ADT

Andrey
23.10.2018
17:40:19
Ну про какой паттерн матчинг вообще речь, если сейчас даже деструктуризация для полей дата класса не реализована?
То есть, если одним из полей дата класса является объект другого дата класса, то надо сначала внешний деструктурировать, достать при этом поле, а потом уже поле деструктурировать.

Alexey
23.10.2018
17:41:02

Vladimir
23.10.2018
17:41:19

Egor
23.10.2018
17:41:50

Alexey
23.10.2018
17:42:08

Vladimir
23.10.2018
17:43:32

Egor
23.10.2018
17:44:16
Что мы, варвары что-ли?

Anna
23.10.2018
17:44:36
Чтобы запилить паттерн матчинг, нужен паттерн матчинг ?♀️

Boris
23.10.2018
17:44:54

Vladimir
23.10.2018
17:45:45

Boris
23.10.2018
17:46:13
Впрочем, сейчас такое в приличном обществе не предложишь, забросают канделябрами

Google

Egor
23.10.2018
17:47:06
Кстати, сейчас чекнул свой эликсирный код. Вот вам ещё один юзкейс - парсинг жсона, без аннотаций и вот этого всего. А? А? А?

Vladimir
23.10.2018
17:47:18

Kirill
23.10.2018
17:47:30

Konstantin
23.10.2018
17:47:41
не парсингом единым жив программизд

Kirill
23.10.2018
17:48:06

Egor
23.10.2018
17:49:02

Konstantin
23.10.2018
17:50:07
куда уходить та, мне и так норм например. это ж просто инструменты. "как надоели все эти молотки, плоскогубцы, отвертки, давайте уйдем от них и перейдем на другой инструмент"
на какой
ну конечно так чтобы не требовалось диплом бакалавра
чтобы что то понять как с инструментом работать )

Egor
23.10.2018
17:51:57
На более прогрессивный, например? Вон, все жалуются, что Рх сложный, не для того и вообще оверхед. Есть другой вариант - корутины, ну а если переходишь на корутины, то там и до ручного парсинга недалеко ?

Bogdan
23.10.2018
17:52:26

Andrey
23.10.2018
17:52:41

Bogdan
23.10.2018
17:54:08

Konstantin
23.10.2018
17:54:20

Egor
23.10.2018
17:54:48

dimiii
23.10.2018
17:54:59

Andrey
23.10.2018
17:55:15

Egor
23.10.2018
17:55:36
И правда ?

Andrey
23.10.2018
17:55:45

Google

Igor
23.10.2018
17:55:46

Bogdan
23.10.2018
17:56:25
Неправда ваша
что 80% людей пишушие сервера работают удаленно ? я не про опенсорс, человек про работу спрашивал

Andrey
23.10.2018
17:57:15
Плюс про Haskell особо тереть нечего. Там всё то, за что тут холиварят, есть, и даже больше.

Bogdan
23.10.2018
17:57:23

Boris
23.10.2018
17:57:29

Bogdan
23.10.2018
17:57:48
был доклат от Тагира - "Патернматчинг и его воображаемые друзья"
првда там джава

Alexander
23.10.2018
18:00:04
https://openjdk.java.net/jeps/305

dimiii
23.10.2018
18:01:34

Alexander
23.10.2018
18:02:11
Бреслва черным по белому гововрил, что подолждет, пока Java соберет грабли, потом будет решать, добавлять ли это в котлин

Andrey
23.10.2018
18:02:18
можно накостылять везде
Ну можно какой-нибудь пример, как паттерн матчингом можно злоупотребить настолько, что аж больно будет?
Бремя доказательства, если что, лежит на утверждающем наличие некоторого свойства.

Egor
23.10.2018
18:02:39

Alexander
23.10.2018
18:03:46
Судя по jep-у, они пока просто клонируют котлиновский синтаксис для констант, а что-то более сложное в бесконечно отдеаленном будущем.

dimiii
23.10.2018
18:04:51

Boris
23.10.2018
18:06:15
А вот не помню, обсуждали ли тут поддержку котлином тру иммутабельности?

Andrey
23.10.2018
18:06:40

Egor
23.10.2018
18:07:05
Однажды мальчик спросил маму: "Мама, а если всем дружно попросить Бреслава не добавлять тернарь в Котлин, его не добавят?"
Вместе с мамой плакала половина чата. Бреслав, не добавляй тернарный оператор!

Boris
23.10.2018
18:07:06
Или как в расте

Google

Andrey
23.10.2018
18:07:43

Kirill
23.10.2018
18:07:52

Boris
23.10.2018
18:08:27
Ну модификатор, который декларирует неизменяемость и гарантирует её

Egor
23.10.2018
18:08:52
Неизменяемость чего? Ссылки?

Boris
23.10.2018
18:09:41
Нет, не только ссылки, конечно. Для ссылки есть вал

Alexander
23.10.2018
18:10:45
Вложенных объектов

Boris
23.10.2018
18:11:48
Т.е. пишешь что на вход приходит иммутабл, это гарантирует компилятор и например позволяет использовать в многопоточном коде без синхронизации

Egor
23.10.2018
18:11:57
Тогда обсуждали

Boris
23.10.2018
18:13:02

Alexey
23.10.2018
18:16:13
Но есть же val и он вполне даёт гарантии если все вложенные структуры тоже иммутабельны

Igor
23.10.2018
18:32:38
Ребят, как detekt сказать, что мне надо прочекать N конкретных файлов, а не все в папке?

jordan
23.10.2018
18:33:28
Привет всем
Где можно найти годный материал по котлину на русском?

Kirill
23.10.2018
18:34:26
Хотя не совсем так... давно с плюсами работал. Уже не помню точно всего, что там вокруг const навёрнуто

Igor
23.10.2018
18:40:00

dimiii
23.10.2018
18:42:37

Alexander
23.10.2018
18:43:50

Google

Andrew
23.10.2018
18:44:13

Kirill
23.10.2018
18:44:14
Ну, как минимум можно объявить аргумент метода const. И по сигнатуре будет видно: вот, этот чувак обязуется мой объект за мякотки не щупать

Alexander
23.10.2018
18:45:03
Ну это все и в котлине сейчас есть. Проблема исключительно с изменяемостью вложенных типов. В С++ не решается в принципе, в котлине в принципе можно проверкой времени комилляции

Kirill
23.10.2018
18:45:06

Alexey
23.10.2018
18:45:22

Igor
23.10.2018
18:46:38
Скинь решение подробнее, пожалуйста. Как именно вызываешь
Как-то так ?
private fun runDetekt() {
val kts = getChangedFiles(".kt")
val args = listOf(
"-c", "detekt-config.yml",
"-i", kts.joinToString(separator = ";")
)
io.gitlab.arturbosch.detekt.cli.main(args.toTypedArray())
}
private fun getChangedFiles(extension: String): List<String> =
Runtime.getRuntime()
.exec("git diff --diff-filter=AM --name-only HEAD")
.inputStream.bufferedReader().readLines()
.filter { it.endsWith(extension) }

Andrew
23.10.2018
18:47:19

Alexander
23.10.2018
18:49:31

Kirill
23.10.2018
18:50:03
Ну, я пока не слышал о каких-то ограничениях в любом ЯП, которые накладываются прям жёстко и без возможности обойти. Обычно это решается по-другому - на любой const_cast или что-то подобное приходится оправдываться на код-ревью (у вас же есть код-ревью?)

Alexander
23.10.2018
18:50:22

Alexey
23.10.2018
18:51:28

Kirill
23.10.2018
18:52:08
Через do-нотацию можно сымитировать "изменяемое" состояние. Но только сымитировать

Alexey
23.10.2018
18:53:11

Alexander
23.10.2018
18:53:31

Alexey
23.10.2018
18:53:59

Kirill
23.10.2018
18:54:14
https://en.wikibooks.org/wiki/Haskell/do_notation
Немного похоже на "пиши на джаве как на питоне" )
(я вот про эту жуть:

Alexey
23.10.2018
18:55:41
я знаю что такое do нотация, я спрашивал про иммитацию мутабельного состояния