Size: a a a

Scala Learning & Education: Ask for Review & Noob questions

2021 November 26

Oℕ

Oleg ℕizhnik in Scala Learning & Education: Ask for Review & Noob questions
но комбинации обычно неупорядоченные имеются в виду
источник

Oℕ

Oleg ℕizhnik in Scala Learning & Education: Ask for Review & Noob questions
а упорядоченные - перестановки
источник

ΛВ

Λнтон Войцишевский... in Scala Learning & Education: Ask for Review & Noob questions
https://scastie.scala-lang.org/CMGVmbZJT6qfHcsIdD4ukA
ну на всякий случай вот с повторениями для чемоданного замка
источник

RS

Rick Sanchez in Scala Learning & Education: Ask for Review & Noob questions
спасибо! это для саморазвития, попадались подобные задачки пару раз
источник

Oℕ

Oleg ℕizhnik in Scala Learning & Education: Ask for Review & Noob questions
ну и тогда последний гвоздь перестановки с повторениями https://scastie.scala-lang.org/XG2sPQ06Ru6EQKRC0WWE8Q
источник

RS

Rick Sanchez in Scala Learning & Education: Ask for Review & Noob questions
тут уже коты, но все равно классно, лаконично)
источник

Oℕ

Oleg ℕizhnik in Scala Learning & Education: Ask for Review & Noob questions
без котов так будет https://scastie.scala-lang.org/OGXXqvIDSDCYPgbieHrNfQ
источник

RS

Rick Sanchez in Scala Learning & Education: Ask for Review & Noob questions
спасибо!
источник

S

Simon in Scala Learning & Education: Ask for Review & Noob questions
Господа, вам не кажется, что вы слегка переусложняете?
https://scastie.scala-lang.org/WzDDchuMSFOCQBrjYWHvUg
источник

Oℕ

Oleg ℕizhnik in Scala Learning & Education: Ask for Review & Noob questions
ну да вот как раз решение без вложенных форов, спасибо
источник

(

(λx.Me) Panda in Scala Learning & Education: Ask for Review & Noob questions
очень годный туториал https://nrinaudo.github.io/dsl-tagless/#1
источник

K

Ketzalcoatl in Scala Learning & Education: Ask for Review & Noob questions
Народ, нужна помощь!
Прохожу курс на Степике от Тинькофф и там есть такая задачка по теме pattern matching
Регулярки я сделал. Решение для второго набора input тоже, но не могу понять, как мне сделать так, чтобы отрабатывал первый пример.
Мой код по ссылке
https://scastie.scala-lang.org/cayVOpg3QnmaAmlc4eCv8w
источник

K

Ketzalcoatl in Scala Learning & Education: Ask for Review & Noob questions
Понимаю, что 2 и 3 case не правильные, но как сделать так, чтобы из списка две строки попали в одну строку, хз
источник

N

Nikolai in Scala Learning & Education: Ask for Review & Noob questions
Надо объединить 2 и 3 кейсы https://scastie.scala-lang.org/IKXEzU1jQlCVdnbwGGsAJg
источник

K

Ketzalcoatl in Scala Learning & Education: Ask for Review & Noob questions
🥲 спасибо
Правильно я понял, что мы указываем, что во втором кейсе мы через регулярки прогоняем первые два элемента списка, а на остальные забиваем, так?
источник

N

Nikolai in Scala Learning & Education: Ask for Review & Noob questions
Да, всё правильно. В этот кейс попадут листы у которых есть минимум два элемента, такие что они матчатся соответствующими выражениями. Кстати, сравните вашу регулярку для емэйла с предложенной в задании
источник

K

Ketzalcoatl in Scala Learning & Education: Ask for Review & Noob questions
Задание прошло проверку с моими регулярками, и да, знаю, что они отличаются от рекомендованных, но делал я их сам)
А можете ещё уточнить, попадут только два элемента, которые идут подряд или как?
Ещё в решенных вариантах нашел вот такое:
case NamePattern(name) :: EmailPattern(email) :: => ...
Это получается мы "откусываем" первые два элемента от списка и остальное выбрасываем, так?
источник

N

Nikolai in Scala Learning & Education: Ask for Review & Noob questions
Да, элементы должны идти подряд и первый элемент списка должен соответствовать name, а второй email. Если между ними будет какой-то другой, который не матчится паттерном email, то этот case не пройдёт.
case pattern1 :: pattern2 :: _ => матчит то же самое что и case List(pattern1, pattern2, _*) =>. :: - это конструктор, который добавляет новый элемент к существующему листу. Например elem1 :: elem2 :: elem3 :: Nil эквивалентно List(elem1, elem2, elem3)
источник

N

Nikolai in Scala Learning & Education: Ask for Review & Noob questions
И так как :: ожидает что справа будет лист, мы можем переписать кейс в такую форму https://scastie.scala-lang.org/nU9xbb7dTLiIEgzNPkdWTw
источник

K

Ketzalcoatl in Scala Learning & Education: Ask for Review & Noob questions
Понял, спасибо за такое подробное объяснение
источник