## WeBWorK Problems

### Correct answer is either a string or a function

by Danny Glin -
Number of replies: 3
Hi,
I'm modifying (well, fixing) an NPL problem on exact equations (Library/274/Exact/prob4.pg if you're curious), which first asks for the partials, then either asks for the solution, or the student to type "Not Exact" if the original equation isn't exact.
Here's the code snippet:
...
if($exact) {$ans = $f;} else {$ans = Compute("Not Exact");}
ANS($ans->cmp()); When the equation is exact, everything works. The student can enter a function, or the string "Not Exact" (which is marked wrong with no error message). The problem arises when the function is not exact. In this case the system expects a string. If a function is entered, the student gets the message "Your answer isn't a number (it looks like a formula that returns a number)". So what I want to know is: Is there a way to have a string be the correct answer, but still allow functions to be submitted as answers (without an error message)? In reply to Danny Glin ### Re: Correct answer is either a string or a function by D. Brian Walton - Does the following discussion take care of the problem? http://webwork.maa.org/wiki/StringsInContext I can't remember exactly where, but I thought I had seen something similar to this in another problem. This is what I found when I did a quick search. - Brian D. Brian Walton James Madison University In reply to D. Brian Walton ### Re: Correct answer is either a string or a function by Danny Glin - Yup, that link covers it. I looked around the wiki, but didn't happen to come across that page. The solution is ANS($ans->cmp(typeMatch=>Formula("x*y")));
This way it still gives errors if the student answer isn't either an allowable string or a function of x and y.
Thanks.