<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE message PUBLIC
  "-//MLarc//DTD MLarc output files//EN"
  "../../mlarc.dtd"[
  <!ATTLIST message
    listname CDATA #REQUIRED
    title CDATA #REQUIRED
  >
]>

  <?xml-stylesheet href="../../mlarc.xsl" type="text/xsl"?>


<message 
  url="2002/07/cba22a6889e4519e882d4ef4c384fd14"
  from="Nicolas FRANCOIS &lt;nicolas.francois@f...&gt;"
  author="Nicolas FRANCOIS"
  date="2002-07-03T23:08:07"
  subject="Re: [Caml-list] Objects or modules ?"
  prev="2002/07/2a5c2d0f0537bc1135d83594af69a060"
  next="2002/07/371811a059d4c9d0b4de447e979f5e7b"
  prev-in-thread="2002/06/3d20e1e91daaae8d3c2f51f4f4c90063"
  next-in-thread="2002/07/e34cafa33a7d9b8d542ed3b6c2a034d4"
  prev-thread="2002/06/2f06726dec7ab299cbcd92b4eb602296"
  next-thread="2002/06/a545216e545c24d6dd77ca80d998d71f"
  root="../../"
  period="month"
  listname="caml-list"
  title="Archives of the Caml mailing list">

<thread subject="[Caml-list] Objects or modules ?">
<msg 
  url="2002/06/50bf476e96f83c1a09039d54e2b11424"
  from="Nicolas FRANCOIS &lt;nicolas.francois@f...&gt;"
  author="Nicolas FRANCOIS"
  date="2002-06-29T01:06:48"
  subject="[Caml-list] Objects or modules ?">
<msg 
  url="2002/07/4a2d36c0bcad337be8321968719e2efd"
  from="Nicolas FRANCOIS &lt;nicolas.francois@f...&gt;"
  author="Nicolas FRANCOIS"
  date="2002-07-01T01:10:57"
  subject="Re: [Caml-list] Objects or modules ?">
</msg>
<msg 
  url="2002/07/9ae5bda85caec3e5e6a0f5988c05d8db"
  from="Francois Pottier &lt;francois.pottier@i...&gt;"
  author="Francois Pottier"
  date="2002-07-02T17:24:24"
  subject="Re: [Caml-list] Objects or modules ?">
</msg>
<msg 
  url="2002/06/50a4ce1c89f70c809a98d6f62b7fda15"
  from="Chris Hecker &lt;checker@d...&gt;"
  author="Chris Hecker"
  date="2002-06-29T06:54:59"
  subject="Re: [Caml-list] Objects or modules ?">
<msg 
  url="2002/06/d97aa6e9d1b9c855e486911430bb90ae"
  from="Blair Zajac &lt;blair@o...&gt;"
  author="Blair Zajac"
  date="2002-06-30T06:45:58"
  subject="Re: [Caml-list] Objects or modules ?">
</msg>
</msg>
<msg 
  url="2002/06/3d20e1e91daaae8d3c2f51f4f4c90063"
  from="Markus Mottl &lt;markus@o...&gt;"
  author="Markus Mottl"
  date="2002-06-29T10:23:00"
  subject="Re: [Caml-list] Objects or modules ?">
<msg 
  url="2002/07/cba22a6889e4519e882d4ef4c384fd14"
  from="Nicolas FRANCOIS &lt;nicolas.francois@f...&gt;"
  author="Nicolas FRANCOIS"
  date="2002-07-03T23:08:07"
  subject="Re: [Caml-list] Objects or modules ?">
<msg 
  url="2002/07/e34cafa33a7d9b8d542ed3b6c2a034d4"
  from="Nicolas FRANCOIS &lt;nicolas.francois@f...&gt;"
  author="Nicolas FRANCOIS"
  date="2002-07-04T23:54:23"
  subject="Re: [Caml-list] Objects or modules ?">
</msg>
</msg>
</msg>
</msg>
</thread>

<contents>
Le Sat, 29 Jun 2002 12:22:52 +0200 Markus Mottl &lt;markus@oefai.at&gt; a écrit
:

&gt; You might also want to take a look at Christophe Raffalli's library for
&gt; formal and numerical calculus to grab a few ideas:
&gt; 
&gt;   http://lama-d134.univ-savoie.fr/sitelama/Membres/pages_web/RAFFALLI/formel.html

OK, I got it. If I really understand this, this is a pre-project for FOC.
Am I right ?

Now that I adapted it to OCaml 3.04 (Streams not recognized by standard
OCaml now), I have a new problem : this is a definition for a quotient
ring (there's a similar one for a quotient field in case the ideal is
primitive) ;

(in algebra.mli)
module Quotient :
  functor(R : Euclidian_Ring) -&gt;
    functor(Elt : One_element with type elem = R.elem) -&gt;
      Ring with type elem = R.elem
  
(in algebra.ml)
module Quotient = 
  functor (R : Euclidian_Ring) -&gt; 
  functor (Elt : One_element with type elem = R.elem) -&gt;
  struct
    type elem = R.elem
    let zero = R.zero
    let one = R.one
    let t_of_int = R.t_of_int
    let (++) = R.(++)
    let (--) = R.(--)
    let ( ** ) = R.( ** )
    let (==) a b = R.(==) (R.(mod) (R.(--) a b) Elt.elt) R.zero
    let opp = R.opp
    let normalize x = R.(mod) (R.normalize x) Elt.elt
    let print x = R.print (normalize x)
    let write ch x = R.write ch (normalize x)
    let parse = R.parse
    let read = R.read
    let write_bin ch x = R.write_bin ch (normalize x)
    let read_bin = R.read_bin
    let conjugate = R.conjugate
  end

I'd like to use this functor to create a ring Z/pZ, providing a (possibliy
prime) integer p. My problem is : what is the correct way to use this ?

Thanks for reading.

\bye

-- 

                   Nicolas FRANCOIS
            http://nicolas.francois.free.fr
 A TRUE Klingon programmer does NOT comment his code
-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners

</contents>

</message>

