I need to correct one thing. The function:
isNewIntEq :: NewInt -> NewInt -> Bool
isNewIntEq x y = if (x - y) then False
else True
is incorrect. It should be:
isNewIntEq :: NewInt -> NewInt -> Bool
isNewIntEq (N x) (N y) = if (x - y) then False
else True
On Sep 7, 2006, at 12:20 PM, skaller wrote:
> ML modules do not do this: a module has a set of types
> (objects) and functions (arrows). The module
>
> Map
>
> in Ocaml is NOT a type. Map.t is a type .. and so is
>
> Map.elt
>
> There are two types here .. and it is the relations between
> then expressed by the (unstated!) relations between
> the functions of the module which actually characterise
> the typing. Note: *typing* is the word, not type:
> a Map is not a type, its a category.
On this point, I forgot to mention one thing. Haskell type classes
are more powerful than ML modules or OCaml functors because type
classes may be defined over all first-class types, including
functions. For example, the
class Functor f where
fun :: (a -> b) -> (f a -> f b)
instance Functor (r->) where
fun f g = f . g
--here r has type ( * -> * )
-Pete
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Felix-language mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/felix-language