pprint bug ?

Damien Mattei damien.mattei@gmail.com
Tue Oct 17 07:38:08 GMT 2023


all is ok:

(require (quote srfi-1))
(require (quote srfi-69))
(include "../../Scheme-PLUS-for-Kawa/rec.scm")
(include "../../Scheme-PLUS-for-Kawa/def.scm")
(include "../../Scheme-PLUS-for-Kawa/set-values-plus.scm")
(include "../../Scheme-PLUS-for-Kawa/for_next_step.scm")
(include "../../Scheme-PLUS-for-Kawa/declare.scm")
(include "../../Scheme-PLUS-for-Kawa/condx.scm")
(include "../../Scheme-PLUS-for-Kawa/block.scm")
(include "../../Scheme-PLUS-for-Kawa/not-equal.scm")
(include "../../Scheme-PLUS-for-Kawa/exponential.scm")
(include "../../Scheme-PLUS-for-Kawa/while-do-when-unless.scm")
(include "../../Scheme-PLUS-for-Kawa/repeat-until.scm")
(include "../../Scheme-PLUS-for-Kawa/modulo.scm")
(include "../../Scheme-PLUS-for-Kawa/bitwise.scm")
(include "../../Scheme-PLUS-for-Kawa/slice.scm")
(include "../../Scheme-PLUS-for-Kawa/scheme-infix.scm")
(include "../../Scheme-PLUS-for-Kawa/assignment.scm")
(include "../../Scheme-PLUS-for-Kawa/apply-square-brackets.scm")
(include "../../Scheme-PLUS-for-Kawa/array.scm")
(define-simple-class matrix () (v :: vector)
 ((*init* (vParam :: vector)) (set! v vParam)))
(define (create-matrix-vect-by-function fct lin col)
 (matrix (create-vector-2d fct lin col)))
(define (matrix-v M) (slot-ref M (quote v)))
(define (matrix-vect-line-ref M lin) (<+ v (matrix-v M)) (bracket-apply v lin))

i just put spaces in my source code at those expressions:

(v :: vector)


