
Boris
27.02.2017
07:54:15
Наличие функций еще не делает язык функциональным

Стас
27.02.2017
07:54:24
Суть вопроса: я не вдупляю парадигму функционального программирования. Стоит ли бросать изучание котлина и заполнять ЭТОТ пробел?

Boris
27.02.2017
07:54:35
Бросать не стоит

Google

Стас
27.02.2017
07:55:23
А то уже курсы "Functional programming on Scala" нашёл.

Andrew
27.02.2017
07:55:38

Igor
27.02.2017
07:55:41

Стас
27.02.2017
07:56:46

The mirror
27.02.2017
07:57:15
курсы бесплатные на курсере
платный только сертификат, если захотите корочку
по скале

Igor
27.02.2017
07:58:20

Andrew
27.02.2017
07:59:08

The mirror
27.02.2017
07:59:17
там есть дедлайны по заданиям
по скале, насколько я помню, был дедлайн на каждую неделю
но можно заранее все сделать

Google

Andrew
27.02.2017
08:00:03

The mirror
27.02.2017
08:00:30
и весь твой прогресс сохраняется между сессиями, то есть если не успел в одной сессии, то можно перекатиться на другую с сохранением прогресса

Boris
27.02.2017
08:01:33
Котлин как раз хорош тем что его просто берёшь и используешь, не надо морочиться с парадигмами

Andrew
27.02.2017
08:02:25

Стас
27.02.2017
08:02:53

Igor
27.02.2017
08:03:05

Стас
27.02.2017
08:05:40

Boris
27.02.2017
08:05:47

Andrew
27.02.2017
08:06:34
заюзать интересный язык, которому нет применения в твоей повседневности?

Boris
27.02.2017
08:06:37

Andrew
27.02.2017
08:08:34
тогда всё ок :-)
правд теперь переживаю за результат, тестовые примеры из задания верно решает, а если скормить в 4 раза больше данных то падает, но тут скорее я накосячил с рекурсией

The mirror
27.02.2017
08:17:45
переполнение стека?
https://kotlinlang.org/docs/reference/functions.html
tail recursive functions

Boris
27.02.2017
08:21:31
не любую рекурсию можно сделать хвостовой

Andrew
27.02.2017
11:08:01
переполнение стека?
не, с конечными условиями, рекурсия у меня и так по сути хвостовая, просто затраханый был, и походу косякнул с условивем посылка на доразбивку/трансформацию/возврат
лол, а задача оказывается была в том, чтобы сделать преобразования по шаблону, а не быстрый расчёт хэша по указанным правилам) профессиональная деформация, однако

Алексей
27.02.2017
17:13:14
Всем привет. Собрал в одном месте все чаты для программистов - @Chats_Developers, пользуйтесь на здоровье. Ваш чат у нас тоже есть, не удаляйте это сообщение.

Sergey
27.02.2017
19:35:00
я так понимаю в марте будет релиз 1.1?

Google

Руслан
27.02.2017
19:35:34
Вполне возможно ;)

Sergey
27.02.2017
19:36:26
ну вроде говорили в Q1 будет релиз

Igor
27.02.2017
19:38:26
И коррутины будут по ключику?

Sergey
27.02.2017
19:40:10
так не будет же по ключику
все через либы
там только 1 ключевое слово вроде добавили для функций

Igor
27.02.2017
19:41:07
А зачем он сейчас требует добавлять в gradle?
kotlin {
experimental {
coroutines "enable"
}
}

Sergey
27.02.2017
19:42:51
чтобы kotlin.coroutines.experimental можно было юзать

Igor
27.02.2017
19:47:42

Sergey
27.02.2017
19:49:04
в релизной версии они переедут обратно без experimental, если ниче не поменялось

Boris
27.02.2017
19:50:28
Корутины вроде в 1.1 будут эксперементальной фичей

Sergey
27.02.2017
19:51:48
>So, meet one of the bigger features of Kotlin 1.1: coroutines.

Sergey
27.02.2017
19:53:03
а есть где анонс что они останутся эксперементальными?

Quantum Harmonizer
27.02.2017
19:58:44

Boris
27.02.2017
19:59:59
Ну да, самая крутая эксперементальная фича релиза ?

Sergey
27.02.2017
20:00:19
киллер фича

