Re: Should we MAY a "curly-write" and "neoteric-write"? Or even "sweet-write"? David A. Wheeler 10 Apr 2013 04:11 UTC
Below is a more detailed example of what I had in mind. Below is the core of a "neoteric-write-simple" (no port option yet)... followed by example output. --- David A. Wheeler =================================================== (define (neoteric-write-simple x) (cond ((pair? x) (cond ((represent-as-abbreviation? x) ; Format 'x (display (list->string (cadr (assq (car x) abbreviations)))) (neoteric-write-simple (cadr x))) ((or (long-and-boring? x) (not (list? x))) (display "(") ; Format (a b c ...) (neoteric-write-unit-list x) (display ")")) ((symbol? (car x)) (cond ((represent-as-inline-infix? x) ; Format {a + b} (display "{") (neoteric-write-simple (cadr x)) (infix-tail (car x) (cddr x))) ((and (list1? (cdr x)) (pair? (cadr x)) (represent-as-brace-suffix? (cadr x))) ; Format f{...} (neoteric-write-simple (car x)) (as-brace-suffix (cadr x))) (#t ; Format f(...) (neoteric-write-simple (car x)) (display "(") (neoteric-write-unit-list (cdr x)) (display ")")))) (#t ; Format (1 2 3 ...) (display "(") (neoteric-write-unit-list x) (display ")")))) (#t (write x)))) ; Everything else. ===================================================== Sample output: 'x (a b c d e f g h i j k l m n o p q r s t u v w x y z) {a + b} {a + b + c} sin{- theta} fact{n - 1} between(current min max) sin(x) current-time() (1 2 3) 5 boring-symbol {sqrt(x) + sqrt(y)}