[ create a new paste ] login | about

Link: http://codepad.org/cWGNKbVE    [ raw code | fork ]

hurracane - Scheme, pasted on Apr 2:
(#%require (only racket/base error))

(define (create-vector x y)
  
  (define (sum vec2)             ;optelling 2 vectoren => vector terug
    (create-vector (+ x (vec2 'get-x)) 
                   (+ y (vec2 'get-y))))
  (define (difference vec2)      ;aftrekking 2 vectoren => vector terug
    (create-vector (- x (vec2 'get-x)) 
                   (- y (vec2 'get-y))))
  
  (define (dotproduct vec2)       ;inwendig product 2 vectoren => getal terug
    (+ (* x (vec2 'get-x))
       (* y (vec2 'get-y))))
  
  (define (multiply num)          ;product vector met getal => vector terug
    (create-vector (* x num)
                   (* y num)))
  (define (divide num)            ;deling vector met getal => vector terug
    (create-vector (/ x num)
                   (/ y num)))
  
  (define (normalvector vec2)
    (create-vector (- (vec2 'get-x) x)
                   (- (vec2 'get-y) y)))
  
  (define (dispatch msg)
    (case msg
      ((set-x!) (lambda (new-x) (set! x new-x)))
      ((set-y!) (lambda (new-y) (set! y new-y)))
      ((get-x) x)
      ((get-y) y)
      ((sum) sum)
      ((difference) difference)
      ((dotproduct) dotproduct)
      ((normalvector) normalvector)
      ((multiply) multiply)
      ((divide) divide)
      (else (error "unknown message " msg))))
  dispatch)


Create a new paste based on this one


Comments: