Size: a a a

Kotlin Community

2021 January 07

ХХ

Халид Хушмадов... in Kotlin Community
Alexander Nozik
Это так называемые scope functions. Они позволяют выполнять не одну операцию, а целый блок в нужном окружении
Понятно спасибо
источник

ХХ

Халид Хушмадов... in Kotlin Community
Alexander Levin
Ну, т.е. именно в контексте nullalble цепочек, let иногда просто больше вещей позволяет. Например если у вас обычная функция (не экстешн), то с помощью nullable call не получится вызвать. И тогда можно применять nullable let:

someNullableDouble?.let { sqrt(it) }
И вам
источник

L

LevT in Kotlin Community
LevT
Я вот решил проходить его параллельно в скале-котлине,
но крайне полезным счёл бы полиглот ресурс на основе этого учебника
Вот, автор пишет разумное, что на динамических языках кроме map-reduce смысла нет извращаться, но есть FP языки с которыми без разницы вообще
    "At the level of detail needed in this book, the differences between languages such as ML, OCaml, Haskell, F#, Scala, Swift, Elm, or PureScript do not play a significant role."

Интересно, автор пропустил Kotlin (и С# кстати) потому что "нельзя всё объять", или котлин реально менее гож, чем Swift?
источник

L

LevT in Kotlin Community
Если так, то чем именно?
источник

AN

Alexander Nozik in Kotlin Community
LevT
Вот, автор пишет разумное, что на динамических языках кроме map-reduce смысла нет извращаться, но есть FP языки с которыми без разницы вообще
    "At the level of detail needed in this book, the differences between languages such as ML, OCaml, Haskell, F#, Scala, Swift, Elm, or PureScript do not play a significant role."

Интересно, автор пропустил Kotlin (и С# кстати) потому что "нельзя всё объять", или котлин реально менее гож, чем Swift?
Что такое "гож"? Кому? Когда? Для чего? Утверждения типа того, что на динамических языках нельзя писать ничего отнесите пожалуйста людям, которые работают на Пайтоне и PHP
источник

L

LevT in Kotlin Community
Alexander Nozik
Что такое "гож"? Кому? Когда? Для чего? Утверждения типа того, что на динамических языках нельзя писать ничего отнесите пожалуйста людям, которые работают на Пайтоне и PHP
Вот полная цитата, думал без неё понятно

It is possible to apply the FP paradigm while writing code in any programming language. However, some languages lack certain features that make FP techniques much easier to use in practice. For example, in a language such as Python or Ruby, one can productively use only a limited number of FP idioms, such as the map/reduce operations. More advanced FP constructions are impractical in these languages because the required code becomes too hard to read and to write without errors, which negates the advantages of rigorous reasoning about functional programs.

Some programming languages, such as Haskell and OCaml, were designed specifically for advanced use in the FP paradigm. Other languages, such as ML, F#, Scala, Swift, Elm, and PureScript, have different design goals but still support enough FP features to be considered FP languages. This book uses Scala, but the same constructions may be implemented in other FP languages in a simi- lar way. At the level of detail needed in this book, the differences between languages such as ML, OCaml, Haskell, F#, Scala, Swift, Elm, or PureScript do not play a significant role.

А мой вопрос в силе
источник

AN

Alexander Nozik in Kotlin Community
LevT
Вот полная цитата, думал без неё понятно

It is possible to apply the FP paradigm while writing code in any programming language. However, some languages lack certain features that make FP techniques much easier to use in practice. For example, in a language such as Python or Ruby, one can productively use only a limited number of FP idioms, such as the map/reduce operations. More advanced FP constructions are impractical in these languages because the required code becomes too hard to read and to write without errors, which negates the advantages of rigorous reasoning about functional programs.

Some programming languages, such as Haskell and OCaml, were designed specifically for advanced use in the FP paradigm. Other languages, such as ML, F#, Scala, Swift, Elm, and PureScript, have different design goals but still support enough FP features to be considered FP languages. This book uses Scala, but the same constructions may be implemented in other FP languages in a simi- lar way. At the level of detail needed in this book, the differences between languages such as ML, OCaml, Haskell, F#, Scala, Swift, Elm, or PureScript do not play a significant role.

А мой вопрос в силе
FP - это очень широкое понятие, которое каждый определяет по своему. На котлин не удобно писать в хаскель-стайл. Потому что язык совсем другой. Но есть вполне себе ФП-котлин-стайл.
источник

L

LevT in Kotlin Community
Alexander Nozik
FP - это очень широкое понятие, которое каждый определяет по своему. На котлин не удобно писать в хаскель-стайл. Потому что язык совсем другой. Но есть вполне себе ФП-котлин-стайл.
Меня зацепило упоминание Swift как годного. Я его совсем не знаю, но вижу повсеместные его упоминания вместе с котлиным
источник

AN

Alexander Nozik in Kotlin Community
LevT
Меня зацепило упоминание Swift как годного. Я его совсем не знаю, но вижу повсеместные его упоминания вместе с котлиным
Свифт почти ничем не отличается от котлин идейно. Но он появился в публичном пространстве чуть раньше. Возможно дело в этом. Посмотрите год выпуска книги
источник

AM

Andrew Mikhaylov in Kotlin Community
LevT
Вот полная цитата, думал без неё понятно

It is possible to apply the FP paradigm while writing code in any programming language. However, some languages lack certain features that make FP techniques much easier to use in practice. For example, in a language such as Python or Ruby, one can productively use only a limited number of FP idioms, such as the map/reduce operations. More advanced FP constructions are impractical in these languages because the required code becomes too hard to read and to write without errors, which negates the advantages of rigorous reasoning about functional programs.

Some programming languages, such as Haskell and OCaml, were designed specifically for advanced use in the FP paradigm. Other languages, such as ML, F#, Scala, Swift, Elm, and PureScript, have different design goals but still support enough FP features to be considered FP languages. This book uses Scala, but the same constructions may be implemented in other FP languages in a simi- lar way. At the level of detail needed in this book, the differences between languages such as ML, OCaml, Haskell, F#, Scala, Swift, Elm, or PureScript do not play a significant role.

А мой вопрос в силе
Речь не о динамической типизации, а именно о языковых фичах. К примеру, ограничение пайтона с лямбдами в одну строку сильно мешает писать в таком стиле -- там в ходу list comprehensions, а не вот это всё. О руби ничего не могу сказать.
На C# можно писать так, но незачем, так как есть F#. Почему не упомянут котлин -- не знаю. Может, автор с ним не знакомился, может, имеет какие-то предубеждения, может по тому же принципе считает, что раз есть скала, делать то же самое на котлине смысла нет. Вроде наличие Arrow и коммьюнити вокруг него подтверждает обратное.
источник

L

LevT in Kotlin Community
Она ещё не выпущена)  Процесс никак не завершится
источник

AM

Andrew Mikhaylov in Kotlin Community
Alexander Nozik
Свифт почти ничем не отличается от котлин идейно. Но он появился в публичном пространстве чуть раньше. Возможно дело в этом. Посмотрите год выпуска книги
Идейно нет, а вот экстеншны саифтовые и селф-типы намного больше свободы дают для обсуждаемого способа писать код.
источник

AN

Alexander Nozik in Kotlin Community
LevT
Она ещё не выпущена)  Процесс никак не завершится
Ну может он макофил
источник

