Send Beginners mailing list submissions to
[email protected]
To subscribe or unsubscribe via the World Wide Web, visit
http://www.haskell.org/mailman/listinfo/beginners
or, via email, send a message with subject or body 'help' to
[email protected]
You can reach the person managing the list at
[email protected]
When replying, please edit your Subject line so it is more specific
than "Re: Contents of Beginners digest..."
Today's Topics:
1. Re: (Implicit) equality testing using multiple function
definitions (Brandon Allbery)
2. Combining GHC library and Platform documentation
(Mister Globules)
3. Re: Combining GHC library and Platform documentation
(Magnus Therning)
----------------------------------------------------------------------
Message: 1
Date: Mon, 18 Jul 2011 21:47:26 -0400
From: Brandon Allbery <[email protected]>
Subject: Re: [Haskell-beginners] (Implicit) equality testing using
multiple function definitions
To: Tom Murphy <[email protected]>
Cc: beginners <[email protected]>
Message-ID:
<CAKFCL4XSU7HxB9kzSMHutJ-GYDrdqUe5baF=4v3=nbkuft4...@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"
On Mon, Jul 18, 2011 at 20:44, Tom Murphy <[email protected]> wrote:
> Hi list!
> When I define an algebraic datatype without an instance for Eq,
> I'm obviously unable to use the (==) function on it. I can
> pattern-match with a series of function definitions (f [] = False; f x
> = True) on the expression, though. Why is that?
> I understand that in the second case I'm not literally using the
> (==) function, but it seems like there would be instances where you'd
> intentionally not want to be able to test for equality, and
> pattern-matching with multiple function definitions circumvents that.
>
(==) is about value comparison; pattern matching is about constructor
comparison, which is on a higher semantic level as value equality is only
meaningful within the same constructor.
"Circumvents"? You make it sound like the point of typeclasses is to
restrict things. In fact, the point is to *undo* the restrictions
necessarily introduced by polymorphism: if you don't know the type of
something, you don't know what you can do with it. Typeclasses let us say
"this can be any type, but we need to be able to do <x> with it". They
don't circumvent; they *add*.
Are you approaching this from an OO perspective, where you can throw
messages at anything and hope they stick? Haskell, ML, and similar
languages are based on strong types: if you know the type, you know
*everything* about its possible values. Dynamic message passing means you
can send a message to an object that doesn't know what to do with it,
producing a runtime error; the whole point of strong typing is to make using
an operation not supported by a given type a *compile time* error. That is
not to say there aren't hybrid systems (see O'Caml) or static strongly-typed
OO systems (see research papers about OOHaskell; this hasn't been followed
up directly, although it's the basis for a number of other research topics).
But in general, the design of a Haskell or SML program is in designing
types that reflect the problem space, such that (a) if you do something that
isn't quite right, it is a compile-time error instead of a runtime error,
and (b) the types of functions are themselves the solutions to the problems
(that is, you would like the implementation for some function to be obvious
from its type; when it isn't, this usually means some kind of dependent
typing is going on, which Haskell can't express directly, or that you
otherwise haven't actually captured the problem space with your types).
--
brandon s allbery [email protected]
wandering unix systems administrator (available) (412) 475-9364 vm/sms
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://www.haskell.org/pipermail/beginners/attachments/20110718/1aa1e521/attachment-0001.htm>
------------------------------
Message: 2
Date: Tue, 19 Jul 2011 05:51:31 +0000 (UTC)
From: Mister Globules <[email protected]>
Subject: [Haskell-beginners] Combining GHC library and Platform
documentation
To: [email protected]
Message-ID: <[email protected]>
Content-Type: text/plain; charset=us-ascii
Hi,
I followed the instructions to install GHC from pre-compiled binaries and the
Haskell Platform from source
(http://www.vex.net/~trebla/haskell/haskell-platform.xhtml).
It works fine (i.e. ghc, ghci, etc.), but the GHC and platform library
documentation are in different directories, even when I give the same --prefix
and --docdir argument to their respective configure scripts. Also, the GHC
index.html file only refers to its own libraries; there's no mention of the
other libraries included with the platform.
Is there a simple way to create one index.html file with links to all the
documentation?
As a bonus, is it possible to do the same thing with libraries that I install
with cabal?
- Globules
P.S.
This is on Kubuntu. I'm installing it myself, rather than using apt-get, in
order to get the most recent version of the platform.
------------------------------
Message: 3
Date: Tue, 19 Jul 2011 10:07:18 +0200
From: Magnus Therning <[email protected]>
Subject: Re: [Haskell-beginners] Combining GHC library and Platform
documentation
To: [email protected]
Message-ID: <20110719080718.GB4584@ohann>
Content-Type: text/plain; charset="us-ascii"
On Tue, Jul 19, 2011 at 05:51:31AM +0000, Mister Globules wrote:
> Hi,
>
> I followed the instructions to install GHC from pre-compiled binaries and the
> Haskell Platform from source
> (http://www.vex.net/~trebla/haskell/haskell-platform.xhtml).
>
> It works fine (i.e. ghc, ghci, etc.), but the GHC and platform library
> documentation are in different directories, even when I give the same --prefix
> and --docdir argument to their respective configure scripts. Also, the GHC
> index.html file only refers to its own libraries; there's no mention of the
> other libraries included with the platform.
>
> Is there a simple way to create one index.html file with links to all the
> documentation?
>
> As a bonus, is it possible to do the same thing with libraries that I install
> with cabal?
>
> - Globules
>
>
> P.S.
>
> This is on Kubuntu. I'm installing it myself, rather than using apt-get, in
> order to get the most recent version of the platform.
Hopefully you have a script installed, as part of ghc itself, called
gen_contents_index. It's what we in Arch use to update the index.html
file when installing/removing Haskell packages. I'm not sure it
already supports privately installed packages, but hopefully it won't
be too difficult to modify.
/M
--
Magnus Therning OpenPGP: 0xAB4DFBA4
email: [email protected] jabber: [email protected]
twitter: magthe http://therning.org/magnus
I invented the term Object-Oriented, and I can tell you I did not have
C++ in mind.
-- Alan Kay
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
URL:
<http://www.haskell.org/pipermail/beginners/attachments/20110719/e8dd429a/attachment-0001.pgp>
------------------------------
_______________________________________________
Beginners mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/beginners
End of Beginners Digest, Vol 37, Issue 36
*****************************************