update README.md
Some checks failed
Array Queue Test / test (push) Successful in 26s
Clojure Example Test / test (push) Successful in 8s
Clojure Linear Test / test (push) Successful in 14s
Generic Test / test (push) Has been cancelled
Exception Test / test (push) Has been cancelled
JavaScript Expressions Test / test (push) Has been cancelled
JavaScript Objective Expressions Test / test (push) Has been cancelled
JavaScript Prefix Test / test (push) Has been cancelled
Queues Test / test (push) Has been cancelled
Binary Search Test / test (push) Has been cancelled
JavaScript Example Test / test (push) Successful in 10s
Some checks failed
Array Queue Test / test (push) Successful in 26s
Clojure Example Test / test (push) Successful in 8s
Clojure Linear Test / test (push) Successful in 14s
Generic Test / test (push) Has been cancelled
Exception Test / test (push) Has been cancelled
JavaScript Expressions Test / test (push) Has been cancelled
JavaScript Objective Expressions Test / test (push) Has been cancelled
JavaScript Prefix Test / test (push) Has been cancelled
Queues Test / test (push) Has been cancelled
Binary Search Test / test (push) Has been cancelled
JavaScript Example Test / test (push) Successful in 10s
This commit is contained in:
146
README.md
146
README.md
@@ -2,7 +2,7 @@
|
||||
|
||||
[Условия домашних заданий](https://www.kgeorgiy.info/courses/paradigms/homeworks.html)
|
||||
|
||||
## Домашнее задание 9. Линейная алгебра на Clojure [](https://git.fym.su/code.java/paradigms/actions)
|
||||
## Домашнее задание 9. Линейная алгебра на Clojure [](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 [](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 [](https://git.fym.su/code.java/paradigms/actions)
|
||||
## Домашнее задание 8. Обработка ошибок на JavaScript [](https://git.fym.su/code.java/paradigms/actions)
|
||||
|
||||
Модификации
|
||||
* *Base* ✅
|
||||
@@ -112,7 +53,7 @@
|
||||
`(atan12 1256)` примерно равно 1.57,
|
||||
`(atan12 841 540)` примерно равно 1.
|
||||
|
||||
## Домашнее задание 7. Объектные выражения на JavaScript [](https://git.fym.su/code.java/paradigms/actions)
|
||||
## Домашнее задание 7. Объектные выражения на JavaScript [](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 [](https://git.fym.su/code.java/paradigms/actions)
|
||||
## Домашнее задание 6. Функциональные выражения на JavaScript [](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 [](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=<js>/graal --class-path <js> jstest.example.ExampleTest {hard|easy} <variant>`, где
|
||||
* `-ea` – включение проверок времени исполнения;
|
||||
* `--module-path=<js>/graal` путь к модулям Graal (здесь и далее `<js>` путь к каталогу `javascript` этого репозитория);
|
||||
* `--class-path <js>` путь к откомпилированным тестам;
|
||||
* `{hard|easy}` указание тестируемой сложности;
|
||||
* `<variant>` указание тестируемой модификации.
|
||||
* При запуске из 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. Вычисления в различных типах [](https://git.fym.su/code.java/paradigms/actions)
|
||||
## Домашнее задание 5. Вычисления в различных типах [](https://git.codejava.tech/codejava/paradigms/actions)
|
||||
|
||||
Модификации
|
||||
* *Base* ✅
|
||||
@@ -320,7 +192,7 @@
|
||||
* `f` – вычисления в `float` без проверки на переполнение.
|
||||
|
||||
|
||||
## Домашнее задание 4. Очереди [](https://git.fym.su/code.java/paradigms/actions)
|
||||
## Домашнее задание 4. Очереди [](https://git.codejava.tech/codejava/paradigms/actions)
|
||||
|
||||
Модификации
|
||||
* *Базовая* ✅
|
||||
@@ -355,7 +227,7 @@
|
||||
* Взаимный порядок элементов должен сохраняться
|
||||
* Дублирования кода быть не должно
|
||||
|
||||
## Домашнее задание 3. Очередь на массиве [](https://git.fym.su/code.java/paradigms/actions)
|
||||
## Домашнее задание 3. Очередь на массиве [](https://git.codejava.tech/codejava/paradigms/actions)
|
||||
|
||||
Модификации
|
||||
* *Базовая* ✅
|
||||
@@ -389,7 +261,7 @@
|
||||
* Индексы отсчитываются с головы очереди.
|
||||
* Если искомого элемента нет, методы должны возвращать `-1`.
|
||||
|
||||
## Домашнее задание 2. Бинарный поиск [](https://git.fym.su/code.java/paradigms/actions)
|
||||
## Домашнее задание 2. Бинарный поиск [](https://git.codejava.tech/codejava/paradigms/actions)
|
||||
|
||||
Модификации
|
||||
* *Базовая* ✅
|
||||
@@ -423,7 +295,7 @@
|
||||
* Класс должен иметь имя `BinarySearch3233`
|
||||
|
||||
|
||||
## Домашнее задание 1. Обработка ошибок [](https://git.fym.su/code.java/paradigms/actions)
|
||||
## Домашнее задание 1. Обработка ошибок [](https://git.codejava.tech/codejava/paradigms/actions)
|
||||
|
||||
Модификации
|
||||
* *Base* ✅
|
||||
|
||||
Reference in New Issue
Block a user