AM

Andrew Mikhaylov in Kotlin Community
Alexander Nozik
Ну может он макофил
Это вы за одно упоминание свифта автору такую бирочку выдали?)
источник

AN

Alexander Nozik in Kotlin Community
Andrew Mikhaylov
Это вы за одно упоминание свифта автору такую бирочку выдали?)
Нет, это была неудачная шутка. Просто свифт популярен в мак-разработке. И если человек сидит только в мак экосистеме, ему свифт может быть сильно виднее, чем котлин.
источник

L

LevT in Kotlin Community
Andrew Mikhaylov
Идейно нет, а вот экстеншны саифтовые и селф-типы намного больше свободы дают для обсуждаемого способа писать код.
Спасибо, именно такого рода ответ хотел
источник

AN

Alexander Nozik in Kotlin Community
Andrew Mikhaylov
Идейно нет, а вот экстеншны саифтовые и селф-типы намного больше свободы дают для обсуждаемого способа писать код.
Это про экстеншен интерфейсы?
источник

AM

Andrew Mikhaylov in Kotlin Community
Alexander Nozik
Это про экстеншен интерфейсы?
Я не уверен, что вы называете экстеншн интерфейсами, но в свифте один вид экстеншнов.
источник

AN

Alexander Nozik in Kotlin Community
Andrew Mikhaylov
Я не уверен, что вы называете экстеншн интерфейсами, но в свифте один вид экстеншнов.
Ну то, что в котлин обсуждается как экстеншен интерфейсы.
источник

АГ

Алексей Гладков... in Kotlin Community
Я пишу и на Котлин и на Свифт и да в Свифте есть некоторые более удобные штуки  (сходу не вспомню, но несколько раз ловил ощущение, что нехватает этого в котлине), но Котлин в сумме все равно выигрывает, то есть обратное ощущение возникает чаще
источник