Бързи връзки
- "Демонстрация"
- Документи
Какво е нематод?
Nematode е нотация на математически израз, базирана на масив (по-нататък в текста: нематода/и, израз/и).
Създадена е като междинен тип математически изрази, възможно най-близки до езика (JavaScript като първи експеримент), за да получим възможността да съберем цялото многообразие на екосистемата от математически библиотеки под един знаменател
Каква е целта на това?
Понякога трябва да променим математическото ядро в движение, но да оставим всички разлики в API извън нашето внимание. Процесът на рефакторинг е бавен, досаден и предразположен към грешки.
С Nematode можем
- използвайте цял куп библиотеки и ги конфигурирайте „под един покрив“
- добавете нови методи, оператори, константи и изберете именуване за тях
- калибрирайте точността на изчисленията в движение
- промяна на вече декларирани реализации на метод
- замяна на математически константи с по-подходящи стойности
Какво е Nemathode.js?
Nemathode.js е JavaScript библиотека за оценка на нематоди. Позволява ви да комбинирате произволен брой библиотеки, като оставяте формата на изразите непроменен (агрегатор на решения в един формат)
Примери за използване
Пример за конфигурация (чист js)
Можете да видите този и още други примери за конфигурации тук
mathConstants
Буквално, математически константи
функции
Набор от записи с реализации
toInputType
Изглежда прекомерно, но не всеки използва чиста js функционалност. Има набор от библиотеки, където междинният тип не е число, например: bignumber.js, decimal.js и т.н. (на нашия уебсайт имаме набор от конфигурации за най-популярните библиотеки). Така че можете да конфигурирате манипулатор за въвеждане за тях като
toOutputType
Противоположно на toInputType. Вижте пример
двоични оператори
Нека да разгледаме един от примерите
Това е конфигурация за оператор, която се състои от две (досега) полета: приоритет, реализация (същото като във функциите).
Api — стандарт
Апи — с любов ❤️
Вдъхновен от
- stackoverflow post за някаква задача с подобен синтаксис
- няколко задачи в codewars (не можах да го намеря за съжаление)
- библиотека math.js и нейният механизъм за оценка
Бъдеще
- Пълно TS покритие
- Унарни операнди (все още обмислям, имам нужда от вашето мнение)
- Оценка на аргументите на функцията
- Преодоляване на ограниченията с различни типове връщане: число, булево
Няколко последни думи
Ако имате грешки, предложения, желания, моля, уведомете ме. Радвам се да чуя вашите отзиви. Използвайте главния website и repo, за да получите информация за това решение (синтаксис и самата JS lib)
Приятно кодиране или нематодиране)