Arithmetic evaluation: Difference between revisions

m
→‎{{header|Sidef}}: minor code simplifications
m (→‎{{header|Sidef}}: modified code to work with Sidef 2.10)
m (→‎{{header|Sidef}}: minor code simplifications)
Line 4,676:
 
var b = s.split('-');
b.len == 3 ? (-1*b[1].to_num - b[2].to_num)
? (-1 * b[1].to_num: operate(s, '- b[2].to_num');
: operate(s, '-');
}
 
Line 4,689 ⟶ 4,688:
var reAS = /(-?\d+\.?\d*\s*[+-]\s*[+-]?\d+\.?\d*)/;
 
while (var match; = reMD.match(s)) {
while (match = s. match(reMD))[0] ~~ {reM
var cap = match ? s.capsub!(reMD, operate(match[0];, '*').to_s)
cap ~~ reM : s.sub!(reMD, operate(match[0], '/').to_s);
? s.sub!(reMD, operate(cap, '*').to_s)
: s.sub!(reMD, operate(cap, '/').to_s);
}
 
while (var match = sreAS.match(reASs)) {
var cap = match.cap[0]; ~~ reA
cap ~~ reA ? s.sub!(reAS, add(match[0]).to_s)
?: s.sub!(reAS, addsubtract(capmatch[0]).to_s);
: s.sub!(reAS, subtract(cap).to_s);
}
 
Line 4,710 ⟶ 4,706:
s.split!.join!('').sub!(/^\+/,'');
 
while (var match; = s.match(rePara)) {
while (match = s.matchsub!(rePara, evalExp(match[0])) {;
s.sub!(rePara, evalExp(match.captures[0]));
}
 
2,747

edits