Hi all,
From the following code,
-------------------------------------------------
module type SPACE_TYPE =
sig
type vecteur
val base : vecteur list
val fgen : vecteur -> int
val string_vecteur : vecteur -> string
end;;
module E3D_SPACE : SPACE_TYPE =
struct
type vecteur = E1 | E2 | E3
let base = [E1; E2; E3]
let fgen vector = 1
let string_vecteur vector = match vector with
E1 -> "e1"
| E2 -> "e2"
| E3 -> "e3"
end ;;
---------------------------------------------------
I'd like to define a module EnD_SPACE for a basis of n elements
[E1;E2;..;En].
I would like to write something like
------------------------------
module type Int_TYPE =
sig
val p : int
end
module EnD_SPACE = functor (N : Int_TYPE) ->
struct
type vecteur = E1 | E2 | .. ( with N.p )
let base = [E1; E2; ... ]
let fgen vector = 1 (idem)
let string_vecteur vector = match vector with
E1 -> "e1"
| E2 -> "e2"
.......
end ;;
---------------------
cause module EnD_SPACE = functor ( n : int ) -> ... is not accepted.
How can i define vecteur, base and string_vecteur ?
Thanks in advance,
Christophe.