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. very detailed monad tutorials (Michael Vanier)
2. Man/dir/help pages for haskell? (Kevin Burke)
3. Re: Man/dir/help pages for haskell? (Magnus Therning)
4. hClose: illegal operation (handle is finalized) and/or
<<loop>> (Travis Erdman)
5. Re: hClose: illegal operation (handle is finalized) and/or
<<loop>> (Yitzchak Gale)
6. Re: Man/dir/help pages for haskell? (Daniel Fischer)
7. 2 Questions: mutable data and copying results (C Gosch)
8. Re: 2 Questions: mutable data and copying results (Johan Tibell)
----------------------------------------------------------------------
Message: 1
Date: Mon, 16 Aug 2010 20:46:04 -0700
From: Michael Vanier <[email protected]>
Subject: [Haskell-beginners] very detailed monad tutorials
To: [email protected]
Message-ID: <[email protected]>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Hi everyone,
I've been writing a bunch of in-depth monad tutorials that I thought
some of you might find useful. So far there are six, with at least
three more planned. Here are the links:
Part 1 (Basics): http://mvanier.livejournal.com/3917.html
Part 2 (>>= and return): http://mvanier.livejournal.com/4305.html
Part 3 (The monad laws): http://mvanier.livejournal.com/4586.html
Part 4 (The Maybe and list monads): http://mvanier.livejournal.com/4647.html
Part 5 (Error-handling monads, part 1):
http://mvanier.livejournal.com/5103.html
Part 6 (Error-handling monads, part 2):
http://mvanier.livejournal.com/5343.html
The next ones will deal with state monads. I would love to get some
feedback on these.
Cheers,
Mike
------------------------------
Message: 2
Date: Mon, 16 Aug 2010 21:01:19 -0700
From: Kevin Burke <[email protected]>
Subject: [Haskell-beginners] Man/dir/help pages for haskell?
To: [email protected]
Message-ID: <[email protected]>
Content-Type: text/plain; charset="us-ascii"
Hello,
I've been learning Haskell by working through the O'Reilly book, but a lot
of the coding I do is offline. One thing that's been really helpful in other
languages are the terminal instructions and detail for functions. Is there
something similar for Haskell? I know I can type :help at the prompt but that
only gives you info on the broad commands.
Thanks for your help,
Kevin
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
http://www.haskell.org/pipermail/beginners/attachments/20100816/16d7e249/attachment-0001.html
------------------------------
Message: 3
Date: Tue, 17 Aug 2010 06:39:15 +0100
From: Magnus Therning <[email protected]>
Subject: Re: [Haskell-beginners] Man/dir/help pages for haskell?
To: [email protected]
Message-ID: <[email protected]>
Content-Type: text/plain; charset="utf-8"
On 17/08/10 05:01, Kevin Burke wrote:
> Hello,
> I've been learning Haskell by working through the O'Reilly book, but a lot
> of the coding I do is offline. One thing that's been really helpful in other
> languages are the terminal instructions and detail for functions. Is there
> something similar for Haskell? I know I can type :help at the prompt but
> that only gives you info on the broad commands.
I would suggest installing the haddock documentation for all
packages/modules
you use. Depending on your system that may already be the case (e.g. Arch),
or you may have to install separate document packages (e.g. Debian). If you
install manually, using 'cabal', then there really ought to be some way of
also compiling the docs and installing them.
/M
--
Magnus Therning (OpenPGP: 0xAB4DFBA4)
magnusï¼ therningï¼org Jabber: magnusï¼ therningï¼org
http://therning.org/magnus identi.ca|twitter: magthe
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 262 bytes
Desc: OpenPGP digital signature
Url :
http://www.haskell.org/pipermail/beginners/attachments/20100817/5c0720b0/signature-0001.bin
------------------------------
Message: 4
Date: Tue, 17 Aug 2010 01:58:12 -0700 (PDT)
From: Travis Erdman <[email protected]>
Subject: [Haskell-beginners] hClose: illegal operation (handle is
finalized) and/or <<loop>>
To: [email protected]
Message-ID: <[email protected]>
Content-Type: text/plain; charset=us-ascii
I read in some data from a file (via decodeFile), process it, and write the
result back to a file. My last line of code is ....
encodeFile (filename++".sol") (gametype,gstree,newiterlist,newstamplist,result)
and it is all of the sudden now causing this run-time error:
mincfr: kclv5.sol: hClose: illegal operation (handle is finalized)
It has been working fine for quite a while, but now quite mysteriously gives
this error. (But obviously I have been heavily tinkering with the processing
part of the program).
If I remove the encodeFile line and instead ...
putStrLn $ show result
I get this run-time error:
<<loop>>
Help?
thanks,
Travis
------------------------------
Message: 5
Date: Tue, 17 Aug 2010 13:09:50 +0300
From: Yitzchak Gale <[email protected]>
Subject: Re: [Haskell-beginners] hClose: illegal operation (handle is
finalized) and/or <<loop>>
To: Travis Erdman <[email protected]>
Cc: [email protected]
Message-ID:
<[email protected]>
Content-Type: text/plain; charset=ISO-8859-1
Travis Erdman wrote:
> encodeFile (filename++".sol")
> (gametype,gstree,newiterlist,newstamplist,result)
>
> mincfr: kclv5.sol: hClose: illegal operation (handle is finalized)
That is a confusing error message caused by a bug in GHC
that was just reported a few days ago. The GHC team is
fixing it.
> putStrLn $ show result
>
> <<loop>>
That is the *real* error message.
It means that where you define result, you refer to result
also on the right-hand side in a way that is an endless
loop instead of well-behaved recursion.
We would have to see more of your code to be able to
say much more.
Regards,
Yitz
------------------------------
Message: 6
Date: Tue, 17 Aug 2010 12:40:38 +0200
From: Daniel Fischer <[email protected]>
Subject: Re: [Haskell-beginners] Man/dir/help pages for haskell?
To: [email protected]
Message-ID: <[email protected]>
Content-Type: text/plain; charset="utf-8"
On Tuesday 17 August 2010 07:39:15, Magnus Therning wrote:
> On 17/08/10 05:01, Kevin Burke wrote:
> > Hello,
> > I've been learning Haskell by working through the O'Reilly book, but a
> > lot of the coding I do is offline. One thing that's been really
> > helpful in other languages are the terminal instructions and detail
> > for functions. Is there something similar for Haskell? I know I can
> > type :help at the prompt but that only gives you info on the broad
> > commands.
>
> I would suggest installing the haddock documentation for all
> packages/modules
> you use. Depending on your system that may already be the case (e.g.
> Arch), or you may have to install separate document packages (e.g.
> Debian). If you install manually, using 'cabal', then there really
> ought to be some way of also compiling the docs and installing them.
Set
documentation: True
in ~/.cabal/config
to automatically build local docs for each installed package.
Also it might be a good idea to set
library-profiling: True
there.
------------------------------
Message: 7
Date: Tue, 17 Aug 2010 14:34:15 +0200
From: C Gosch <[email protected]>
Subject: [Haskell-beginners] 2 Questions: mutable data and copying
results
To: [email protected]
Message-ID:
<[email protected]>
Content-Type: text/plain; charset="iso-8859-1"
Hello to all Haskell experts!
I have two more beginner questions: I ran into texts mentioning types of
"mutable" data.
Does that mean the data is actually changed in place? How would I go about
implementing such a data type,
as I expect much higher performance in some applications? Do I do that with
the Foreign module and Ptr
types?
The second question is this: say I have some functions working with a data
type, say a graph.
Some of them might want to change the graph and return a new graph as a
result.
If they change say only one graph node, it would be extremely bad for
performance if the whole graph got copied
any time such a change takes place. Is the compiler smart enough to make the
code only copy the parts
that have changed (copying lazily, so to speak)? Is that even possible?
Thank you in advance for any hint!
Christian
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
http://www.haskell.org/pipermail/beginners/attachments/20100817/caef149b/attachment-0001.html
------------------------------
Message: 8
Date: Tue, 17 Aug 2010 14:58:47 +0200
From: Johan Tibell <[email protected]>
Subject: Re: [Haskell-beginners] 2 Questions: mutable data and copying
results
To: C Gosch <[email protected]>
Cc: [email protected]
Message-ID:
<[email protected]>
Content-Type: text/plain; charset="iso-8859-1"
Hi Christian!
On Tue, Aug 17, 2010 at 2:34 PM, C Gosch <[email protected]> wrote:
> I have two more beginner questions: I ran into texts mentioning types of
> "mutable" data.
> Does that mean the data is actually changed in place? How would I go about
> implementing such a data type,
> as I expect much higher performance in some applications? Do I do that with
> the Foreign module and Ptr
> types?
>
Yes, by mutable data we mean data that changes in place. There are several
ways to use mutable data in Haskell: mutable variables and arrays in the ST
monad, IORefs, MVars (for concurrent access), and Ptrs (although these
should mostly be used for foreign function calls).
> The second question is this: say I have some functions working with a data
> type, say a graph.
> Some of them might want to change the graph and return a new graph as a
> result.
> If they change say only one graph node, it would be extremely bad for
> performance if the whole graph got copied
> any time such a change takes place. Is the compiler smart enough to make
> the code only copy the parts
> that have changed (copying lazily, so to speak)? Is that even possible?
>
Since the graph is immutable most of the nodes in the new graph are shared
with nodes in the old graph. This is know as path copying and is everywhere
persistent ("immutable") data structures are used. Updating a data structure
(e.g. a tree) typically requires O(log n) nodes to be copied.
-- Johan
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
http://www.haskell.org/pipermail/beginners/attachments/20100817/7d59fdb3/attachment.html
------------------------------
_______________________________________________
Beginners mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/beginners
End of Beginners Digest, Vol 26, Issue 34
*****************************************