View on GitHub

Scala

весна 2022

Домашнее задание №1 (курс Scala, Naumen)

0. Перед тем как приступить к заданиям

Установка Scala

Инструкция для установки Scala находится тут - https://www.scala-lang.org/download/

Cheatsheet

Для первоначального освоения основных ситнаксических конструкций Scala предлагаем воспользоваться cheatsheet (шпаргалка) - https://alvinalexander.com/downloads/scala/Scala-Cheat-Sheet-devdaily.pdf

1. Использование REPL

Для выполнения данного задания вам понадобится использовать REPL.

У скалы есть как минимум 2 варианта REPL:

Используйте REPL и запрограммируйте следующее:

Примечание: Постарайтесь переиспользовать максимальное количество кода (переменных, строковых литералов, функций и т.д). На данном этапе это не является сколько-либо важным для цели выполнения задания, однако позволяет вам лишний раз попрактиковаться. Вообще программирование с помощью REPL подразумевает скорее отсуствие соблюдения принципов чистоты кода (именование переменных, переиспользование одинаковых кусков кода, DRY, YAGNI и прочих) и позволяет в непринужденной и интерактивной манере попрактиковаться в использовании языка или проверить какую-то идею.

Результат предоставить в виде текстового файла всего текста из консоли начиная с запуска REPL. Для этого в репозитории создана папка и пустой файл куда необходимо положить результат - homeworks/homework_1/task_1/console-output.txt

Пример содержимого файла:

C:\Users\doter>scala                                                                                                    Picked up JAVA_TOOL_OPTIONS: -Dorg.lwjgl.opengl.Window.undecorated=true                                                 Welcome to Scala 2.13.1 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_161).                                            Type in expressions for evaluation. Or try :help.                                                                                                                                                                                               scala> val a = "Hello Scala! This is Artem Sokolov"                                                                     a: String = Hello Scala! This is Artem Sokolov                                                                                                                                                                                                  scala> println (a)                                                                                                      Hello Scala! This is Artem Sokolov                                                                                                                                                                                                              scala>               

2. Использование Worksheet

Для целей обучения есть очень удобный способ работы с кодом на Scala - worksheet. Worksheet позволяет иметья интерактивность и наглядность каждой строчки кода, при этом позволяет работать с кодом в рамках целого файла.

Две наиболее удобных альтернативы для этого:

Для выполнения задания необходимо сделать следующее:

Результат предоставить в виде ссылки на ваш сниппет кода, сохраненный в https://scastie.scala-lang.org/ (не забудьте проверить что по сгенерированной ссылке лежит именно то что вы хотите предоставить и в дальнейшем не изменяйте данный сниппет). Сылку записать в файл homeworks/homework_1/task_2/scastie-url.txt

3. Использование SBT

Для первоначального знакомства с SBT предлагаем работать через IntelliJ IDEA.

Инструкция по созданию нового SBT проекта в IDEA - https://docs.scala-lang.org/getting-started/intellij-track/building-a-scala-project-with-intellij-and-sbt.html

Необходимо создать новый проект, проверить что всё работает, запустив его как описано в инструкции (будте готовы к тому что проект прогружается несколько минут, а затем при первоначальном запуске может начать скачивать зависимости из интернета).

Далее необходимо перенести код из п.2 вместо текущего “Hello world” (в тело объекта object Main extends App) и исполнить его с помощью SBT (команда sbt run в консоли).

Результат - после всех манипуляций скопировать папку sbt проекта в папку результатов (homeworks/homework_1/task_3) и закоммитить в git всю папку проекта со всеми файлами.