On Mon, Feb 16, 2009 at 8:13 PM, wren ng thornton <w...@freegeek.org> wrote:

> Isaac Dupree wrote:
>
>> Natural numbers under min don't form a monoid, only naturals under max do
>> (so you can have a zero element)
>>
>
> Though, FWIW, you can use Nat+1 with the extra value standing for Infinity
> as the identity of min (newtype Min = Maybe Nat).


Indeed, as well as you can use lazy naturals with infinity as the unit:

data Nat = Zero | Succ Nat
infinity = Succ infinity
min Zero _ = Zero
min _ Zero = Zero
min (Succ x) (Succ y) = Succ (min x y)


>
>
> I bring this up mainly because it can be helpful to explain how we can take
> the "almost monoid" of m...@nat and monoidize it. Showing how this is
> similar to and different from m...@nat is enlightening. Showing the min
> monoid on negative naturals with 0 as the identity, and no need for the
> "special" +1 value, would help drive the point home. (Also, the min/max
> duality is mirrored in intersection/union on sets where we need to introduce
> either the empty set (usually trivial) or the universal set (usually
> overlooked).)
>
> Or maybe that would be better explained in a reference rather than the main
> text.
>
> --
> Live well,
> ~wren
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe@haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to