procgen  Diff

Differences From Artifact [a8f59872e4]:

To Artifact [fd266dcc3b]:


    31     31   ; the name bindings are ephemeral; they do not survive the immediate
    32     32   ; context of the constructor.
    33     33   
    34     34   (define-macro (interlace . body)
    35     35     ; given a list with both named and nameless members, identify
    36     36     ; which is which and instate the vector.
    37     37     (define (name? term)
           38  +	; given a symbol, determine wheter it is a name, and if so return
           39  +	; that name as a string and without the name-marking suffix ‹.›
           40  +	; otherwise, return #f
    38     41   	(define (coda str) (substring str
    39     42   								  (- (string-length str) 1)
    40     43   								  (string-length str)))
    41     44   	(if (not (symbol? term)) #f
    42     45   		(let* ([term-string (symbol->string term)]
    43     46   			   [final-char (coda term-string)])
    44         -		  (print "TERMSTRING:" term-string)
    45         -		  (print "CHAR:" final-char)
    46     47   		  (if (not (equal? final-char ".")) #f
    47         -			  (substring term-string 0 (- (string-length term-string) 1))))))
           48  +			  (string->symbol(substring term-string 0 (- (string-length term-string) 1)))))))
    48     49   
    49     50     (define (divide-entries lst @named @nameless)
    50     51   	; given a list, return a pair [ x . y ] such that x is a list
    51     52   	; of named terms ( name . term ) and y is a list of nameless
    52     53   	; terms.
    53     54   	(if (eq? lst '()) (cons @named @nameless)
    54     55   		(let* ([head (car lst)]