Structures
The “proper” way of making structures is to use the struct special
form. Always use the #:transparent option. The “constructor” is the
same name as the structure. (In #lang racket, the default is not to
use the make-* form.)
(struct three-d (x y z) #:transparent)
(define demo (three-d 5 12 13))
Accessing the fields of a structure is done by the function
structname-fieldname. For example, (three-d-y demo) is 12.
Ordered pairs are called posn and can be used by (require lang/posn). They
-
Give two undesirable consequences of not using
#:transparent.(struct bad (p q)) (define b1 (bad 5 12)) (define b2 (bad 5 12)) b1 b2 (equal? b1 b2) -
Create a structure called line which holds two points, p1 and p2.
-
Write a function
line-slopethat takes in a line and computes the slope of the line. Include a check-expect. Instead of generating an error for vertical lines, create an specific error message explaining that the slope of a vertical line is undefined. -
(Cramer’s Rule) Use
(list a1 b1 c1)to represent the equationa1*x+b1*y=c1.- Write a determinant function that works for 2x2 matrices by just taking in four inputs a, b, c, and d.
- Write a Cramer’s Rule function that takes in two lists that represent the two equations in the system to solve.