Pull to refresh

Comments 16

Либо я неправильно понял зачем это, либо здесь нужна картинка из xkcd про стандарты

нагуглил только комикс. Его имеете ввиду?)

Да. Чтобы избавиться от 3 библиотек, вы сделали 4 библиотеку и теперь следующему за вами придется избавляться от 4 библиотек

Тоже не понимаю. Вы выбрали запись массивами в угоду удобства сериализации данных вместо человеко-читаемости? Как-будто, можно найти решение через описание грамматики для парсеров (PEG), оставив при этом простую и понятную запись. У Алексея Охрименко есть хороший доклад на эту тему.

Не до конца, видимо, понял зачем это нужно
Вычисление будет в разы дольше нативного из-за парсинга, а запрограммировать приоритеты операторов можно только так же как в стандартной математике, иначе вы всех введете в заблуждение

Так что вышел yetAnotherFramework

Приоритеты можно задать на своё усмотрение. По поводу скорости, да. Думаю над ускорением этого процесса

А по поводу скоростей, вычислений не так много и прирост в скорости не так сильно заметен )

У вас во фронтенде правда всё настолько весело что вместо того чтобы писать арифметические выражения средствами языка вы пишете отдельный фреймворк с красивым названием и интересной иконкой?


С evaluatePlease отдельно проиграл, конечно. Уже предусмотрена возможность в случае чего извиниться перед фреймворком за мисгендеринг опечатку в имени метода?

Речь идёт про вычисления в JS.

А история создания упирается в вынос вычислений (С бэка) на фронт которые были реализованы при помощи нескольких библиотек. Этот скрипт (выше), действительно), помог справиться с унификацией вычислений

"Мы встроили интерпретатор в твой интерпретатор..."

Выражения в виде массивов - это необходимость, или для удобства?

Просто если бы выражения были в виде строк, то можно было бы воспользоваться конструктором Function, который, будучи лишен недостатков eval, позволяет в том числе передать параметры и вспомогательные функции/константы

UFO just landed and posted this here

Строки все равно придется парсить в AST

Зачем?

Делал что-то подобное для Decimal.js, сложные записи на котором в некоторых местах совсем уж тяжко стало читать, а производительностью можно было пожертвовать в пользу читабельности. Но я пошёл чуть другим путём -- использовал tagged template literals, в простейшем случае это выглядело примерно так:

big`(${x} + ${y}) * ${z}`

Парсится такой вариант чуть дольше конечно, но это в любом случае не для повсеместного использования. Вариант с массивом помню тоже рассматривал, но сейчас уже и не вспомню почему отказался.

Императивные языки не очень подходят для математического языка. Самое главное - чтобы все формулы были читаемы. Наилучшая реализация у wolfram mathematica. Ну и F# более-менее удобно с лямда.

Обычно оставляем ссылку в комментариях на мат. формулу, и все переменные называем в точности как там.

Sign up to leave a comment.

Articles