Comments (8)
Oh yes of course; I'll check out some of the other issues.
from mathsteps.
I am happy to pick this one up, if thats okay?
from mathsteps.
I am on this. Could you assign me to it? It's easier to filter :)
from mathsteps.
Actually I'd appreciate if you could work on a maximum of 1 small PR for now, since I want to make it easy for people to start on this project and it'll take a bit of time to find more small tasks for folks.
Would it be alright to leave this for another eager newcomer? I'm happy to discuss some other slightly bigger PRs with you if you want to find something else to work on :)
And, of course, thanks so much for your interest. It is so great to have someone else so on board 😀 😀
Also, I can't assign things to people unless they're on the collaborators list (have read and write access, which will probably stay Socratic people for now) - sorry, I know that's inconvenient. We might be able to find another system to help keep track of PRs for people - let me know if you have ideas!
from mathsteps.
Just looking now, the nthRoot Code seems to be on the math.js side, so changing it would be changing the actual mathjs code. Is that correct, or am I missing something?
from mathsteps.
@adamisntdead Check out #29.
The operation nthRoot
with base 0
would lead to an exception when trying to evaluate it with mathjs
. For example, try this (at the root of the project after cloning the repository):
const mathsteps = require('./');
mathsteps.simplifyExpression('nthRoot(5, 0)');
In attempting to simplify nthRoot(5, 0)
the program is going to evaluate it, and it will throw an error in our face: Error: Root must be non-zero
. That's not great; what would be better instead would be to return a step with changeType NTHROOT_BY_ZERO
or something (not sure...) and stop the simplification process. Essentially we're modelling an error as a changeType (I think? @evykassirer).
I hope this helps!
from mathsteps.
yay @adamisntdead thanks for taking this on!
What @hmaurer said sounds right. Ideally a student could enter anything and give something back. If we throw an error, the tech that's using mathsteps
might not know what to do.
So if someone asked 2 + 4 + nthroot(4, 0)
, we should give the step:
2 + 4 + nthroot(4, 0) -> 2 + 4 + nthroot(4, 0)
(ie no change)
changeType:NTHROOT_BY_ZERO_ERROR
(or whatever you want to call it)
Checking for 0th root should look through the whole tree before we start, because there's no point in doing other steps (like adding 2 and 4 above) if there's gonna be an error anyways.
How's that sound? Please ask if this is confusing or if you have any other questions :) thanks again for volunteering to work on this 😸
(aside: later, it would be nice to give users of mathsteps a way to check if a changeType
is an error, but you don't need to do that)
from mathsteps.
this has gotten more complicated with #129 (sorry for being misleading!)
BUT once that's all done, this will still be a nice small change. I'll just add the "blocked" label to wait until #129 and #29 are done :)
from mathsteps.
Related Issues (20)
- Can mathsteps handle derivative and integral? HOT 6
- x * (x - 1) = 1 ===>> throws 'Math error: No term with symbol: x , returning no steps' HOT 1
- How to run mathsteps on smartphone? HOT 1
- Severe security vulnerability HOT 5
- Missing parentheses when multiplying with a negative number HOT 5
- more things to add to linter
- Current Limitations HOT 1
- Mathsteps cannot handle quadratic equations HOT 4
- Development Status HOT 1
- handling latex input
- Script to browserify mathsteps
- compute a reverse expression HOT 1
- Fails when left node is only a parenthesis (eg "(x+1)=4", "((x)/(4))=4")
- Canceling out first variable throws error
- How to render these steps using Mathjax or something else? HOT 1
- Project Status and inactive email HOT 2
- bug : x-2/3=0
- Another bug : 2/x=3/4 HOT 2
- Adapting to iOS Swift
- Adapt README.md to link to the most active fork
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mathsteps.