diff --git a/.gitignore b/.gitignore index e660fd93d3196215552065b1e63bf6a2f393ed86..660ecff6e1f18e3aff01b2b65d6262ae5b958e83 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ bin/ +*.cmi +*.cmo diff --git a/Makefile b/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..c36511e5c40a56025429fd0b2a3422ce79a55284 --- /dev/null +++ b/Makefile @@ -0,0 +1,7 @@ +all: + ocamlc -c polynome.ml + ocamlc -c main.ml + ocamlc -o bin/main nums.cma polynome.cmo main.cmo +clean: + rm -f *.cm[iox] *~ .*~ #*# + rm -f bin/main diff --git a/main.ml b/main.ml new file mode 100644 index 0000000000000000000000000000000000000000..3bfe56edf60e7f9589cc60ae66248749b4054834 --- /dev/null +++ b/main.ml @@ -0,0 +1,2 @@ +(*projet AP Edouard Paris 2016*) +open Polynome;; diff --git a/polynome.ml b/polynome.ml new file mode 100644 index 0000000000000000000000000000000000000000..d547bb60db60c23794fd20c0c9d9ea08a08db6cf --- /dev/null +++ b/polynome.ml @@ -0,0 +1,22 @@ +(*Projet AP Edouard Paris 2016*) + +open Big_int;; + +module type Polynomes = + sig + type polynome + val print_pol: polynome -> string + end +;; + +module Polynome : Polynomes = + struct + type polynome = + |Null + |NotNull of big_int*int*polynome + let rec print_pol p = match p with + |Null -> "0" + |NotNull (coeff, degree, polynome)-> + (string_of_big_int coeff)^"X^"^(string_of_int degree)^"+"^(print_pol polynome) + end +;;