|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
авторfun sum(x: Number, y: Number) = x + y println(sum(2.2, 2)) Сообщение об ошибке впечатляет :) авторerror: unresolved reference. None of the following candidates is applicable because of receiver type mismatch: @InlineOnly public inline operator fun BigDecimal.plus(other: BigDecimal): BigDecimal defined in kotlin @InlineOnly public inline operator fun BigInteger.plus(other: BigInteger): BigInteger defined in kotlin public operator fun <T> Array<???>.plus(elements: Array<out ???>): Array<???> defined in kotlin.collections public operator fun <T> Array<???>.plus(elements: Collection<???>): Array<???> defined in kotlin.collections public operator fun <T> Array<Number>.plus(element: Number): Array<Number> defined in kotlin.collections public operator fun BooleanArray.plus(element: Boolean): BooleanArray defined in kotlin.collections public operator fun BooleanArray.plus(elements: BooleanArray): BooleanArray defined in kotlin.collections public operator fun BooleanArray.plus(elements: Collection<Boolean>): BooleanArray defined in kotlin.collections public operator fun ByteArray.plus(element: Byte): ByteArray defined in kotlin.collections public operator fun ByteArray.plus(elements: ByteArray): ByteArray defined in kotlin.collections public operator fun ByteArray.plus(elements: Collection<Byte>): ByteArray defined in kotlin.collections @InlineOnly public inline operator fun Char.plus(other: String): String defined in kotlin.text public operator fun CharArray.plus(element: Char): CharArray defined in kotlin.collections public operator fun CharArray.plus(elements: CharArray): CharArray defined in kotlin.collections public operator fun CharArray.plus(elements: Collection<Char>): CharArray defined in kotlin.collections public operator fun DoubleArray.plus(element: Double): DoubleArray defined in kotlin.collections public operator fun DoubleArray.plus(elements: DoubleArray): DoubleArray defined in kotlin.collections public operator fun DoubleArray.plus(elements: Collection<Double>): DoubleArray defined in kotlin.collections public operator fun FloatArray.plus(element: Float): FloatArray defined in kotlin.collections public operator fun FloatArray.plus(elements: FloatArray): FloatArray defined in kotlin.collections public operator fun FloatArray.plus(elements: Collection<Float>): FloatArray defined in kotlin.collections public operator fun IntArray.plus(element: Int): IntArray defined in kotlin.collections public operator fun IntArray.plus(elements: IntArray): IntArray defined in kotlin.collections public operator fun IntArray.plus(elements: Collection<Int>): IntArray defined in kotlin.collections public operator fun LongArray.plus(element: Long): LongArray defined in kotlin.collections public operator fun LongArray.plus(elements: LongArray): LongArray defined in kotlin.collections public operator fun LongArray.plus(elements: Collection<Long>): LongArray defined in kotlin.collections public operator fun ShortArray.plus(element: Short): ShortArray defined in kotlin.collections public operator fun ShortArray.plus(elements: ShortArray): ShortArray defined in kotlin.collections public operator fun ShortArray.plus(elements: Collection<Short>): ShortArray defined in kotlin.collections public operator fun String?.plus(other: Any?): String defined in kotlin public operator fun String?.plus(other: Any?): String defined in kotlin @SinceKotlin @ExperimentalUnsignedTypes @InlineOnly public inline operator fun UByteArray.plus(element: UByte): UByteArray defined in kotlin.collections @SinceKotlin @ExperimentalUnsignedTypes @InlineOnly public inline operator fun UByteArray.plus(elements: UByteArray): UByteArray defined in kotlin.collections @SinceKotlin @ExperimentalUnsignedTypes public operator fun UByteArray.plus(elements: Collection<UByte>): UByteArray defined in kotlin.collections @SinceKotlin @ExperimentalUnsignedTypes @InlineOnly public inline operator fun UIntArray.plus(element: UInt): UIntArray defined in kotlin.collections @SinceKotlin @ExperimentalUnsignedTypes @InlineOnly public inline operator fun UIntArray.plus(elements: UIntArray): UIntArray defined in kotlin.collections @SinceKotlin @ExperimentalUnsignedTypes public operator fun UIntArray.plus(elements: Collection<UInt>): UIntArray defined in kotlin.collections @SinceKotlin @ExperimentalUnsignedTypes @InlineOnly public inline operator fun ULongArray.plus(element: ULong): ULongArray defined in kotlin.collections @SinceKotlin @ExperimentalUnsignedTypes @InlineOnly public inline operator fun ULongArray.plus(elements: ULongArray): ULongArray defined in kotlin.collections @SinceKotlin @ExperimentalUnsignedTypes public operator fun ULongArray.plus(elements: Collection<ULong>): ULongArray defined in kotlin.collections @SinceKotlin @ExperimentalUnsignedTypes @InlineOnly public inline operator fun UShortArray.plus(element: UShort): UShortArray defined in kotlin.collections @SinceKotlin @ExperimentalUnsignedTypes @InlineOnly public inline operator fun UShortArray.plus(elements: UShortArray): UShortArray defined in kotlin.collections @SinceKotlin @ExperimentalUnsignedTypes public operator fun UShortArray.plus(elements: Collection<UShort>): UShortArray defined in kotlin.collections public operator fun <T> Collection<???>.plus(elements: Array<out ???>): List<???> defined in kotlin.collections public operator fun <T> Collection<???>.plus(elements: Iterable<???>): List<???> defined in kotlin.collections public operator fun <T> Collection<???>.plus(elements: Sequence<???>): List<???> defined in kotlin.collections public operator fun <T> Collection<Number>.plus(element: Number): List<Number> defined in kotlin.collections public operator fun <T> Iterable<???>.plus(elements: Array<out ???>): List<???> defined in kotlin.collections public operator fun <T> Iterable<???>.plus(elements: Iterable<???>): List<???> defined in kotlin.collections public operator fun <T> Iterable<???>.plus(elements: Sequence<???>): List<???> defined in kotlin.collections public operator fun <T> Iterable<Number>.plus(element: Number): List<Number> defined in kotlin.collections public operator fun <K, V> Map<out ???, ???>.plus(pairs: Array<out Pair<???, ???>>): Map<???, ???> defined in kotlin.collections public operator fun <K, V> Map<out ???, ???>.plus(pair: Pair<???, ???>): Map<???, ???> defined in kotlin.collections public operator fun <K, V> Map<out ???, ???>.plus(pairs: Iterable<Pair<???, ???>>): Map<???, ???> defined in kotlin.collections public operator fun <K, V> Map<out ???, ???>.plus(map: Map<out ???, ???>): Map<???, ???> defined in kotlin.collections public operator fun <K, V> Map<out ???, ???>.plus(pairs: Sequence<Pair<???, ???>>): Map<???, ???> defined in kotlin.collections public operator fun <T> Set<???>.plus(elements: Array<out ???>): Set<???> defined in kotlin.collections public operator fun <T> Set<???>.plus(elements: Iterable<???>): Set<???> defined in kotlin.collections public operator fun <T> Set<???>.plus(elements: Sequence<???>): Set<???> defined in kotlin.collections public operator fun <T> Set<Number>.plus(element: Number): Set<Number> defined in kotlin.collections public operator fun <T> Sequence<???>.plus(elements: Array<out ???>): Sequence<???> defined in kotlin.sequences public operator fun <T> Sequence<???>.plus(elements: Iterable<???>): Sequence<???> defined in kotlin.sequences public operator fun <T> Sequence<???>.plus(elements: Sequence<???>): Sequence<???> defined in kotlin.sequences public operator fun <T> Sequence<Number>.plus(element: Number): Sequence<Number> defined in kotlin.sequences fun sum(x: Number, y: Number) = x + y ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2020, 10:25 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
private, Выбрось котлин, предатель)) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2020, 10:27 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
А кого он предал? Котлин делает хорошая бригада. Все и так молются на продукты JetBrains. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2020, 10:35 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
mayton, В андроиде три года назад было java 99%. Счас 70% остальное kotlin. Может те ребята и хорошие, в смысле компанейские... Анекдоты знают.... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2020, 10:48 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
Мир - упрощается. Я всегда подозревал разработчиков андроида в некой... хм... поверхностности штоли. Неглубоко копают поцаны. Им што главное? Штоб за 1 спринт насетапить UI. И чтоб передать на бэкенд мышко-клики. Для этого Java не нужна ибо многословная. Entity - длинные выходят. А Kotlin делает тоже самое но код - короче. И программист выбирает короче код ибо лень - двигатель прогресса. Я их не виню даже. Это - эволюционный процес. И даже если есть кейсы где нужно именно Java. (Хотя мне сложно судить там Java - другая. Даже не стековая как sun/oracle а вообще гугловая) то они не играют особого значения для общей статистики популярности Котлин. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2020, 11:57 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
mayton, Ну, мы в кавычках сопротивляемся. А школьники на неделю там Надеюсь погоду не делают. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2020, 12:40 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, и как ты сопротивляешься? В этом форуме пишешь? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2020, 12:49 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
mayton, Почему. У меня проект есть. И знакомые среди писателей есть. Общаемся. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2020, 12:53 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
Ну повезло тебе. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2020, 12:58 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
mayton Ну повезло тебе. Просто постоянно надо писать код. Вон, рядом, на акке не захотел писать цветочный магазин). Его право. Удачи! ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2020, 13:04 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
ну субъективно котел приятнее джавы. он почти такой же приятный как скала. но скалу не форсят как котлы, поэтому она дохнет. а котел форсят - вот он процент и отжирает. имхо, эти вкусняхи рано или поздно должны были появиться в том или ином виде, просто потому что мы живем уже в 2020-м году и джава этому году явно не соответствует. к тому же на джаву ораклы по ходу подзабили. если не хотят в нее вносить очевидных и долгожданных вещей. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2020, 13:07 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
andreykaT, ну почему ? в 14 появились новые фишки ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2020, 13:09 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp mayton Ну повезло тебе. Просто постоянно надо писать код. Вон, рядом, на акке не захотел писать цветочный магазин). Его право. Удачи! Есть 2 смысла писать. Заработать денег. И второе - просто for fun. Возможно fun - Это мой вариант но я еще не придумал себе задачу. А денег я зарабатываю на других технологиях. Которые вообще далеки от UI. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2020, 13:12 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
private, Ну дык правильно проверяет все функции-расширения. ;-) Хотя странно, почему не ругнулось на этапе компиляции. Багрепортнуть надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2020, 13:18 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
mad_nazgul private, Ну дык правильно проверяет все функции-расширения. ;-) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2020, 13:19 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
mayton Есть 2 смысла писать. Заработать денег. И второе - просто for fun. Возможно fun - Это мой вариант но я еще не придумал себе задачу. А денег я зарабатываю на других технологиях. Которые вообще далеки от UI. Kotlin отлично живет со Spring'ом, так что его можно использовать не только в мобилках. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2020, 13:21 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
При выборе Scala/Kotlin я-бы выбрал Scala. Там зарплатная вилка +500+1000$ примерно. Тоесть тебе за ништяк (за знание еще одного языка) уже на разговоре во время офера предложат больше. Да и библиотек под BigData уже написано много на Scala. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2020, 13:31 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
Чот я особого плюса от знания скалы не заметил. Платят в основном за технологии те же биг дата что ты упомянул или мл. А там особой разницы нет имхо на чем откладывают эти фреймворки. После скалы на джаву да только сквозь слезы. Ну и у скалы просто ну очень много нюансов которые постигать можно вечность - у джавы такого нет. Одерский постарался на славу. )) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2020, 13:55 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
Я даже не знаю как происходит собеседование на Scala. Такое количество тем... Его можно растянуть а долгие месяцы. Так-же как и экзамен на знание философии Конфуция для средневекового китайского чиновника. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2020, 13:57 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
mayton Так-же как и экзамен на знание философии Конфуция для средневекового китайского чиновника. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2020, 14:01 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
mayton Я даже не знаю как происходит собеседование на Scala. Такое количество тем... Его можно растянуть а долгие месяцы. Так-же как и экзамен на знание философии Конфуция для средневекового китайского чиновника. да и это круто. хочешь зодротить - какое поле для деятельности ))) исполнилось желание джавистов "хочу неведомую хрень чтоб разбираться можно было вечность" - ннна. на нынешнее место скалиста кстати вообще попал как джавист. пришел поговорили меня как джависта, зовет цто на тот момент уже, так сказать, на финальной стадии переговоров. и говорит - скалу хочешь? я ну э я на ней никогда не писал если вас это не смущает то без проблем. он - а пофиг. вот и весь собес на скалиста. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2020, 14:17 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
andreykaT mayton Я даже не знаю как происходит собеседование на Scala. Такое количество тем... Его можно растянуть а долгие месяцы. Так-же как и экзамен на знание философии Конфуция для средневекового китайского чиновника. да и это круто. хочешь зодротить - какое поле для деятельности ))) исполнилось желание джавистов "хочу неведомую хрень чтоб разбираться можно было вечность" - ннна. на нынешнее место скалиста кстати вообще попал как джавист. пришел поговорили меня как джависта, зовет цто на тот момент уже, так сказать, на финальной стадии переговоров. и говорит - скалу хочешь? я ну э я на ней никогда не писал если вас это не смущает то без проблем. он - а пофиг. вот и весь собес на скалиста. А штукарь бачей накинули сверху? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2020, 14:18 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
mayton andreykaT пропущено... да и это круто. хочешь зодротить - какое поле для деятельности ))) исполнилось желание джавистов "хочу неведомую хрень чтоб разбираться можно было вечность" - ннна. на нынешнее место скалиста кстати вообще попал как джавист. пришел поговорили меня как джависта, зовет цто на тот момент уже, так сказать, на финальной стадии переговоров. и говорит - скалу хочешь? я ну э я на ней никогда не писал если вас это не смущает то без проблем. он - а пофиг. вот и весь собес на скалиста. А штукарь бачей накинули сверху? ну не штукарь. но накинули больше чем просил. не знаю правда, за это ли. да. накинули. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2020, 14:20 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
сейчас висит офер в финку. а там тупо скромнее чем здесь получается. еще и конские налоги и джава. не знаю как отказаться. вначале сдуру согласился. а теперь хз че делать. россия - страна не такая уж и плохая. для скалистов. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2020, 14:24 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
mayton При выборе Scala/Kotlin я-бы выбрал Scala. Там зарплатная вилка +500+1000$ примерно. Тоесть тебе за ништяк (за знание еще одного языка) уже на разговоре во время офера предложат больше. Да и библиотек под BigData уже написано много на Scala. Между Scala и Kotlin я выбрал Kotlin. Т.к. Scala с Java дружит так себе. А вот Kotlin я спокойно использую на текущих Java проектах. А вот Scala так просто в проект не включишь. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2020, 05:41 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
потому что скала имеет более глубокие различия. а котлин - это просто беттер жава. ну и жидбрейнзы постарались в своих продуктах его протолкнуть. куда уж тут одерскому-академику. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2020, 11:19 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
andreykaT потому что скала имеет более глубокие различия. а котлин - это просто беттер жава. ну и жидбрейнзы постарались в своих продуктах его протолкнуть. куда уж тут одерскому-академику. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2020, 11:24 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
andreykaT потому что скала имеет более глубокие различия. а котлин - это просто беттер жава. ну и жидбрейнзы постарались в своих продуктах его протолкнуть. куда уж тут одерскому-академику. Как бы да. Но на Scala было выпущено несколько хайповых проектов. К которым потом кое-как прикрутили совместимость Java. Т.е. средний java-программист не смог в Scala (как например я) А проекты хорошие, разработчиков нужно много, чтобы пилить БП Kotlin-же лихо стартовал, без хайповых проектов. Только за счет огромного количества синтаксического сахара. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2020, 12:04 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
mad_nazgul, David Pollak тоже не смог. Хотя он и автор книг по Scala. Так что ты - не один. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2020, 12:41 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
он стартовал за счет того что его промоутили и продолжают промоутить житбрейны и гугель лично впихивая туда кучу усилий и конечно же бабла. на мое имхо на скале писать как на котлине или даже как на джаве проблем особых нет от слова совсем - плюшки все те же в наличии. другое дело что скала плюс ко всем этим плюхам позволяет (не требует!) писать еще и лютую функциональщину к которой да, средний джавапрограммист не особо будет и готов и благосклонен. так и котлин вроде вполне с этим справляется? просто вот не пишут и все. а может и не надо. я сейчас сижу на проекте где по стечении двух лет тупо решили что скала в целом бизнесу не интересно, нет очевидного и явного бизнеспрофита, а вот головняк есть - и переезжают на джава котлин. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2020, 12:43 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
andreykaT, не одобряю твою манеру коверкать слова. Если ты ненавидишь ДжетБрейн - то так и напиши. Просто в противном случае получается что у тебя есть что-то невысказанное и ты никак его не смог сформулировать. Не держи в себе короче. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2020, 13:10 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
andreykaT я сейчас сижу на проекте где по стечении двух лет тупо решили что скала в целом бизнесу не интересно, нет очевидного и явного бизнеспрофита, а вот головняк есть - и переезжают на джава котлин. Есть проект что-то типа scala-native. Насколько я понял ребята замахнулось на сильный перформанс. Если он взлетит тогда scala будет собирать бинарники по производительности такие-же как clang/rust. Потому-что в стек технологий они вставили тот-же промежуточный компиллятор. Серъезная предъява. Я так ду. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2020, 13:12 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
andreykaT он стартовал за счет того что его промоутили и продолжают промоутить житбрейны и гугель лично впихивая туда кучу усилий и конечно же бабла. JetBrains - да промоутили. С Гуглом немного сложнее. Скажем так они (Гугл) дествовали по принципу - "Не можешь победить, возглавь!" Т.е. это было большей частью иннициатива снизу. Когда еще бета версию Kotlin распробовали мобильщики. andreykaT на мое имхо на скале писать как на котлине или даже как на джаве проблем особых нет от слова совсем - плюшки все те же в наличии. другое дело что скала плюс ко всем этим плюхам позволяет (не требует!) писать еще и лютую функциональщину к которой да, средний джавапрограммист не особо будет и готов и благосклонен. так и котлин вроде вполне с этим справляется? просто вот не пишут и все. а может и не надо. Ну ФП сейчас и в Java внедряют, так что тут Scala первая, но не единственная. andreykaT я сейчас сижу на проекте где по стечении двух лет тупо решили что скала в целом бизнесу не интересно, нет очевидного и явного бизнеспрофита, а вот головняк есть - и переезжают на джава котлин. Главная проблема Scala что интероперабельность с Java ну очень посредственная. Так что иногда нужно плясать с бубном, чтобы подключить библиотеку Java и наоборот. Для примера Spring. Был такой проект Spring Scala но как-то сдулся. В то же время Spring Kotlin наоборот вполне себе живет и процветает. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2020, 15:39 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
спринг со своей парадигмой просто не встроился в скалу. вернее, они это поняли но уже сильно позже и стали рожать какую то реактивщину но сильно после. у скалы свой спринг есть - плей на акке и гуисе. для сферического в вакууме набора задач в общем то тоже самое что и спринг но такой модный реактивный... да он и на джаве есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2020, 17:12 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
mad_nazgul Ну ФП сейчас и в Java внедряют, так что тут Scala первая, но не единственная. Давай я тебе расскажу одну штуку. Java - это очень (!) консервативный язык. У него есть комьюнити (JCP Java Community Process) где обсуждаются все-все возможности развития. Комьюните это строгое. И практически всегда отвергающее всё новое. Потому что слишком много стоит на кону. Много ентерпрайза. И позволить себе такие эксперименты над языком как делает C# это комьюнити не может. И это первое и последнее чудо что они втащили в язык синтаксический сахар для method-reference или как его назвали lambda. Потому что остальное было реализовани библиотеками типа Streams. Насколько я понимаю под это дело подпилили спецификацию виртульной машины и добавили возможность жонглировать ссылками на методы. (я попробую найти эти изменения в спеках где-то между 7 и 8). Объективно реализовать в полной мере ФП в Java будет скорей всего невозможно. Тут будут виновны система типов (mixin атомов и объетов) а также ограничения самой JVM. А также неполноценный механизм генериков который был хорош тем что он вообще был создан. И плох тем что он неполноценный. Не такой как в С++ например. Поэтому ФП в Java - это жалкая пародия на настоящее ФП. По сути это некий компромисс чтоб бородачи на самокатах почувствовали себя "в тренде". Вобщем не обольщайтесь. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2020, 17:13 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
на джаве фп рюшки есть да. и синтаксис с определенными допущениями позволяет писать код.. но... это все не какое то топорное штоле. выглядит как попытка натянуть сову на кактус. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2020, 17:14 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
andreykaT другое дело что скала плюс ко всем этим плюхам позволяет (не требует!) писать еще и лютую функциональщину к которой да, средний джавапрограммист не особо будет и готов и благосклонен. так и котлин вроде вполне с этим справляется? просто вот не пишут и все. а может и не надо. Это и сила и слабость скалы. Проблемы начинаются когда собираются вместе лютый ФП-шник с вчерашним java-прогером. А HR как набирают? Знаешь скалу? -Знаю. Ну на 200К. Начинаешь завтра. В лучшем случае они разобьют друг другу лицо))) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2020, 17:15 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
mad_nazgul Ну ФП сейчас и в Java внедряют, так что тут Scala первая, но не единственная. Не внедряют а пробуют внедрить, успехи так себе и я не думаю что станет лучше. Java никогда не сможет стать ФП если они сохранят backward compatibility Код: java 1. 2. 3. 4. 5.
И да, и нет. Подключить библиотеку в Java проект не составляет никакого труда, если разработчики озаботились созданием API, как спарк и кафка например. Требовать же спринг на скале - это как требовать поддержку ruby on rails для питонистов, наверное конечно можно, но не стоит. Но тут речь о фреймворках а не либах ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2020, 17:20 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
Я вообще уже не понимаю, что в данной дискуссии понимают под ФП ))) В 1990-ом году, в школе, изучал APL. Ну да, нет там циклов for (как в Basic или Pascal которые изучали до этого), вместо циклов и вызова функции в цикле, нужно делать функцию и перемножать ее на матрицу. В целом, нам было глубоко пофиг, что for, что умножить на матрицу - какая разница? Только сейчас (лет 5-ть назад), случайно узнал, что оказывается, я изучал ФП ! Как я был крут ! mayton Java - это очень (!) консервативный язык Что и плохо. Посмотреть на Delphi. Взяли Pascal и не побоялись поменять язык так, что бы он был удобен, прост и хорошо сочитался со средой разработки и новыми (на тот момент) веяниями/технологиями. Программы для COM на Delphi выглядят не чуть не хуже/сложнее, чем на VB. Проперти в Delphi.... Блин, вроде элементарное расширение языка. Почему этого нет в Java? Смотришь на бесконечные простыни get'ов / set'ов и честно говоря, ООП тут же начинает асоциироваться с рядом слов из великого и могучего. mayton И это первое и последнее чудо что они втащили в язык синтаксический сахар для method-reference или как его назвали lambda. ... Насколько я понимаю под это дело подпилили спецификацию виртульной машины и добавили возможность жонглировать ссылками на методы Не уверен. У меня чувство, что для каждой лямбды просто создается свой отдельный внутренний класс. Никто не мешал и раньше делать "лямбды" (callback'и), только нужно было самому класс создавать. Т.е. чисто синтаксический сахар. Полезный, но: 1) нужно было сделать уже давно 2) синтаксис лямбд.... совершенно странный, через одно место и полностью велосипедно-квадратный Ссылок на ф-ции/методы (как в C++) вроде нет. mayton Объективно реализовать в полной мере ФП в Java будет скорей всего невозможно. Ху есть ФП, которое невозможно реализовать? mayton А также неполноценный механизм генериков который был хорош тем что он вообще был создан. И плох тем что он неполноценный. Не такой как в С++ например. IMHO механизм генериков в Java хорош именно своей неполноценностью. Может с точки зрения теории, оно и неполноценно. Но зато с точки практики - просто, понятно и в большинстве случаев работает template в C++ - IMHO это жуть и мрак. mayton Поэтому ФП в Java - это жалкая пародия на настоящее ФП. У меня большое подозрение, что значительная часть людей под "настоящее ФП" понимают всевозможную порнографию из Java Script и прочих скриптовых языков. Начиная от отказа в типизации - а кому нафиг нужна НЕ типизированная Java? и останется ли она Java'ов? и до возможнсоть переписывать вся и все "на лету" и впендюривать свои методы в чужие объекты Только при чем тут ФП, мне не понятно. Та же самая возможность "впендюривать" в Java Script реализована через ФОРТ ядро. Который, вроде, к ФП и не относится. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2020, 17:46 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
ВикипедияА в функциональном языке при вызове функции с одними и теми же аргументами мы всегда получим одинаковый результат: выходные данные зависят только от входных. Это позволяет средам выполнения программ на функциональных языках кешировать результаты функций и вызывать их в порядке, не определяемом алгоритмом и распараллеливать их без каких-либо дополнительных действий со стороны программиста (что обеспечивают функции без побочных эффектов — чистые функции https://ru.wikipedia.org/wiki/Функциональное_программирование Как можно сделать ФП который компилируется в JVM bytecode или "будет собирать бинарники по производительности такие-же как clang/rust" мне совершенно не понятно. Что там останется от ФП ? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2020, 17:53 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
mayton Насколько я понимаю под это дело подпилили спецификацию виртульной машины и добавили возможность жонглировать ссылками на методы. (я попробую найти эти изменения в спеках где-то между 7 и 8). У Шипилёва в одном из старых роликов было про "лямбы врукопашную" на Java 7. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2020, 18:13 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev У меня чувство, что для каждой лямбды просто создается свой отдельный внутренний класс. Никто не мешал и раньше делать "лямбды" (callback'и), только нужно было самому класс создавать. Я кажется дизассемблировал лямбду в восьмерке. Получалось что вроде каждая лямбда компилирует в текущем классе метод в знаком $ в составе имени. Попробую сегодня уточнить для 11-тки. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2020, 18:21 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev Как можно сделать ФП который компилируется в JVM bytecode или "будет собирать бинарники по производительности такие-же как clang/rust" мне совершенно не понятно. Что там останется от ФП ? Вот тут не понял - а что мешает то? ФП это как SQL - декларативное описание программы. В какой очередности что-то дергать или выполнять(в том числе в абсолютно императивном стиле) - все идет на откуп движку БД. Но у тебя же не возникает вопроса - что там остается от SQL? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2020, 18:40 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
забыл ник Leonid Kudryavtsev Как можно сделать ФП который компилируется в JVM bytecode или "будет собирать бинарники по производительности такие-же как clang/rust" мне совершенно не понятно. Что там останется от ФП ? Вот тут не понял - а что мешает то? ФП это как SQL - декларативное описание программы. В какой очередности что-то дергать или выполнять(в том числе в абсолютно императивном стиле) - все идет на откуп движку БД. Но у тебя же не возникает вопроса - что там остается от SQL? ФП-шность и способность кода собираться через LLVM - это два независимых вектора развития. Одно другому не мешает. Вот хаскель вроде тоже использует LLVM и ничего. Я хотел сказать что программисты владеющие Scala могут получить (внезапно!) помимо умного и лаконичного языка еще и язык с высоким перформансом. Если раньше на чаше весов Java-vs-Scala, первая побеждала в бизнес-решениях по скорости кода на выходе. То поесле нативного компиллятора ситуация может быть диаметральной. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2020, 18:45 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev Я вообще уже не понимаю, что в данной дискуссии понимают под ФП ))) В 1990-ом году, в школе, изучал APL. Ну да, нет там циклов for (как в Basic или Pascal которые изучали до этого), вместо циклов и вызова функции в цикле, нужно делать функцию и перемножать ее на матрицу. В целом, нам было глубоко пофиг, что for, что умножить на матрицу - какая разница? Только сейчас (лет 5-ть назад), случайно узнал, что оказывается, я изучал ФП ! Как я был крут ! Тогда ты изучал процедурное программирование а не ФП. maytonХу есть ФП, которое невозможно реализовать? Все можно, вопросв том как получится. Классическое ФП предполагает как минимум immutable - в Хаскеле например это вшито, в java же мутабельность повсеместна и нету способа гарантировать ее отсутствие в отдельно взятом куске кода, это и создает проблемы. Все эти map, flatMap io-монады работают потому что они следуют неким законам Также в джаве геморно с нулами и эксепшенами ну и система типов слабовата, поэтому не внося кардинальные изменения в язык ее не сделаешь ФП-шной, да и не надо если честно. IMHO механизм генериков в Java хорош именно своей неполноценностью. Может с точки зрения теории, оно и неполноценно. Но зато с точки практики - просто, понятно и в большинстве случаев работает Реально тебе нравится Map<Key<? super String>, Container<A extends Comparable<A>> понятным и очевидным? а как в рантайме отличить List<String> от List<Int>? template в C++ - IMHO это жуть и мрак. Возможно, но есть же и другие языки? Та же Scala просто уделывает по дженерикам У меня большое подозрение, что значительная часть людей под "настоящее ФП" понимают всевозможную порнографию из Java Script и прочих скриптовых языков. Ну это их проблемы. Вообще не сталкивался конкретно с таким, но что ФП понимают неправильно - это да Начиная от отказа в типизации - а кому нафиг нужна НЕ типизированная Java? и останется ли она Java'ов? Хотя есть примеры нетипизирванного ФП, все же на мой взгляд оно реально рулит только при сильной типизации и до возможнсоть переписывать вся и все "на лету" и впендюривать свои методы в чужие объекты Это может быть полезно. Как вариант решения expression problem. Но соглашусь с основным поинтом - ФП у каждого свое в голове, но нормальные материалы начинают появляться и я думаю что в скором времени "все договорятся". Просто говоря о ФП мешают много всего в кучу, хотя сама идея очень простая - программа описывается как "рецепт" где прописываются зависимости по данным(что от чего зависит) и способы получить из одних данных другими посредством чистых функций. Все описания сайд эффектов выносятся в lazy трансформации, и они выполняются непосредственно в рантайме. Таким образом ФП программа это некое синтаксическое дерево, которое подается на вход интерпретатору, в идеальном случае в методе main - которое и делает всю черную работу ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2020, 18:57 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
mayton Я хотел сказать что программисты владеющие Scala могут получить (внезапно!) помимо умного и лаконичного языка еще и язык с высоким перформансом. Могут и не получить, поскольку функциональный язык может генерировать больше "мусора", мемоизация может потребовать больше памяти, а без мемоизации - может не быть и выигрыша по скорости.Если раньше на чаше весов Java-vs-Scala, первая побеждала в бизнес-решениях по скорости кода на выходе. То поесле нативного компиллятора ситуация может быть диаметральной.А что понимается под "нативным компилятором"??? Если AOT/JIT, то оба они работают с байт-кодом и не зависят от механизма генерации этого байт-кода. Если речь о прямой трансляции входного языка в байт-код (без промежуточной генерации java-текста), то как-то не наблюдается таковой. Наверное, создание эффективного компилятора с языка высокого уровня - не самая тривиальная задача? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2020, 19:00 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
В С++ темплейты позволяют инжектить примитивные типы. int/double/long. В Java - только объекты-обёртки каждый из которых имеет офигенный футпринт. Концептуально вроде цель достигнута. Генерик работает но реализация конечно говно. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2020, 19:02 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
mayton Я хотел сказать что программисты владеющие Scala могут получить (внезапно!) помимо умного и лаконичного языка еще и язык с высоким перформансом. Если раньше на чаше весов Java-vs-Scala, первая побеждала в бизнес-решениях по скорости кода на выходе. То поесле нативного компиллятора ситуация может быть диаметральной. Ну я ради интереса года два назад писал бенчмарки и никакой разницы между скалой и java не заметил по перфомансу, все в пределах погрешности. Насчет того что при native станет лучше - я бы сильно не надеялся. Во-первых там есть ряд ограничений, во-вторых таже java заоптимизирована по самое небалуй и местами сравнимо с C++, так что... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2020, 19:02 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
забыл ник mayton Я хотел сказать что программисты владеющие Scala могут получить (внезапно!) помимо умного и лаконичного языка еще и язык с высоким перформансом. Если раньше на чаше весов Java-vs-Scala, первая побеждала в бизнес-решениях по скорости кода на выходе. То поесле нативного компиллятора ситуация может быть диаметральной. Ну я ради интереса года два назад писал бенчмарки и никакой разницы между скалой и java не заметил по перфомансу, все в пределах погрешности. Насчет того что при native станет лучше - я бы сильно не надеялся. Во-первых там есть ряд ограничений, во-вторых таже java заоптимизирована по самое небалуй и местами сравнимо с C++, так что... Я в топиках карточного рей-трейсера обязательно подниму эту тему. Просто мой технический долг там лежит. Scala- реализация глючит. Тоесть не рендерит картинку правильно. И это меня обескураживает. Так-бы я уже сделал native benchmark ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2020, 19:05 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
mayton В С++ темплейты позволяют инжектить примитивные типы. int/double/long. В Java - только объекты-обёртки каждый из которых имеет офигенный футпринт Точно-точно офигенный? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2020, 19:24 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
Давай посмотрим. Нужен тест. И дамп памяти. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2020, 19:48 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
Лично мне тест не нужен - у меня просто нет проблем из-за "офигенного футпринта" (по русски - "больших накладных расходов"). Но мне не очень нравится, когда делаются весьма прямолинейные утверждения, которые весьма неочевидны, если "учесть все известные факторы". P.S. Тот же CardRayTracer сильно ускоряется на Java 11 в сравнении с Java 8. Байт-код, понятное дело, от Java 8. Но Java 11 научили автовекторизации и JIT сделал то, что лично я не просто не умею, а никогда не буду уметь в обозримом будущем. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2020, 21:46 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
На сколько процентов ускоряется? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2020, 23:21 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
mayton andreykaT, не одобряю твою манеру коверкать слова. Если ты ненавидишь ДжетБрейн - то так и напиши. Просто в противном случае получается что у тебя есть что-то невысказанное и ты никак его не смог сформулировать. Не держи в себе короче. да не, они норм парни. и котлин их норм. идешку их я использую уже лет 5-6. жаль скале так не повезло с промоутом как котлину. мне кажется, скала все-же имеет гораздо более серьезный потенциал чем эта джава с плюшками. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2020, 01:54 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
mayton Leonid Kudryavtsev У меня чувство, что для каждой лямбды просто создается свой отдельный внутренний класс. Никто не мешал и раньше делать "лямбды" (callback'и), только нужно было самому класс создавать. Я кажется дизассемблировал лямбду в восьмерке. Получалось что вроде каждая лямбда компилирует в текущем классе метод в знаком $ в составе имени. Попробую сегодня уточнить для 11-тки. По поводу лямбд. Вот выхлоп стандартного javap-дизассемблера (фрагмент) Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90.
Исходник где предположтельно 4 лямбды. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Вобщем лямбда реализована как приватный статический метод. Имя - как композит из имени класса и специального счетчика с долларом. Видимо для предотвращения clashing names. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2020, 13:49 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
Basil A. Sidorov, про вопрос перформанса я помню. Надо актуализировать этот чортов Card-Raytracer. Руки не доходят. Там надо сделать чуть больше действий. Я если уж доберусь до него то и сделаю чуть больше. Хотя-бы табличку на титульной странице поправить надо, ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2020, 13:50 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
mayton#22066461, thanks ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2020, 14:33 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
Скажите а в котлине нормальный патернматчинг есть? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2020, 21:10 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
mayton На сколько процентов ускоряется? Тогда это было Java8 vs Java10 - минус, примерно, 25% времени (31-34 секунды против 25-28 секунд). Тогдашнего сорца не нашёл, взял код Andrew Kensler . Сейчас ничего не менял, только добавил примитивный отсчёт времени. Получил и увеличение времени и отсутствие разницы: по 38-39 секунд на актуальных OpenJDK 1.8.0_232-b09 и 11.0.5+10. Проц у меня с тех пор, вроде, не менялся. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2020, 23:22 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
Basil A. Sidorov, если мы поднимем на 25% - то мы перегоним clang c AVX-оптимизацией над которой работал Зяма. Кстате это самая быстрая имплементация этого бенчмарка. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2020, 23:35 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
mayton Basil A. Sidorov, если мы поднимем на 25% - то мы перегоним clang c AVX-оптимизацией "Плюс двадцать пять" относилось к Java 8 vs Java 10 на моём компьютере три года назад. Зачем приплетать сюда "clang с AVX-оптимизацией", если ни тогда ни сейчас с моей стороны не было ни одного слова про другие реализации??? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2020, 14:07 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
Дак у меня статистика как раз по восьмёрке. И она опубликована. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2020, 17:09 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
mayton забыл ник пропущено... Вот тут не понял - а что мешает то? ФП это как SQL - декларативное описание программы. В какой очередности что-то дергать или выполнять(в том числе в абсолютно императивном стиле) - все идет на откуп движку БД. Но у тебя же не возникает вопроса - что там остается от SQL? ФП-шность и способность кода собираться через LLVM - это два независимых вектора развития. Одно другому не мешает. Вот хаскель вроде тоже использует LLVM и ничего. Я хотел сказать что программисты владеющие Scala могут получить (внезапно!) помимо умного и лаконичного языка еще и язык с высоким перформансом. Если раньше на чаше весов Java-vs-Scala, первая побеждала в бизнес-решениях по скорости кода на выходе. То поесле нативного компиллятора ситуация может быть диаметральной. А ну вот домашняя страничка этого поделия https://scala-native.readthedocs.io/en/v0.3.9-docs/ ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2020, 23:57 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
andreykaT да не, они норм парни. и котлин их норм. идешку их я использую уже лет 5-6. жаль скале так не повезло с промоутом как котлину. мне кажется, скала все-же имеет гораздо более серьезный потенциал чем эта джава с плюшками. Scala не повезло не с промотуерами, а немного не правильной стратегией развития. Т.к. они (Scala) опираются на JVM, то все java-программисты ожидали, что проблем м/у Java и Scala не будет. Но это оказалось немного не так. Для тог же Spark пришлось писать отдельное реализация API для Java, которое еще и отставало от API для Scala на ранних этапах. Потом пересмотрели приоритеты и сказали, что основное API будет для Java. А так Scala мощный язык, но его мощь его и сгубила. "Будь проще и люди к тебе потянуться" :-) ДжетБрейнс фишку просекли и сделали "проще". Результат не заставил себя долго ждать. Как минимум на мобилках. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2020, 06:48 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
andreykaT Скажите а в котлине нормальный патернматчинг есть? Нет и А. Бреслав в своих докладах по Котлин от него отбивается руками и ногами. Типа это нафиг никому не нужно, а делать очень сложно и вообще не хотим. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2020, 06:58 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
Как я уже говорил Java/Kotlin по своему понимают ФП и тащут в свои языки жалкую карикатуру. Они переварили паттерн матчинг и поняли это как усложнённый switch/case. Вот (примерно) так выглядит паттерн матчинг в Haskell. Сопоставление аргумента функции с известным промежуточным результатом свёрток. Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2020, 19:22 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
mayton Как я уже говорил Java/Kotlin по своему понимают ФП и тащут в свои языки жалкую карикатуру. Они переварили паттерн матчинг и поняли это как усложнённый switch/case. Вот (примерно) так выглядит паттерн матчинг в Haskell. Сопоставление аргумента функции с известным промежуточным результатом свёрток. Код: plaintext 1. 2. 3.
Нормально понимают в скале паттерн матчинг. Отсутвие няшного синтаксиса вызвано рядом причин, основная из которых совместимость с Java и JVM ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2020, 20:01 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
Ну я говорю вобщем про бесконечные компромиссы. Вот втащили в Kotlin нечто. Это нечто - имеет характерный bracer-like синтаксис. Можно назвать это pattern-matching-ом. А можно просто назвать это синтаксическим сахаром над обычным if-else. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2020, 20:18 |
|
Сложить два числа в Kotlin :)
|
|||
---|---|---|---|
#18+
mayton Ну я говорю вобщем про бесконечные компромиссы. Вот втащили в Kotlin нечто. Это нечто - имеет характерный bracer-like синтаксис. Можно назвать это pattern-matching-ом. А можно просто назвать это синтаксическим сахаром над обычным if-else. Так в Котлин и не собираются внедрят pattern-matching. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 05:41 |
|
|
start [/forum/topic.php?all=1&fid=59&tid=2120928]: |
0ms |
get settings: |
22ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
65ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
1272ms |
get tp. blocked users: |
1ms |
others: | 320ms |
total: | 1713ms |
0 / 0 |