On 28 Dec 2007, at 2:08 AM, Cristian Baboi wrote:
On Thu, 27 Dec 2007 20:46:24 +0200, Jonathan Cast
<[EMAIL PROTECTED]> wrote:
Preference doesn't come into it. By definition, the denotations
of Haskell functions are monotone continous functions on pointed
complete partial orders.
You seem to think that _|_ is defined in terms of operational
semantics. Haskell hasn't got an operational semantics, just a
denotational semantics that implementations must produce an
operational semantics to match with. _|_ is a denotational idea,
defined in terms of partial orders and least upper bounds. An
infinite list is the least upper bound of an infinite set of
partial lists, and the value of any function (such as \x -> x ==
x) applied to it is the least upper bound of the values of that
function applied to those partial lists.
By definition.
Questions:
The fact that Haskell functions are monotone continous functions on
pointed complete partial orders imply this ?
- every domain in Haskell is a "pointed complete partial order",
including domains of functions ?
Yes.
- the "structure" of a domain is preserved in the result when you
apply a Haskell function to it ?
The structure is preserved by every function, but that's a global
property, not really something that applies to a particular
application f x.
- every domain can be enumerated ?
There exist models of Haskell where the domain representing every
type is recursively enumerable, yes. But the critical thing for
finding a printing function is enumerating each value /once/, which
is harder to do. (I'm not aware of a way to do it).
jcc
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe