00:09:56 -!- lindi- has quit (Remote closed the connection).
00:15:32 -!- GregorR_ has joined.
00:32:38 -!- lindi- has joined.
00:45:00 <ihope> So I have AltGr AND dead keys?
01:10:05 -!- GregorR__ has quit (SendQ exceeded).
01:10:45 <SimonRC> My technique for learning Haskell was a sort of Esme Wetherwax technique...
01:11:01 <SimonRC> I read every Haskel tutorial I could find for info.
01:11:45 <SimonRC> Using the ghc library docs page.
01:12:39 <SimonRC> The trick with monads is to read tutorials, look at the types, try to write something, look at the types, keep trying to push the concepts into your head so they all stay in at once, look at the types, etc...
01:13:11 <SimonRC> When learning monads, you go through 3 stages.
01:13:56 <ihope> 1. "Dang, monads are complex." 2. "Oh, I get it now!"
01:14:23 <SimonRC> First everything is very simple. A monad is a type of kind * -> * which implements the >>= and return functions with the right properties...
01:15:42 <SimonRC> Next, everything is very complicated, trying to fit [], Maybe, State Int, IO, etc all into the same mental category, trying to work out which operations can be performeda and which can't.
01:16:00 <SimonRC> Finally, everything is very simple. A monad is a type of kind * -> * which implements the >>= and return functions with the right properties.
01:17:03 <ihope> A monad is a magic container for values such that you can put a value into the container, you can stick a function through the container to act on its contained values, and you can turn a container of containers into a container.
01:17:05 <SimonRC> StateT :: * -> (* -> *) -> *
01:17:24 <SimonRC> but it's also a way of sequentialising actions.
01:17:50 <ihope> I've never thought of it as anything but a container.
01:17:50 <SimonRC> Monads were added to Haskell for the express purpose of creating the IO monad.
01:18:02 <ihope> Well, I must disappear now.
01:18:25 <SimonRC> before that, there was some godawful Lazy-K-like thing called a dialogue.
01:35:39 <ihope> What was the dialogue things?
01:35:58 <SimonRC> Like in Lazy-K (the esolang).
01:36:13 <SimonRC> something about [String]->[String]
01:36:37 <SimonRC> An awful system, compared to monadic IO.
01:37:18 <SimonRC> Actually, in ghc there is a RealWorld type, like that in, erm, Clean.
01:37:56 <SimonRC> It is related to the ST monad, and unsafeIOtoST, or whatever it's called.
01:38:32 <ihope> data RealWorld -- <wired into compiler>
01:44:23 -!- calamari has joined.
02:10:31 -!- CXI has quit (Connection timed out).
02:23:46 -!- ihope has quit ("Chatzilla 0.9.69.1 [Firefox 1.5.0.1/2006011112]").
02:58:20 -!- calamari has quit ("Leaving").
05:23:23 -!- Sgeo has quit.
05:46:44 -!- Arrogant has joined.
06:14:03 -!- Arrogant has quit (niven.freenode.net irc.freenode.net).
06:14:05 -!- lament_ has quit (niven.freenode.net irc.freenode.net).
06:15:11 -!- Arrogant has joined.
06:15:11 -!- lament_ has joined.
06:57:08 -!- Arrogant has quit ("Leaving").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
10:04:36 -!- nooga has joined.
11:07:03 -!- kipple has joined.
11:20:24 <nooga> valid SADOL code ;p
12:33:59 -!- jix has joined.
12:40:20 <jix> moin nooga
14:25:32 -!- jix has quit ("This computer has gone to sleep").
14:25:47 -!- jix has joined.
14:34:23 -!- jix has quit (Read error: 145 (Connection timed out)).
15:10:09 -!- nooga has quit.
15:24:18 -!- CXI has joined.
16:42:43 -!- ihope has joined.
18:13:02 -!- twobitsprite has left (?).
18:23:01 -!- jix has joined.
18:53:06 -!- fizzie has quit (niven.freenode.net irc.freenode.net).
18:54:04 -!- fizzie has joined.
18:54:20 -!- fizzie has quit (Remote closed the connection).
18:55:54 -!- fizzie has joined.
19:06:20 -!- fizzie has quit (niven.freenode.net irc.freenode.net).
19:06:31 -!- fizzie has joined.
19:13:04 -!- GregorR__ has joined.
19:25:03 -!- GregorR__ has quit (Remote closed the connection).
19:25:14 -!- GregorR__ has joined.
19:26:13 -!- GregorR__ has quit (Remote closed the connection).
19:27:02 -!- GregorR__ has joined.
19:43:01 -!- fuse has joined.
19:43:28 <fuse> what's going on?
19:55:34 -!- GregorR__ has quit (Remote closed the connection).
19:59:10 <ihope> GregorR's popping in and out.
20:00:02 <fuse> did you already program in some imperative language before learning haskell?
20:00:38 <fuse> how was the transition?
20:01:02 <ihope> Well, once you learn functional programming in general, Haskell's a piece of cake.
20:01:16 <ihope> As long as you have a good tutorial, that is...
20:01:38 <fuse> ok. i think i mentioned i'm currently trying to learn scheme. the problem is, i don't yet see myself using it in a non-toy project.
20:01:56 <fuse> and i heard many times how it's supposed to make you more productive etc etc.
20:02:02 <ihope> Well, choose a project.
20:02:18 <ihope> If Scheme's good for it, stay with it. Otherwise, find some other language.
20:02:40 <fuse> and i think i'm at a point where i grok the basic idea.
20:03:07 <fuse> ah well. i shall persevere.
20:38:25 -!- GregorR has quit (SendQ exceeded).
20:38:50 <ihope> SendQ exceeded? Oh noes!
20:43:35 -!- Sgeo has joined.
20:49:29 -!- sekhmet has quit (niven.freenode.net irc.freenode.net).
20:49:29 -!- sp3tt has quit (niven.freenode.net irc.freenode.net).
20:49:31 -!- fuse has quit ("ircII EPIC4-2.0 -- Are we there yet?").
20:50:27 -!- sp3tt_ has joined.
20:51:19 -!- sekhmet has joined.
20:51:19 -!- sp3tt has joined.
20:52:10 -!- sekhmet has quit (niven.freenode.net irc.freenode.net).
20:52:10 -!- sp3tt has quit (niven.freenode.net irc.freenode.net).
20:54:12 -!- sp3tt has joined.
20:54:30 -!- sp3tt has quit (Success).
20:58:13 -!- sekhmet has joined.
21:10:45 -!- jix has left (?).
22:38:42 -!- ihope has quit (Read error: 110 (Connection timed out)).
22:46:26 -!- ihope has joined.
23:04:22 -!- kipple has quit (Read error: 110 (Connection timed out)).
23:07:46 <ihope> Non-kipple drives out kipple?
23:33:12 -!- pgimeno has quit (Read error: 104 (Connection reset by peer)).
23:49:22 -!- pgimeno has joined.
23:50:54 -!- CXI has quit (Connection timed out).