Luke Palmer <[email protected]> writes:
> 2009/2/17 Daryoush Mehrtash <[email protected]>
>> Is there a way to define a type with qualification on top of existing type
>> (e.g. prime numbers)? Say for example I want to define a computation that
>> takes a prime number and generates a string. Is there any way I can do
>> that in Haskell?
> You can by providing an abstraction barrier:
Or you can define:
newtype Prime = Prime Int -- 'Prime i' represents the i'th prime
This has the advantage that it is physically impossible to put a
non-prime value into the Prime data type. The disadvantage is that
if you somehow need the numerical value of the i'th prime, you need to
calculate it:
primes :: [Integer]
primes = 2 : sieve ...
instance show Prime where
show Prime i = show (primes!!i)
-k
--
If I haven't seen further, it is by standing in the footprints of giants
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe