PasteRack.org
Paste # 53637
2014-10-23 21:29:08

Forked from paste # 23383.

Fork as a new paste.

Paste viewed 68 times.


Embed:

  1. #lang typed/racket
  2.  
  3. (define-struct Point
  4.   ([x : Real]
  5.    [y : Real]))
  6.  
  7. (define-struct Rectangle
  8.   ([bot-left : Point]
  9.    [top-right : Point]))
  10.  
  11. (define-struct Circle
  12.   ([radius : Real]
  13.    [center : Point]))
  14.  
  15.   (define xs (map (lambda ([c : Circle]) (Point-x (Circle-center c))) circles))
  16.   (define ys (map (lambda ([c : Circle]) (Point-y (Circle-center c))) circles))
  17.   (define radii (map Circle-radius circles))
  18.   (define left-bound (min (map (lambda ([x : Real] [y : Real]) (- x y))
  19.                                xs radii)))
  20.   (define right-bound (max (map (lambda ([x : Real] [y : Real]) (+ x y))
  21.                                 xs radii)))
  22.   (define bot-bound (min (map (lambda ([x : Real] [y : Real]) (- x y))
  23.                               ys radii)))
  24.   (define top-bound (max (map (lambda ([x : Real] [y : Real]) (+ x y))
  25.                               ys radii)))
  26.  
  27.  
  28.  
  29. Type Checker: type mismatch
  30.   expected: Real
  31.   given: (Listof Real) in: (map (lambda ((x : Real) (y : Real)) (- x y)) xs radii)
  32.  

=>