## Answer is a Point or a List of Points

This PG code shows how to evaluate answers that are points or lists of points.

PG problem file Explanation

Problem tagging:

```DOCUMENT();

"PGstandard.pl",
"MathObjects.pl",
"contextLimitedPoint.pl",
);

TEXT(beginproblem());
```

Initialization: We only need to load `contextLimitedPoint.pl` if we want to prevent operations between points.

```Context("LimitedPoint");

\$f = Compute("x^2-1");

\$xint = List( Point("(1,0)"), Point("(-1,0)") );

\$yint = List( Point("(0,-1)") );
```

Setup: We could have used `Context("Point");` instead, which would allow mathematical operations between points (such as adding points as if they were vectors). The x-intercepts are clearly a list of points. We used a list with only one element for the y-intercepts so that a student who mistakenly enters two points will be told their second point is incorrect. If we did not use a list for the y-intercepts, a student who enters two points would be given an error message instead.

```Context()->texStrings;
BEGIN_TEXT
Enter the x-intercept(s) and y-intercept(s)
of \( y = \$f \).  Enter a point as \( (a,b) \),
including the parentheses.  If there is more
than one correct answer, enter a comma
separated list of points.
\$BR
\$BR
x-intercept(s): \{ ans_rule(20) \}
\$BR
y-intercept(s): \{ ans_rule(20) \}
END_TEXT
Context()->normalStrings;
```

Main Text: Be sure to tell students the proper syntax for how to enter their answers.

```\$showPartialCorrectAnswers = 1;

ANS( \$xint->cmp() );

ANS( \$yint->cmp() );
```

```Context()->texStrings;
BEGIN_SOLUTION
\${PAR}SOLUTION:\${PAR}
Solution explanation goes here.
END_SOLUTION
Context()->normalStrings;

COMMENT('MathObject version.');

ENDDOCUMENT();
```

Solution: