;;;; slib-charplot.scm ;;;; Kon Lovett, Mar '20 (module slib-charplot (;export frame-dimensions frame-left-margin xborder-char yborder-char xaxis-char yaxis-char xtick-char bar-char curves-chars histograph plot) (import scheme) (import (chicken module)) (import (only (chicken base) include let-values error identity warning make-parameter)) (import (chicken type)) (import (only (chicken port) terminal-size)) (import (only (srfi 1) last-pair)) (import (srfi 63)) ;FIXME chicken-install has the feature but after that ... (cond-expand (utf8 (import utf8) (warning "Using utf8 Extension")) (else)) (define-type plotdims (list fixnum fixnum)) (: frame-dimensions (#!optional (or boolean plotdims) -> (or boolean plotdims))) (: frame-left-margin (#!optional (or boolean fixnum) -> fixnum)) (: xborder-char (#!optional (or boolean char) -> char)) (: yborder-char (#!optional (or boolean char) -> char)) (: xaxis-char (#!optional (or boolean char) -> char)) (: yaxis-char (#!optional (or boolean char) -> char)) (: xtick-char (#!optional (or boolean char) -> char)) (: bar-char (#!optional (or boolean char) -> char)) (: curves-chars (#!optional (or boolean string) -> string)) (define-type plotcoord (list number number)) (define-type plotdata (or (vector plotcoord) (list plotcoord))) (define-type histdata (or (vector number) (list number))) (: plot (or (plotdata string string #!optional boolean -> void) ((number -> number) number number #!optional fixnum -> void))) (: histograph (histdata string -> void)) (include "slib-compat") (include "arraymap") (include "charplot.incl") ) ;module slib-charplot