[MLton] Word<N>
Stephen Weeks
MLton@mlton.org
Mon, 14 Mar 2005 17:39:58 -0800
> I hope I am not missing something obvious but why is N > 1. Why not implement
> Word1? Binary arithmetic is universally useful... just now I was trying to
> write the code to compute a binary determinant of a binary matrix but alas
> Word1 is not there. Maybe it was left out to keep it symmetric with the Int
> case when Int1 would not make much sence. But word1 does...
There is no good reason why Word1 isn't there. Until it is, if you're
willing to live without source-level constants (0w0, 0w1), it is easy
to implement yourself.
structure Word1: WORD =
struct
datatype word = W0 | W1
val op + =
fn (W0, W0) => W0
| (W0, W1) => W1
| (W1, W0) => W1
| (W1, W1) => W0
...
end
Or, you could implement it much as we implement the other unusual word
sizes, by embedding in a larger word size, Word8.word probably being
the right choice.