Welcome to the CHICKEN Scheme pasting service

marshall request variables added by andyjpb on Thu Sep 13 16:08:17 2012

(define (alist->name/value-pairs alist)
  (map (lambda (entry)
	 (let* ((name  (car entry))
		(value (cdr entry))
		(name-len  (string-length name))
		(value-len (string-length value))
		(name-len-size  (if (> name-len #x7f) 4 1))
		(value-len-size (if (> value-len #x7f) 4 1))
		(name-len-start 0)
		(value-len-start name-len-size)
		(name-start (+ value-len-start value-len-size))
		(value-start (+ name-start name-len))
		(blob-len (+ value-start value-len))
		(blob (make-empty-record blob-len)))
	   (if (> name-len-size 1)
	     (u32encode blob name-len (+ 3 name-len-start) (+ 2 name-len-start) (+ 1 name-len-start) name-len-start)
	     (u8vector-set! blob name-len-start name-len))
	   (if (> value-len-size 1)
	     (u32encode blob value-len (+ 3 value-len-start) (+ 2 value-len-start) (+ 1 value-len-start) value-len-start)
	     (u8vector-set! blob value-len-start value-len))
	   (with-input-from-string name  (lambda () (read-u8vector! name-len  blob (current-input-port) name-start)))
	   (with-input-from-string value (lambda () (read-u8vector! value-len blob (current-input-port) value-start)))
	   blob))
       alist))

Your annotation:

Enter a new annotation:

Your nick:
The title of your paste:
Your paste (mandatory) :
Which one-argument R5RS procedure returns 3 when given `'(1 2 3 4)' as input?
Visually impaired? Let me spell it for you (wav file) download WAV