;; A temporary test file (import (scheme base) (scheme write) (srfi 9) ) ;((lambda () ; ;(define-record-type ; (kons x y) ; pare? ; (x kar) ;TODO: set-kar!) ; (y kdr)) ; ;(write ; (list ; (pare? (kons 1 2)) ; =. #t ; (pare? (cons 1 2)) ; =. #f ;; (kar (kons 1 2)) ; =. 1 ;; (kdr (kons 1 2)) ; =. 2 ;; (let ((k (kons 1 2))) ;; (set-kar! k 3) ;; (kar k)) ;=. 3 ;)) ;)) (define (register-simple-type #f (quote (x y)))) ;(define pare? vector?) ;(make-type-predicate pare? )) ;(define kons ; ((lambda (%make) ; (lambda (x y) ; ((lambda (res) ; (slot-set! res (type-slot-offset (quote y)) y) ; (slot-set! res (type-slot-offset (quote x)) x) ; res) ; (%make)))) ; (make-constructor "kons" ))) ;(write ; (list ; (pare? (kons 1 2)) ; (pare? (cons 1 4)) ;)) ;(define (make-lambda) ; (lambda (a b c) (write (+ a b c)))) ;(define test (make-lambda)) ;(test 1 2 3)