Бързи връзки

  1. "Демонстрация"
  2. Документи

Какво е нематод?

Nematode е нотация на математически израз, базирана на масив (по-нататък в текста: нематода/и, израз/и).

Създадена е като междинен тип математически изрази, възможно най-близки до езика (JavaScript като първи експеримент), за да получим възможността да съберем цялото многообразие на екосистемата от математически библиотеки под един знаменател

Каква е целта на това?

Понякога трябва да променим математическото ядро ​​в движение, но да оставим всички разлики в API извън нашето внимание. Процесът на рефакторинг е бавен, досаден и предразположен към грешки.

С Nematode можем

  1. използвайте цял куп библиотеки и ги конфигурирайте „под един покрив“
  2. добавете нови методи, оператори, константи и изберете именуване за тях
  3. калибрирайте точността на изчисленията в движение
  • промяна на вече декларирани реализации на метод
  • замяна на математически константи с по-подходящи стойности

Какво е Nemathode.js?

Nemathode.js е JavaScript библиотека за оценка на нематоди. Позволява ви да комбинирате произволен брой библиотеки, като оставяте формата на изразите непроменен (агрегатор на решения в един формат)

Примери за използване

Пример за конфигурация (чист js)

Можете да видите този и още други примери за конфигурации тук

mathConstants

Буквално, математически константи

функции

Набор от записи с реализации

toInputType

Изглежда прекомерно, но не всеки използва чиста js функционалност. Има набор от библиотеки, където междинният тип не е число, например: bignumber.js, decimal.js и т.н. (на нашия уебсайт имаме набор от конфигурации за най-популярните библиотеки). Така че можете да конфигурирате манипулатор за въвеждане за тях като

toOutputType

Противоположно на toInputType. Вижте пример

двоични оператори

Нека да разгледаме един от примерите

Това е конфигурация за оператор, която се състои от две (досега) полета: приоритет, реализация (същото като във функциите).

Api — стандарт

Апи — с любов ❤️

Вдъхновен от

  • stackoverflow post за някаква задача с подобен синтаксис
  • няколко задачи в codewars (не можах да го намеря за съжаление)
  • библиотека math.js и нейният механизъм за оценка

Бъдеще

  1. Пълно TS покритие
  2. Унарни операнди (все още обмислям, имам нужда от вашето мнение)
  3. Оценка на аргументите на функцията
  4. Преодоляване на ограниченията с различни типове връщане: число, булево

Няколко последни думи

Ако имате грешки, предложения, желания, моля, уведомете ме. Радвам се да чуя вашите отзиви. Използвайте главния website и repo, за да получите информация за това решение (синтаксис и самата JS lib)

Приятно кодиране или нематодиране)