source: Deliverables/D4.1/Word11.ml @ 84

Last change on this file since 84 was 84, checked in by mulligan, 11 years ago

Lots of work on tidying up code.

File size: 1.1 KB
Line 
1(*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*)
2(* FILENAME:    Word11.ml                                                    *)
3(* DESCRIPTION: An ADT implementing 11 bit words, and common operations      *)
4(*              on them.                                                     *)
5(* CREATED:     17/09/2010, Dominic Mulligan                                 *)
6(* BUGS:                                                                     *)
7(*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*)
8
9open Bit;;
10open Byte;;
11
12module type WORD11 =
13sig
14  type bit
15  type byte
16  type word11 = bit * bit * bit * byte
17
18  val to_string: word11 -> string
19end;;
20
21module Word11Functor(Bit: BIT)
22                    (Byte: BYTE
23                       with type bit = Bit.bit): WORD11
24  with type bit  = Bit.bit
25  and  type byte = Byte.byte =
26struct
27  type bit    = Bit.bit
28  type byte   = Byte.byte
29  type word11 = bit * bit * bit * byte
30
31  let to_string (b1,b2,b3,b) =
32    Bit.to_string b1 ^ Bit.to_string b2 ^ Bit.to_string b3 ^ Byte.to_string b
33end;;
34
35module Word11 = Word11Functor(Bit) (Byte);;
Note: See TracBrowser for help on using the repository browser.