Christoph Bauer wrote:
Hello Experts,
my favorite feature of gambit is its portability. It compiles so easily on SunOS, IRIX, AIX, HP-UX and Linux. (Try to find such a common lisp implementation!) So now my questions:
- is there a way to copy a record (define-structure) or to convert it to a list, like table-copy and table->list? for tables - there is a function to create symbolic links. Is there also one for readlink(2)?
I don't know about these... You can always use the object->u8vector (and its counter part (u8vector->object) to make a copy, but there must be an easier way. Here is an example: Gambit v4.2.8
(define-type t a b) (define t1 (make-t 1 2)) t1 #<t #3 a: 1 b: 2> (define t2 (with-input-from-string (with-output-to-string "" (lambda () (write (object->u8vector (make-t 1 2))))) (lambda () (u8vector->object (read))))) t2 #<t #4 a: 1 b: 2> (eq? t1 t2) #f
- this code, which is written by Olin Shivers, doesn't work:
(define-syntax let-string-start+end (syntax-rules () ((let-string-start+end (start end) proc s-exp args-exp body ...) (receive (start end) (string-parse-final-start+end proc s-exp args-exp) body ...)) ((let-string-start+end (start end rest) proc s-exp args-exp body ...) (receive (rest start end) (string-parse-start+end proc s-exp args-exp) body ...)))) *** ERROR IN (console)@4.17 -- Ill-formed expression
The syntax-case form is not supported by default by gambit-c, it is rather the "lower level" define-macro form which is used. If you want to use syntax-case macros, you have to include it with: (include "~~/syntax-case.scm") Then, you'll have access to it. Have fun ^_^ David