Here's a program that takes complex values with modulus 1 (from the complex unit circle) and plugs them into EQ (a polynomial in X) and plots the result. You can get some neat spirographic results with the right polynomial. '1.5*INV(X)+4.5*x' draws an ellipse for instance. The program doesn't erase the plot screen, so that you can overlap plots of different functions. A simple erasing program can be created to erase the screen separately: ERS: \<< ERASE \>> A neat exercise for students would be to find what coefficients are needed on the terms of '1/X + X' to get an ellipse with major and minor axes a,b. A 4-leaf rose is produced by '(0,-1.5)*(x^3-INV(X))' Simple polynomials such as 'X+.2*X^4' act like a point on a spining circle that is attached to another spining circle. Kind of like the models that were tried for planetary motion. Some technical notes: Instead of looping on theta, I used multiplication by a complex number that represents a small angle to bump the sampling point around the circle. Also used leftarrow in the local variable that serves as the independent var so that I didn't have to use a global variable. In a programming sense, a local variable with a \<- at the beginning of its name, acts as a global variable. So I just use the (up arrow)MATCH command to replace X with \<-x in the EQ, stored as eq locally. Use left-shift alpha to get lower case letters. -------- Notation: \<< means left double angle bracket \-> means right arrow \<- means left arros \>> means right double angle bracket \|^ means up arrow Program: \<< '(COS(.05),SIN(.05))' \->NUM (1,0) 0 \-> inc \<-x eq \<< EQ { X \<-x } \|^MATCH DROP 'eq' STO { # 0d # 0d } PVIEW eq EVAL 0 126 START eq EVAL DUP 3 ROLLD LINE \<-x inc * '\<-x' STO NEXT DROP \>> 7 FREEZE \>>