DrRacket Tips and Traps
Common errors
- Too many paranthesesparentheses - Since an open paranthesis, "(", indicates the beginning of a function, too many paranthesis will cause DrScheme DrRacket to try to evaluate the result of the inner paranthesis as if it were a function, causing the error message:
illegal application: first term in application must be a function name
- Too few
...
- parenthesis - Such as leaving off the correct number of
...
- parenthesis at the end of your function definition. The
...
- parenthesis-matching capabilities of
...
- DrRacket are designed to minimize this error, so pay attention to the highlighting that takes place as you type in
...
- parenthesis. The error message generated is
syntax error: missing close paren
orsyntax error: too many close parens
...
...
- Misspellings
...
- -
...
- Typographical
...
- errors
...
- will
...
- give
...
- a
...
reference
...
to
...
undefined
...
identifier:
...
[xxxx
...
]
...
- error.
- Improper define syntax - An incorrect syntax in a define statement may lead to a
define: malformed definition
error.
Error Message Interpretations
illegal application: first term in application must be a function name
- The first argument after the paranthesis must be a function. This error is generated by((+ 3 4))
, where there is an extra set of parentheses.syntax error: missing close paren
- The closing paranthesis is missing. The mis-matched opening paranthesis is highlighted by DrSchemeDrRacket. This error is generated by(+ 5 (* 3 4)
.syntax error: too many close parens
- The opening paranthesis is missing. The mis-matched closing paranthesis is highlighted by DrSchemeDrRacket. This error is generated by+ 5 (* 3 4))
.illegal application: first term in application is a function-bound identifier
- This error occurs in the "Beginning Student" level because function input parameters that are functions is not allowed. For example, it is generated by(define (fn x y) (x y))
becausexneeds becausex
needs to be a function.reference to undefined identifier:
[xxxx]
- This means thatxxxx
was misspelled. The misspelled word is highlighted by DrSchemeDrRacket. Note that this may mean that there is a space missing betwen two words. For example, the error is generated by(*4 5)
where*4
is "misspelled" due to a missing space.define: malformed definition
- Incorrect syntax used in adefine
statement. For instance,(define fn
(x) (* x 5))
will generate the error. It should be ,(define (fn x) (* x 5))
.
What does it mean when
...
DrRacket says...?
- *
#i[number]
- the number is an inexact value. That is, math errors may result from it because an approximation to the correct value has been used. For examplepi
prints out as#i3.141592653589793
.