Skip to content

Commit

Permalink
remove _.drop
Browse files Browse the repository at this point in the history
  • Loading branch information
Evgeny Metelkin committed Nov 8, 2023
1 parent 5e125e1 commit 99e3fc0
Showing 1 changed file with 13 additions and 13 deletions.
26 changes: 13 additions & 13 deletions src/module-system/to-math-expr.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,28 +34,28 @@ function _toMathExpr(element, useParentheses = false){
let two = _toMathExpr(element.elements[2], true);
return `${one} != ${two}`;
} else if(element.name === 'apply' && first.name === 'and') {
let args = _.drop(element.elements)
let args = element.elements.slice(1)
.map((x) => _toMathExpr(x, true)).join(' and ');
return args;
} else if(element.name === 'apply' && first.name === 'or') {
let args = _.drop(element.elements)
let args = element.elements.slice(1)
.map((x) => _toMathExpr(x, true)).join(' or ');
return args;
} else if(element.name === 'apply' && first.name === 'xor') {
let args = _.drop(element.elements)
let args = element.elements.slice(1)
.map((x) => _toMathExpr(x, true)).join(' xor ');
return args;
} else if(element.name === 'apply' && first.name === 'not') {
let one = _toMathExpr(element.elements[1], true);
return `not ${one}`;
} else if(element.name === 'apply' && first.name === 'times') {
// A * B * C, <times>
let expr = _.drop(element.elements) // without first element
let expr = element.elements.slice(1) // without first element
.map((x) => _toMathExpr(x, true)).join(' * ');
return useParentheses ? `(${expr})` : expr;
} else if(element.name === 'apply' && first.name === 'divide') {
// A / B, <divide> for two arguments
let args = _.drop(element.elements)
let args = element.elements.slice(1)
.map((x) => _toMathExpr(x, true));
return args[0] + ' / ' + args[1];
} else if(element.name === 'apply' && first.name === 'minus' && element.elements.length === 2) {
Expand All @@ -71,21 +71,21 @@ function _toMathExpr(element, useParentheses = false){
return useParentheses ? `(${expr})` : expr;
} else if(element.name === 'apply' && first.name === 'plus') {
// A + B + C, <plus>
let expr = _.drop(element.elements)
let expr = element.elements.slice(1)
.map((x) => _toMathExpr(x, false)).join(' + '); // skip ()
return useParentheses ? `(${expr})` : expr;
} else if(element.name === 'apply' && first.name === 'power') {
let expr = _.drop(element.elements)
let expr = element.elements.slice(1)
.map((x) => _toMathExpr(x)).join(', '); // skip ()
return `pow(${expr})`;
} else if(element.name === 'apply' && first.name === 'ceiling') {
let args = _.drop(element.elements)
let args = element.elements.slice(1)
.map((x) => _toMathExpr(x)); // skip ()
return `ceil(${args[0]})`;
} else if(element.name === 'apply' && first.name === 'root') {
let degree = element.elements
.find(y => y.name === 'degree');
let args = _.drop(element.elements)
let args = element.elements.slice(1)
.filter((x) => x.name !== 'degree')
.map((x) => _toMathExpr(x)); // skip ()
if (degree) {
Expand All @@ -96,13 +96,13 @@ function _toMathExpr(element, useParentheses = false){
return `sqrt(${args[0]})`;
}
} else if(element.name === 'apply' && first.name === 'ln') {
let expr = _.drop(element.elements)
let expr = element.elements.slice(1)
.map((x) => _toMathExpr(x)); // skip ()
return `ln(${expr[0]})`;
} else if(element.name === 'apply' && first.name === 'log') {
let logbase = element.elements
.find(y => y.name === 'logbase');
let expr = _.drop(element.elements)
let expr = element.elements.slice(1)
.filter((x) => x.name !== 'logbase')
.map((x) => _toMathExpr(x)); // skip ()
if (logbase === undefined) {
Expand Down Expand Up @@ -175,11 +175,11 @@ function _toMathExpr(element, useParentheses = false){
return `piecewise(${args.join(', ')})`;
} else if (element.name === 'apply' && (first.name === 'ci' || first.name === 'csymbol')) { // some user defined functions
let funcName = _toMathExpr(first); // first.elements[0]?.text;
let args = _.drop(element.elements)
let args = element.elements.slice(1)
.map((x) => _toMathExpr(x)).join(', '); // skip ()
return `${funcName}(${args})`;
} else if (element.name === 'apply') { // all other internal mathml functions
let args = _.drop(element.elements)
let args = element.elements.slice(1)
.map((x) => _toMathExpr(x)).join(', ');
return `${first.name}(${args})`;
} else if (element.name === 'ci') {
Expand Down

0 comments on commit 99e3fc0

Please sign in to comment.