diff --git a/README.md b/README.md index be692ef..400d61e 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [Условия домашних заданий](https://www.kgeorgiy.info/courses/paradigms/homeworks.html) -## Домашнее задание 9. Линейная алгебра на Clojure [![Clojure Linear Tests](https://git.fym.su/code.java/paradigms/actions/workflows/clj-linear.yml/badge.svg)](https://git.fym.su/code.java/paradigms/actions) +## Домашнее задание 9. Линейная алгебра на Clojure [![Clojure Linear Tests](https://git.codejava.tech/codejava/paradigms/actions/workflows/clj-linear.yml/badge.svg)](https://git.codejava.tech/codejava/paradigms/actions) Модификации * *Базовая* ✅ @@ -11,66 +11,7 @@ * Запускать с указанием сложности (`easy` или `hard`) и модификации. -## Исходный код к лекциям по Clojure - -Документация - * [Clojure Reference](https://clojure.org/reference/documentation) - * [Clojure Cheat Sheet](https://clojure.org/api/cheatsheet) - -Запуск Clojure - * Консоль: [Windows](clojure/RunClojure.cmd), [*nix](clojure/RunClojure.sh) - * Интерактивный: `RunClojure` - * С выражением: `RunClojure --eval "<выражение>"` - * Скрипт: `RunClojure <файл скрипта>` - * Справка: `RunClojure --help` - * IDE - * IntelliJ Idea: [плагин Cursive](https://cursive-ide.com/userguide/) - * VSCode: [плагин Calva](https://calva.io/) - -[Скрипт со всеми примерами](clojure/examples.clj) - -Лекция 1. Функции - * [Введение](clojure/examples/1_1_intro.clj) - * [Функции](clojure/examples/1_2_functions.clj) - * [Списки](clojure/examples/1_3_lists.clj) - * [Вектора](clojure/examples/1_4_vectors.clj) - * [Функции высшего порядка](clojure/examples/1_5_functions-2.clj) - -Лекция 2. Внешний мир - * [Ввод-вывод](clojure/examples/2_1_io.clj) - * [Разбор и гомоиконность](clojure/examples/2_2_read.clj) - * [Порядки вычислений](clojure/examples/2_3_evaluation-orders.clj) - * [Потоки](clojure/examples/2_4_streams.clj) - * [Отображения и множества](clojure/examples/2_5_maps.clj) - - -## Тестовое задание на Clojure [![Clojure Exmaple Tests](https://git.fym.su/code.java/paradigms/actions/workflows/clj-example.yml/badge.svg)](https://git.fym.su/code.java/paradigms/actions) - -Это задание предназначено для проверки правильности настройки Clojure. -Вам надо убедиться, что оно успешно проверяется на вашем компьютере. - -Для запуска тестов используются скрипты -[TestClojure.cmd](clojure/TestClojure.cmd) и [TestClojure.sh](clojure/TestClojure.sh) - * Репозиторий должен быть скачан целиком. - * Скрипты должны находиться в каталоге `clojure` - (их нельзя перемещать, но можно вызывать из других каталогов). - * Тестируемое решение должно находиться в текущем каталоге. - * В качестве аргументов командной строки указывается - полное имя класса теста, сложность и модификация, - например, `cljtest.example.ExampleTest hard base`. - -Модификации - * *base* ✅ - * Код решения `clojure-solutions/example.clj` в - [репозитории решений](https://www.kgeorgiy.info/git/geo/paradigms-2026-students/). - Если всё настроено верно, то вам достаточно сделать - `git pull source main` в своём репозитории, - чтобы получить решение. - * [Исходный код тестов](clojure/cljtest/example/ExampleTest.java) - * Запускать с аргументом `hard` или `easy`. - - -## Домашнее задание 8. Обработка ошибок на JavaScript [![JavaScript Prefix Tests](https://git.fym.su/code.java/paradigms/actions/workflows/js-prefix.yml/badge.svg)](https://git.fym.su/code.java/paradigms/actions) +## Домашнее задание 8. Обработка ошибок на JavaScript [![JavaScript Prefix Tests](https://git.codejava.tech/codejava/paradigms/actions/workflows/js-prefix.yml/badge.svg)](https://git.fym.su/code.java/paradigms/actions) Модификации * *Base* ✅ @@ -112,7 +53,7 @@ `(atan12 1256)` примерно равно 1.57, `(atan12 841 540)` примерно равно 1. -## Домашнее задание 7. Объектные выражения на JavaScript [![JavaScript Objective Expressions Tests](https://git.fym.su/code.java/paradigms/actions/workflows/js-objective-expressions.yml/badge.svg)](https://git.fym.su/code.java/paradigms/actions) +## Домашнее задание 7. Объектные выражения на JavaScript [![JavaScript Objective Expressions Tests](https://git.codejava.tech/codejava/paradigms/actions/workflows/js-objective-expressions.yml/badge.svg)](https://git.codejava.tech/codejava/paradigms/actions) Модификации * *Base* ✅ @@ -148,7 +89,7 @@ * `Wrap` (`wrap`) – функции [wrap(_x_, _min_, _max_)](https://en.wikipedia.org/wiki/Wrapping_(graphics)), `3 5 8 wrap` равно 6. -## Домашнее задание 6. Функциональные выражения на JavaScript [![JavaScript Expressions Tests](https://git.fym.su/code.java/paradigms/actions/workflows/js-expressions.yml/badge.svg)](https://git.fym.su/code.java/paradigms/actions) +## Домашнее задание 6. Функциональные выражения на JavaScript [![JavaScript Expressions Tests](https://git.codejava.tech/codejava/paradigms/actions/workflows/js-expressions.yml/badge.svg)](https://git.codejava.tech/codejava/paradigms/actions) Модификации * *Базовая* ✅ @@ -195,76 +136,7 @@ * `sin` – синус, `3.14159265 sin` примерно равно 0; * `cos` – косинус, `3.14159265 cos` примерно равно -1. -## Исходный код к лекциям по JavaScript - -[Скрипт с примерами](javascript/examples.js) - -Запуск примеров - * [В браузере](javascript/RunJS.html) - * Из консоли - * [на Java](javascript/RunJS.java): [RunJS.cmd](javascript/RunJS.cmd), [RunJS.sh](javascript/RunJS.sh) - * [на node.js](javascript/RunJS.node.js): `node RunJS.node.js` - -Лекция 1. Типы и функции - * [Типы](javascript/examples/1_1_types.js) - * [Массивы](javascript/examples/1_2_arrays.js). - Обратите внимание, у массивов есть много - [других методов](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array). - * [Функции](javascript/examples/1_3_functions.js) - * [Функции высшего порядка](javascript/examples/1_4_functions-hi.js). - Обратите внимание на реализацию функции `mCurry`. - Обратите внимание, что функции `array.map` и - `array.reduce` (аналог `leftFold`) входят в стандартную библиотеку. - * [Пример: вектора и матрицы](javascript/examples/1_5_vectors.js). - - -## Тестовое задание на JavaScript [![JavaScript Example Tests](https://git.fym.su/code.java/paradigms/actions/workflows/js-example.yml/badge.svg)](https://git.fym.su/code.java/paradigms/actions) - -Это задание предназначено для проверки правильности настройки -[JavaScript](https://ecma-international.org/publications-and-standards/standards/ecma-262/). -Вам надо проверить, что оно успешно проверяется на вашем компьютере. - -Модификации - * *base* ✅ - * Код решения `javascript-solutions/example.js` в - [репозитории решений](https://www.kgeorgiy.info/git/geo/paradigms-2026-students/). - Если всё настроено верно, то вам достаточно сделать `git pull --rebase` в своём репозитории, - чтобы получить решение. - * [Исходный код тестов](javascript/jstest/example/ExampleTest.java) - * Запускать с аргументом `hard` или `easy`. - -Запуск тестов - * Для запуска тестов используется [GraalJS](https://github.com/graalvm/graaljs) - (часть проекта [GraalVM](https://www.graalvm.org/)), но вам не требуется их скачивать. - * Для запуска тестов рекомендуется использовать скрипты - [TestJS.cmd](javascript/TestJS.cmd) и [TestJS.sh](javascript/TestJS.sh) - * Репозиторий должен быть скачан целиком. - * Скрипты должны находиться в каталоге `javascript` (их нельзя перемещать, но можно вызывать из других каталогов). - * В качестве аргументов командной строки указывается полное имя класса теста и модификация, - например `jstest.example.ExampleTest hard base`. - * Для самостоятельного запуска из консоли необходимо использовать командную строку вида: - `java -ea --module-path=/graal --class-path jstest.example.ExampleTest {hard|easy} `, где - * `-ea` – включение проверок времени исполнения; - * `--module-path=/graal` путь к модулям Graal (здесь и далее `` путь к каталогу `javascript` этого репозитория); - * `--class-path ` путь к откомпилированным тестам; - * `{hard|easy}` указание тестируемой сложности; - * `` указание тестируемой модификации. - * При запуске из IDE, обычно не требуется указывать `--class-path`, так как он формируется автоматически. - Остальные опции всё равно необходимо указать. - * Troubleshooting - * `Error occurred during initialization of boot layer java.lang.module.FindException: Module org.graalvm.truffle not found, required by jdk.internal.vm.compiler` - – неверно указан `--module-path`; - * `Graal.js not found` – неверно указаны `--module-path` - * `Error: Could not find or load main class jstest.example.ExampleTest` - – неверно указан `--class-path`; - * `Exception in thread "main" java.lang.AssertionError: You should enable assertions by running 'java -ea jstest.functional.FunctionalExpressionTest'` - – не указана опция `-ea`; - * `Exception in thread "main" jstest.EngineException: Script 'example.js' not found` - – в текущем каталоге отсутствует решение (`example.js`) - - - -## Домашнее задание 5. Вычисления в различных типах [![Generic Tests](https://git.fym.su/code.java/paradigms/actions/workflows/generic.yml/badge.svg)](https://git.fym.su/code.java/paradigms/actions) +## Домашнее задание 5. Вычисления в различных типах [![Generic Tests](https://git.codejava.tech/codejava/paradigms/actions/workflows/generic.yml/badge.svg)](https://git.codejava.tech/codejava/paradigms/actions) Модификации * *Base* ✅ @@ -320,7 +192,7 @@ * `f` – вычисления в `float` без проверки на переполнение. -## Домашнее задание 4. Очереди [![Queues Tests](https://git.fym.su/code.java/paradigms/actions/workflows/queues.yml/badge.svg)](https://git.fym.su/code.java/paradigms/actions) +## Домашнее задание 4. Очереди [![Queues Tests](https://git.codejava.tech/codejava/paradigms/actions/workflows/queues.yml/badge.svg)](https://git.codejava.tech/codejava/paradigms/actions) Модификации * *Базовая* ✅ @@ -355,7 +227,7 @@ * Взаимный порядок элементов должен сохраняться * Дублирования кода быть не должно -## Домашнее задание 3. Очередь на массиве [![ArrayQueue Tests](https://git.fym.su/code.java/paradigms/actions/workflows/array-queue.yml/badge.svg)](https://git.fym.su/code.java/paradigms/actions) +## Домашнее задание 3. Очередь на массиве [![ArrayQueue Tests](https://git.codejava.tech/codejava/paradigms/actions/workflows/array-queue.yml/badge.svg)](https://git.codejava.tech/codejava/paradigms/actions) Модификации * *Базовая* ✅ @@ -389,7 +261,7 @@ * Индексы отсчитываются с головы очереди. * Если искомого элемента нет, методы должны возвращать `-1`. -## Домашнее задание 2. Бинарный поиск [![BinarySearch Tests](https://git.fym.su/code.java/paradigms/actions/workflows/search.yml/badge.svg)](https://git.fym.su/code.java/paradigms/actions) +## Домашнее задание 2. Бинарный поиск [![BinarySearch Tests](https://git.codejava.tech/codejava/paradigms/actions/workflows/search.yml/badge.svg)](https://git.codejava.tech/codejava/paradigms/actions) Модификации * *Базовая* ✅ @@ -423,7 +295,7 @@ * Класс должен иметь имя `BinarySearch3233` -## Домашнее задание 1. Обработка ошибок [![Exception Tests](https://git.fym.su/code.java/paradigms/actions/workflows/exception.yml/badge.svg)](https://git.fym.su/code.java/paradigms/actions) +## Домашнее задание 1. Обработка ошибок [![Exception Tests](https://git.codejava.tech/codejava/paradigms/actions/workflows/exception.yml/badge.svg)](https://git.codejava.tech/codejava/paradigms/actions) Модификации * *Base* ✅