SC Scala  ·  25 вопросов  ·  ~70 мин  ·  ⏱ Таймер 10:00  ·  Средний  · 

Cats и функциональные абстракции

Раздел «Cats и функциональные абстракции» соединяет небольшие фрагменты Scala с ревью и рабочими сценариями. Проверяются: Функтор, Аппликативный контекст, Монада, Накопление ошибок через `Validated`, Безопасность данных.

Отвечено: 0 из 25
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На 25 вопросов отведено 70 минут. В каждом задании верен только один вариант. Фрагменты относятся к Scala 3; внешняя библиотека названа прямо в коде или условии.
Вопрос 1 из 25
Какая характеристика конструкции «Функтор» подтверждается показанным фрагментом?
ScalaФунктор: чтение фрагмента
import cats.syntax.functor.*
val r = Option(2).map(_ * 3)
println(r)
Вопрос 2 из 25
Для темы «Функтор» что здесь требует отдельного теста или компиляционного примера?
ScalaФунктор: изменившийся контекст
// Дополнительный контекст: Дочернее волокно продолжило работу после выхода из родительской области.
import cats.syntax.functor.*
val r = Option(2).map(_ * 3)
println(r)
Вопрос 3 из 25
При исправлении темы «Функтор» нужно устранить причину, а не замаскировать симптом. Какое изменение подходит лучше?
ScalaФунктор: решение на ревью
import cats.syntax.functor.*
val r = Option(2).map(_ * 3)
println(r)
// На ревью требуется устранить причину дефекта, не скрывая её приведением типа или значением по умолчанию.
Вопрос 4 из 25
В контракте темы «Функтор» после изменения окружения команда пересматривает контракт. Какой вариант корректен?
map(id)=id
Вопрос 5 из 25
При проверке темы «Функтор» какая проверка связывает принятую правку с реальной границей решения?
Вопрос 6 из 25
В теме «Аппликативный контекст» проследите типы и порядок вычисления. Какой вывод выдерживает такую проверку?
ScalaАппликативный контекст: чтение фрагмента
import cats.syntax.apply.*
val a = Option(2)
val b = Option(3)
val r = (a, b).mapN(_ + _)
Вопрос 7 из 25
Что может пойти не так именно из-за механизма «Аппликативный контекст»?
ScalaАппликативный контекст: изменившийся контекст
// Дополнительный контекст: Вычисление отменили после получения ресурса, но до публикации результата.
import cats.syntax.apply.*
val a = Option(2)
val b = Option(3)
val r = (a, b).mapN(_ + _)
Вопрос 8 из 25
Какое изменение чинит причину проблемы в теме «Аппликативный контекст»?
ScalaАппликативный контекст: решение на ревью
import cats.syntax.apply.*
val a = Option(2)
val b = Option(3)
val r = (a, b).mapN(_ + _)
// На ревью требуется устранить причину дефекта, не скрывая её приведением типа или значением по умолчанию.
Вопрос 9 из 25
В контракте темы «Аппликативный контекст» какая формулировка учитывает и семантику конструкции, и реальный риск?
map(g\circ f)=map(g)\circ map(f)
Вопрос 10 из 25
При проверке темы «Аппликативный контекст» какой итог ревью содержит и действие, и способ заметить возврат риска?
Вопрос 11 из 25
В теме «Монада» какое утверждение не переносит в Scala правило из другого языка или другой конструкции?
ScalaМонада: чтение фрагмента
import cats.syntax.flatMap.*
import cats.syntax.functor.*
val r = Option(10).flatMap(n => Option.when(n > 0)(n / 2))
Вопрос 12 из 25
Вычисление отменили после получения ресурса, но до публикации результата. Какое ограничение темы «Монада» становится существенным?
ScalaМонада: изменившийся контекст
// Дополнительный контекст: Операцию повторили после ошибки, когда внешний эффект мог уже произойти.
import cats.syntax.flatMap.*
import cats.syntax.functor.*
val r = Option(10).flatMap(n => Option.when(n > 0)(n / 2))
Вопрос 13 из 25
При исправлении темы «Монада» какое решение уменьшает вероятность повторения обнаруженного дефекта?
ScalaМонада: решение на ревью
import cats.syntax.flatMap.*
import cats.syntax.functor.*
val r = Option(10).flatMap(n => Option.when(n > 0)(n / 2))
// На ревью требуется устранить причину дефекта, не скрывая её приведением типа или значением по умолчанию.
Вопрос 14 из 25
В контракте темы «Монада» новый сценарий не отменяет основное правило, но делает заметной его границу. Какой ответ это отражает?
Вопрос 15 из 25
При проверке темы «Монада» что нужно оставить после исправления, кроме комментария в исходном файле?
Вопрос 16 из 25
В теме «Накопление ошибок через `Validated`» что здесь обеспечивается самим механизмом, а не удачным входом?
ScalaНакопление ошибок через `Validated`: чтение фрагмента
import cats.data.ValidatedNel
type V[A] = ValidatedNel[String, A]
Вопрос 17 из 25
Для темы «Накопление ошибок через `Validated`» обычный пример прошёл, затем изменились условия использования. Какой риск нужно проверить первым?
ScalaНакопление ошибок через `Validated`: изменившийся контекст
// Дополнительный контекст: Операцию повторили после ошибки, когда внешний эффект мог уже произойти.
import cats.data.ValidatedNel
type V[A] = ValidatedNel[String, A]
Вопрос 18 из 25
При исправлении темы «Накопление ошибок через `Validated`» команда сравнивает несколько правок. Какая из них делает допущение явным и проверяемым?
ScalaНакопление ошибок через `Validated`: решение на ревью
import cats.data.ValidatedNel
type V[A] = ValidatedNel[String, A]
// На ревью требуется устранить причину дефекта, не скрывая её приведением типа или значением по умолчанию.
Вопрос 19 из 25
В контракте темы «Накопление ошибок через `Validated`» вычисление отменили после получения ресурса, но до публикации результата. Какой анализ пригоден для публичного API?
Вопрос 20 из 25
Какой критерий готовности по теме «Накопление ошибок через `Validated`» действительно поймает повтор прежнего дефекта?
Вопрос 21 из 25
В теме «Безопасность данных» как сформулировать семантику примера так, чтобы она сохранилась после переименования переменных?
ScalaБезопасность данных: чтение фрагмента
val names = List(" Ada ", "Grace").map(_.trim).filter(_.nonEmpty)
println(names)
Вопрос 22 из 25
Где у конструкции «Безопасность данных» проявится скрытая граница?
Вопрос 23 из 25
При исправлении темы «Безопасность данных» какой вариант не переносит проблему в вызывающий код?
ScalaБезопасность данных: решение на ревью
val names = List(" Ada ", "Grace").map(_.trim).filter(_.nonEmpty)
println(names)
// На ревью требуется устранить причину дефекта, не скрывая её приведением типа или значением по умолчанию.
Вопрос 24 из 25
В контракте темы «Безопасность данных» какой вариант не теряет существенную часть технической картины?
Вопрос 25 из 25
При проверке темы «Безопасность данных» какую гарантию важно превратить в повторяемую проверку?

Ответьте на все 25 вопросов, чтобы получить результат

🔗 Встроить тест на свой сайт (iframe) ▼

Скопируйте код и вставьте в любое место на вашем сайте:

Также доступна прямая ссылка на embed-страницу