On Tue, Oct 17, 2023 at 9:23 AM Damien Mattei <damien.mattei@gmail.com> wrote:
>
> when outputting in REPL,things looks better:
>
> #|kawa:30|# (display '(v::vector))
> (v :: vector)
> #|kawa:31|# (write '(v::vector))
> (v :: vector)
> #|kawa:32|# (pprint "hello")
> hello
> #|kawa:33|# (pprint '"hello")
> hello
> #|kawa:34|# (pprint (write '"hello"))
> "hello"
>
>
>
> On Tue, Oct 17, 2023 at 9:11 AM Damien Mattei <damien.mattei@gmail.com> wrote:
> >
> > i have this code:
> >
> > (require 'srfi-1) ; any,every
> > (require 'srfi-69) ;; hash table
> >
> > ;; try include , use include-relative if problems
> > (include "../../Scheme-PLUS-for-Kawa/rec.scm") ; rec does  not exist
> > in Kawa (no SRFI 31)
> > (include "../../Scheme-PLUS-for-Kawa/def.scm")
> > (include "../../Scheme-PLUS-for-Kawa/set-values-plus.scm")
> > (include "../../Scheme-PLUS-for-Kawa/for_next_step.scm")
> > (include "../../Scheme-PLUS-for-Kawa/declare.scm")
> > (include "../../Scheme-PLUS-for-Kawa/condx.scm")
> > (include "../../Scheme-PLUS-for-Kawa/block.scm")
> > (include "../../Scheme-PLUS-for-Kawa/not-equal.scm")
> > (include "../../Scheme-PLUS-for-Kawa/exponential.scm")
> > (include "../../Scheme-PLUS-for-Kawa/while-do-when-unless.scm")
> > (include "../../Scheme-PLUS-for-Kawa/repeat-until.scm")
> > (include "../../Scheme-PLUS-for-Kawa/modulo.scm")
> > (include "../../Scheme-PLUS-for-Kawa/bitwise.scm")
> >
> >
> > (include "../../Scheme-PLUS-for-Kawa/slice.scm")
> >
> > (include "../../Scheme-PLUS-for-Kawa/scheme-infix.scm")
> >
> > (include "../../Scheme-PLUS-for-Kawa/assignment.scm")
> > (include "../../Scheme-PLUS-for-Kawa/apply-square-brackets.scm")
> >
> > (include "../../Scheme-PLUS-for-Kawa/array.scm")
> >
> >
> > ;; (matrix #(1 2 3))
> > ;; matrix@4612b856
> >
> >
> > (define-simple-class matrix ()
> >
> >   (v::vector)
> >
> >   ((*init* (vParam::vector))
> >    (set! v vParam))
> >
> >   )
> >
> >
> > ;; (define M (create-matrix-vect-by-function (lambda (i j) (+ i j)) 2 3))
> > (define (create-matrix-vect-by-function fct lin col)
> >   (matrix (create-vector-2d fct lin col)))
> >
> > ;; (matrix-v M)
> > ;;#(#(0 1 2)
> > ;;  #(1 2 3))
> > (define (matrix-v M)
> >   (slot-ref M 'v))
> >
> >
> >
> > (define (matrix-vect-line-ref M lin)
> >   {v <+ (matrix-v M)}
> >   {v[lin]})
> >
> > i run:
> >
> >  kawa curly-infix2prefix.scm ../AI_Deep_Learning/kawa/matrix+.scm
> > (require (quote srfi-1))
> > (require (quote srfi-69))
> > (include "../../Scheme-PLUS-for-Kawa/rec.scm")
> > (include "../../Scheme-PLUS-for-Kawa/def.scm")
> > (include "../../Scheme-PLUS-for-Kawa/set-values-plus.scm")
> > (include "../../Scheme-PLUS-for-Kawa/for_next_step.scm")
> > (include "../../Scheme-PLUS-for-Kawa/declare.scm")
> > (include "../../Scheme-PLUS-for-Kawa/condx.scm")
> > (include "../../Scheme-PLUS-for-Kawa/block.scm")
> > (include "../../Scheme-PLUS-for-Kawa/not-equal.scm")
> > (include "../../Scheme-PLUS-for-Kawa/exponential.scm")
> > (include "../../Scheme-PLUS-for-Kawa/while-do-when-unless.scm")
> > (include "../../Scheme-PLUS-for-Kawa/repeat-until.scm")
> > (include "../../Scheme-PLUS-for-Kawa/modulo.scm")
> > (include "../../Scheme-PLUS-for-Kawa/bitwise.scm")
> > (include "../../Scheme-PLUS-for-Kawa/slice.scm")
> > (include "../../Scheme-PLUS-for-Kawa/scheme-infix.scm")
> > (include "../../Scheme-PLUS-for-Kawa/assignment.scm")
> > (include "../../Scheme-PLUS-for-Kawa/apply-square-brackets.scm")
> > (include "../../Scheme-PLUS-for-Kawa/array.scm")
> > (define-simple-class matrix () (|v::vector|)
> >  ((*init* (|vParam::vector|)) (set! v vParam)))
> > (define (create-matrix-vect-by-function fct lin col)
> >  (matrix (create-vector-2d fct lin col)))
> > (define (matrix-v M) (slot-ref M (quote v)))
> > (define (matrix-vect-line-ref M lin) (<+ v (matrix-v M)) (bracket-apply v lin))
> >
> > now my problem is with :  |v::vector|
> >
> > | | appears
> >
> > the routine that print is :
> >
> > ; parse the input file from command line
> > (define cmd-ln (command-line))
> > ;;(format #t "The command-line was:~{ ~w~}~%" cmd-ln)
> > (define file-name (car (reverse cmd-ln)))
> >
> > (define code-lst (literal-read-syntax file-name))
> >
> > (define (prt-expr expr)
> >   (pprint expr)
> >   (newline))
> >
> > (define (dsp-expr expr)
> >   (pprint (write expr))
> >   (newline))
> >
> > (define do-not-display-result (map dsp-expr code-lst))
> >
> > i do not know how to get rid of | | without loosing " " and keeping indentation
> >
> > On Tue, Oct 17, 2023 at 8:49 AM Damien Mattei <damien.mattei@gmail.com> wrote:
> > >
> > > in fact guile and racket act the same way:
> > >
> > > scheme@(guile-user)> (display '(include "../../Scheme-PLUS-for-Kawa/rec.scm"))
> > > (include ../../Scheme-PLUS-for-Kawa/rec.scm)
> > >
> > > Welcome to DrRacket, version 8.9 [cs].
> > > Language: racket, with debugging; memory limit: 8192 MB.
> > > (display '(include "../../Scheme-PLUS-for-Kawa/rec.scm"))
> > > (include ../../Scheme-PLUS-for-Kawa/rec.scm)
> > >
> > > :-(
> > >
> > > i just want to output code with indentation ,if i do it with 'write'
> > > ,i loose indentation, if i do it with 'display' or 'pprint' i get
> > > indentation but code is no more valid as string are without "  ".
> > >
> > > On Mon, Oct 16, 2023 at 11:52 PM Damien Mattei <damien.mattei@gmail.com> wrote:
> > > >
> > > > hello,
> > > > i find something strange in pprint:
> > > >
> > > > (import (kawa pprint))
> > > > (pprint '(include "../../Scheme-PLUS-for-Kawa/rec.scm"))
> > > >
> > > > will output:
> > > > (include ../../Scheme-PLUS-for-Kawa/rec.scm)
> > > >
> > > > which is no more an s-expr , it has wiped out the " " of the string,
> > > > and it is bugging my code
> > > >
> > > > isn't it more normal to output:
> > > > (include "../../Scheme-PLUS-for-Kawa/rec.scm")
> > > >
> > > > ?


More information about the Kawa mailing list