Size: a a a

Scala User Group

2020 June 17

AS

Andrey Sugak in Scala User Group
Влад
Здравствуйте. Может кто объяснить, как тут сортируется список слов по последней букве?
s.sorted((a:String, b:String) => a.charAt(a.length - 1) - b.charAt(b.length - 1))
Что не понятно?
источник

OO

Oleksandr Olgashko in Scala User Group
Влад
Здравствуйте. Может кто объяснить, как тут сортируется список слов по последней букве?
s.sorted((a:String, b:String) => a.charAt(a.length - 1) - b.charAt(b.length - 1))
sorted ожидает некую функцию сравнения, и вот она так передается
источник

В

Влад in Scala User Group
если sorted получает положительное значение, то меняет местами?
источник

AS

Andrey Sugak in Scala User Group
Влад
если sorted получает положительное значение, то меняет местами?
/** Returns an integer whose sign communicates how x compares to y.
 *
 * The result sign has the following meaning:
 *
 *  - negative if x < y
 *  - positive if x > y
 *  - zero otherwise (if x == y)
 */
def compare(x: T, y: T): Int
источник

λ

λoλegΥch in Scala User Group
sortBy используй и забудь про sorted
источник

DS

Denis Semikin in Scala User Group
Можете так же использовать sortBy:

val a = List("bbb", "aa", "zzz", "bbb", "ttt")
println(a.sortBy(_.takeRight(1)))
источник

λ

λoλi in Scala User Group
Через 4.5 часа буду стримить рефакторинг the Guilded Rose c Nicolas Rinaudo https://www.twitch.tv/scalalove
источник

λ

λoλi in Scala User Group
будем обсуждать как обкладывать все тестами и как бороться с вложенными ифами
источник

M

Mi in Scala User Group
здравствуйте, мне иногда требуется  писать код на scala, и встретился с таким сниппетом:
resources.foldLeft(Client(..)) {
 case (client, MyResType(v)) => ...
 case (client, resource) => ...
}

Вопрос в следующем: как называется вот такая вот конструкция/приём/фича скалы когда можно использовать паттерн матчинг сразу вместо бинарного оператора (нагуглить не смог подобного ибо даже не понимаю что гуглить), интересуют еще нюансы такой конструкции
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
Mi
здравствуйте, мне иногда требуется  писать код на scala, и встретился с таким сниппетом:
resources.foldLeft(Client(..)) {
 case (client, MyResType(v)) => ...
 case (client, resource) => ...
}

Вопрос в следующем: как называется вот такая вот конструкция/приём/фича скалы когда можно использовать паттерн матчинг сразу вместо бинарного оператора (нагуглить не смог подобного ибо даже не понимаю что гуглить), интересуют еще нюансы такой конструкции
это такой способ задать PartialFunction или обычную Function
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
вы можете это положить в переменную например вот так
val f: (Int, String) => Boolean = {
case (3, "a") => true
case (2, "b") => false
case (a, b) => b.length == a
}
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
а foldLeft во второй аргумент принимает как раз Function
источник

M

Mi in Scala User Group
а если не указать дефолтный результат, то что будет с результатом? Просто  у меня что-то сломалось когда я не указал, но так и не понял что
источник

GP

Grigory Pomadchin in Scala User Group
Mi
а если не указать дефолтный результат, то что будет с результатом? Просто  у меня что-то сломалось когда я не указал, но так и не понял что
сломается если не экзостив
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
Наличие дефолтного результата и отличает частичную функцию (вот та PartialFunction) от обычной
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
Обычная функция тотальная — она должна уметь возвращать значение для любого входа
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
некоторые комбинаторы (foldLeft — комбинатор) умеют принимать и частичные функции
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
val pf: PartialFunction[(Int, String), Boolean] = {
case (3, "a") => true
case (2, "b") => false
}
источник

NV

Nikita Vilunov in Scala User Group
Λнтон Войцишевский
некоторые комбинаторы (foldLeft — комбинатор) умеют принимать и частичные функции
Частичная — подтип полной
источник

AS

Andrey Sugak in Scala User Group
Λнтон Войцишевский
некоторые комбинаторы (foldLeft — комбинатор) умеют принимать и частичные функции
Любой комбинатор умеет принимать частичные функции, потому что PartialFunction[A, B] extends A => B.
источник