File: Ch07_06_01_RepresentingObject.out

package info (click to toggle)
smlsharp 4.1.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 123,732 kB
  • sloc: ansic: 16,725; sh: 4,347; makefile: 2,191; java: 742; haskell: 493; ruby: 305; cpp: 284; pascal: 256; ml: 255; lisp: 141; asm: 97; sql: 74
file content (66 lines) | stat: -rw-r--r-- 1,429 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
val it = fn : ['a#{X: 'b}, 'b. 'a ref -> 'b -> unit]

val pointClass =
  {getColor = fn, getX = fn, getY = fn, setColor = fn, setX = fn, setY = fn}
  : {getColor: ['a#{Color: 'b}, 'b. 'a ref -> 'b],
     getX: ['a#{X: 'b}, 'b. 'a ref -> 'b],
     getY: ['a#{Y: 'b}, 'b. 'a ref -> 'b],
     setColor: ['a#{Color: 'b}, 'b. 'a ref -> 'b -> unit],
     setX: ['a#{X: 'b}, 'b. 'a ref -> 'b -> unit],
     setY: ['a#{Y: 'b}, 'b. 'a ref -> 'b -> unit]}

val myPoint =
  fn
  : ['a#{Color: 'b},
     'b,
     'c#{X: 'd},
     'd,
     'e#{Y: 'f},
     'f,
     'g#{Color: 'h},
     'h,
     'i#{X: 'j},
     'j,
     'k#{Y: 'l},
     'l,
     'm.
     ({getColor: 'a ref -> 'b,
       getX: 'c ref -> 'd,
       getY: 'e ref -> 'f,
       setColor: 'g ref -> 'h -> unit,
       setX: 'i ref -> 'j -> unit,
       setY: 'k ref -> 'l -> unit}
      -> {X: real, Y: real} ref -> 'm)
     -> 'm]

val myColorPoint =
  fn
  : ['a#{Color: 'b},
     'b,
     'c#{X: 'd},
     'd,
     'e#{Y: 'f},
     'f,
     'g#{Color: 'h},
     'h,
     'i#{X: 'j},
     'j,
     'k#{Y: 'l},
     'l,
     'm.
     ({getColor: 'a ref -> 'b,
       getX: 'c ref -> 'd,
       getY: 'e ref -> 'f,
       setColor: 'g ref -> 'h -> unit,
       setX: 'i ref -> 'j -> unit,
       setY: 'k ref -> 'l -> unit}
      -> {Color: string, X: real, Y: real} ref -> 'm)
     -> 'm]

val it = () : unit

val it = 1.0 : real

val it = 0.0 : real

val it = "Red" : string