1 ZEROLINE=10 2 AMP=20 10 DEFUN SINC(P)=IF P==0 THEN 1.0 ELSE SIN(P)/P 20 DEFUN TOCHAR(P,X)=IF (X==ROUND(ZEROLINE+P*AMP)) THEN "@" ELSE IF (X==ZEROLINE) THEN "|" ELSE CHR(250) 30 DEFUN SCONCAT(ACC,S)=ACC+S 40 REM DEFUN PLOTLINE(X)=FOLD(SCONCAT,"",MAP(TOCHAR<~X,1 TO ZEROLINE+AMP)) 41 REM PLOTLINE(F,X)=FOLD(SCONCAT,"",MAP(TOCHAR<~F(X),1 TO ZEROLINE+AMP)):REM does not work 42 DEFUN PLOTLINE(F,X)=FOLD(SCONCAT,"",MAP(TOCHAR<~F<~X,1 TO ZEROLINE+AMP)):REM WORKS! 100 FOR I=-40 TO 40 110 PRINT PLOTLINE(SINC,I) 120 NEXT 999 END 1000 REM Known bugs 1010 DEFUN PLOTLINE(F,X)=FOLD(SCONCAT,CHR(0),MAP(TOCHAR<~F(X),1 TO ZEROLINE+AMP)) 1011 REM calling user-defined function within DEFUN is not working