Igor
27.02.2017
20:04:14
https://discuss.kotlinlang.org/t/experimental-status-of-coroutines-in-1-1-and-related-compatibility-concerns/2236

Sergey
27.02.2017
20:12:04
походу придется 1.2 ждать

Quantum Harmonizer
27.02.2017
20:53:22
Хм, риальне.

Google

Roman
27.02.2017
23:36:32
Да все верно. На всякий случай проясню, дело в том, что дизайн корутин достатно нов, а фича достаточно сложна и главное многогранна. Мы до сих пор не можем поверить нашему счастью что все так удачно сошлось под дизайну, что относительно небольшое изменение в языке покрывает все возможные случаи испольщования. Поэтому мы на всякий случай оставляем ее под экспериментальным флагом. Скорее всего языковых правил менять не придется, но вот API теоретически может чуть-чуть измениться. Чтобы не терять обратной совместимости, принято вот такое решение о статусе этой фичи

Andrew
28.02.2017
02:49:14

Михаил
28.02.2017
02:58:08
Эскейп параметров лямбд
Несколько эксьенш функций
))

Admin
ERROR: S client not available

Михаил
28.02.2017
02:58:56
Алиасы

Andrew
28.02.2017
02:59:02

Михаил
28.02.2017
02:59:23
_ , _ ->

Andrew
28.02.2017
03:01:07
>Subclasses of sealed classes in the same file
Это зачем вообще?

Михаил
28.02.2017
03:02:14
Как зачем

Andrew
28.02.2017
03:02:26
чтобы было?

Михаил
28.02.2017
03:02:29
Удобнее
Хотя я чет не сильно силед классами пользуюсь

Andrew
28.02.2017
03:03:14
он же sealed => не должен наследоваться

Михаил
28.02.2017
03:03:23
Эм
Силед классы нужны как раз для того чтобы ограничить колиество наследников

Andrew
28.02.2017
03:04:26
я пользуюсь, когда конкретная реализация чего-то, наследование может привести к неожиданным результатам, если нужно расширять - значит надо рефакторить)

Михаил
28.02.2017
03:05:22
Удобно просто если эти классы наследники маленькие ,держать их вместе с родителем

Andrew
28.02.2017
03:05:54
это в принципе понятие sealed превращает в пыль

Google

Михаил
28.02.2017
03:08:05
Вон в джаве локальные классы тут упоминались
Силед классы в котлине куда профитнее)

Andrew
28.02.2017
03:10:22
наверное я не так понимаю sealed в контексте котлина

Михаил
28.02.2017
03:11:23
А как понимаешь?
Берешь класс. Помечаешь его sealed и можешь внутри него перечислить классы которые от него наследуются
А для неуказанных классов он будет final

Andrew
28.02.2017
03:15:41
sealed - пометка на классе который не должен наследоваться, тоесть это пипец конкретная, ревлизовавшая уже всё что можно реализация, которую либо нет смысла наследовать, либо опасно, тоесть у меня напрмер есть в ведре два почти одинаковых адаптера, я делаю им общую базу и вычищаю всё лишнее из них, наследовать в них тупо нечего и я ставлю пометку на каждый, что оно sealed, всё, я даже случайно не расширю реализацию и буду вынужден делать наследование от ближайшей базы, что несколько защищает меня, или очередного кодилу от непоняток в конкретном месте проекта
да в жаве это final
Прост у меня деформация похоже от этого https://msdn.microsoft.com/ru-ru/library/88c54tsw.aspx


Михаил
28.02.2017
03:25:32
Слышал что реализация родителя должна быть максимально скрыта от потомков
sealed - пометка на классе который не должен наследоваться, тоесть это пипец конкретная, ревлизовавшая уже всё что можно реализация, которую либо нет смысла наследовать, либо опасно, тоесть у меня напрмер есть в ведре два почти одинаковых адаптера, я делаю им общую базу и вычищаю всё лишнее из них, наследовать в них тупо нечего и я ставлю пометку на каждый, что оно sealed, всё, я даже случайно не расширю реализацию и буду вынужден делать наследование от ближайшей базы, что несколько защищает меня, или очередного кодилу от непоняток в конкретном месте проекта
В котлине это не то немного. И в котлине в принципе все классы final по умолчанию

Andrew
28.02.2017
03:32:33

Михаил
28.02.2017
03:36:29
А как разница?
Он никак не может с ними работать