@kotlin_lang

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

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

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
Вот и я, слушая ребят из JB, сделал примерно такой же вывод. Однако, стоит чуть капнуть я сразу вижу что-то типа: "так было раньше, это отстой, в Kotlin можно вот так..." и идёт куча всяких → и прочего.
Котлин продвигается как инструмент для работяг уставших от бойлерплейта Java (что бы удобно было IDEA пилить). Паттерн-матчинг/каррирование/тайп класссы - не для продакшена.

А то уже курсы "Functional programming on Scala" нашёл.
Норм, сам сейчас их смотрю http://rutracker.org/forum/viewtopic.php?t=4442274 (не врубился как на курсере смотреть бесплатно)

Стас
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
Суть вопроса: я не вдупляю парадигму функционального программирования. Стоит ли бросать изучание котлина и заполнять ЭТОТ пробел?
Советую пролистать https://www.ozon.ru/context/detail/id/139640075/ А Антон Архипов советует http://book.realworldhaskell.org/ (пруф http://blog.golodnyj.ru/2017/02/130-art-of-programming-hr.html)

Стас
27.02.2017
08:05:40
Советую пролистать https://www.ozon.ru/context/detail/id/139640075/ А Антон Архипов советует http://book.realworldhaskell.org/ (пруф http://blog.golodnyj.ru/2017/02/130-art-of-programming-hr.html)
Спасибо за материал, полистаю. Главное, не начать стричь яков. Задача-то всё-таки вкатиться в Андроид на Котлине.

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

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
чтобы kotlin.coroutines.experimental можно было юзать
И если этого не будет то в релизной версии 1.1 ...

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
Хм, риальне.

походу придется 1.2 ждать
Почему? В целях совместимости пакет experimental оставят ещё на какое-то время.

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

Михаил
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
Эскейп параметров лямбд
эт как в свифте $0 $1 .. ?

Михаил
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

Берешь класс. Помечаешь его sealed и можешь внутри него перечислить классы которые от него наследуются
а вот это нарушает принцип, название которого я, естественно, не помню, который гласит, что родитель о потомках знать не должон

Михаил
28.02.2017
03:25:32
Слышал что реализация родителя должна быть максимально скрыта от потомков

Andrew
28.02.2017
03:32:33
Слышал что реализация родителя должна быть максимально скрыта от потомков
тоесть то, что родитель знает, кто его потомки - это ок для тебя? хотя я тут с позиции ОО подхода сужу

Михаил
28.02.2017
03:36:29
А как разница?

Он никак не может с ними работать

Страница 57 из 982