00:00:00 --- log: started haskell/02.03.14 00:51:03 --- join: clausen (~andrew@210.49.198.98) joined #haskell 01:09:25 --- join: ChoJin (~ask@213.245.38.31) joined #haskell 02:20:03 --- join: pesco (~pesco@pD90044FD.dip.t-dialin.net) joined #haskell 02:46:03 --- quit: Jiriki (Read error: 104 (Connection reset by peer)) 02:46:05 --- join: Jiriki (sjh@207.164.213.97) joined #haskell 02:46:58 --- quit: ChoJin ("bye !!!") 02:49:37 --- quit: clausen ("send all money to /dev/clausen") 03:27:11 --- join: shapr (~user@p-c2fbab7e.easy.inet.fi) joined #haskell 03:32:16 --- quit: shapr ("urf") 03:32:56 --- join: shapr (~shae@p-c2fbab7e.easy.inet.fi) joined #haskell 04:06:55 http://simpsons.tvcentral.com.ar/lifeinhell/lih9.gif 04:08:24 :-) 04:08:44 that's one for the graduate students ;) 04:09:00 actually, that's one for me also, since I am without degree, and really wish I had one 04:09:21 So apply to do one? 04:11:54 yup 04:17:48 What's the phrase like "transitive closure" which means only the ones you reach when you go as far as possible? 04:20:53 eh? 04:22:34 If 1R2, 1R3, 1R4, 2R5, 2R6 then the transitive closure of R on 1 is {1,2,3,4,5,6}. I want the word for the operation that gives {3,4,5,6} 04:23:19 I don't know 04:23:26 I didn't get that far in math 04:23:50 OK 04:24:43 could it be upward closure? 04:24:56 written as "<=" 04:24:58 ? 04:25:42 Hmmm, not sure. I think I'll just write it another way 04:25:43 transitive 04:25:43 A relation R is transitive if x R y & y R z => x R z. 04:25:43 Equivalence relations, pre-, partial and total orders are all 04:25:43 transitive 04:26:40 2. In {domain theory}, given a {partially ordered 04:26:40 set}, D and a subset, X of D, the upward closure of X in D is 04:26:40 the union over all x in X of the sets of all d in D such that 04:26:40 x <= d. Thus the upward closure of X in D contains the 04:26:40 elements of X and any greater element of D. A set is "upward 04:26:40 there isn't a word for it that I know about 04:26:40 closed" if it is the same as its upward closure, i.e. any d 04:26:42 greater than an element is also an element. The downward 04:26:44 closure (or "left closure") is similar but with d <= x. A 04:26:46 downward closed set is one for which any d less than an 04:26:50 element is also an element. 04:26:52 ("<=" is written in {LaTeX} as {\subseteq} and the upward 04:26:54 closure of X in D is written \uparrow_\{D} X). 04:26:56 * shapr floods 04:28:01 maybe you could talk about the maximal elements in the transitive closure 04:28:37 upward closure is sort of what I want but not for the standard definition of <= 04:28:41 hi Heffalump! 04:28:52 * Igloo_ has just explained it in words, anyway 04:28:59 no, upward closure just gives the transitive closure on <= 04:29:25 Ooops, I misread it then 04:29:48 well, by the definition above it does, certainly 04:31:48 Igloo_: Can you elaborate how you got the {3,4,5,6} in your example above? 04:32:54 pesco: 1 -> {2,3,4}. 2 -> {5,6}. Thus by following the relation as far as possible we get {5,6,3,4} 04:33:22 Oh, ok. 04:34:07 Just call them leaves. :) 05:12:45 http://planetmath.org/ :P 05:13:16 A relation [$ \mathcal{R}$] on [$ A$] is transitive if and only if [$ \forall x,y,z \in A$] , [$ (x\mathcal{R}y \land y\mathcal{R}z) \rightarrow (x\mathcal{R}z)$] . 05:13:22 That's not the clearest of entries on there. 05:15:46 --- quit: Heffalump (Read error: 113 (No route to host)) 05:27:40 --- join: Igloo (~igloo@c93.keble.ox.ac.uk) joined #haskell 05:28:58 --- quit: Igloo_ (Read error: 113 (No route to host)) 05:40:56 --- quit: Igloo (Remote closed the connection) 05:44:51 --- quit: pesco (carter.openprojects.net irc.openprojects.net) 05:46:05 --- join: pesco (~pesco@pD90044FD.dip.t-dialin.net) joined #haskell 06:41:48 --- join: Yurik (~yrashk@gw.telcos.net.ua) joined #haskell 06:44:28 --- join: Igloo (~igloo@c93.keble.ox.ac.uk) joined #haskell 06:58:30 Can someone explain me how to use the ST monad that ships with GHC and Hugs? 06:59:15 Their documentation appears to be very minimal... 07:14:33 --- quit: Igloo (Read error: 113 (No route to host)) 07:47:43 --- quit: shapr ("Client Exiting") 07:49:52 --- join: shapr (~user@p-c2fbab7e.easy.inet.fi) joined #haskell 07:56:52 --- quit: Yurik (Remote closed the connection) 07:58:01 --- part: shapr left #haskell 07:58:03 --- join: shapr (~user@p-c2fbab7e.easy.inet.fi) joined #haskell 08:08:12 --- join: Igloo (~igloo@c93.keble.ox.ac.uk) joined #haskell 08:08:56 --- join: Yurik (~yrashk@gw.telcos.net.ua) joined #haskell 08:15:52 --- join: samx (~sam@dyn-M-228.yhteys.mtv3.fi) joined #haskell 08:30:27 --- join: Igloo_ (~igloo@c93.keble.ox.ac.uk) joined #haskell 08:30:27 --- quit: Igloo (Read error: 104 (Connection reset by peer)) 08:32:40 pesco: what do you want to do with it? 08:33:11 Implement RC4 08:33:16 :) 08:33:30 ok, at a slightly lower level, what are you having trouble with? 08:33:31 :-) 08:33:39 Let me think for a minute... 08:34:32 I don't know how to use the STRef stuff. 08:35:05 In partuicular, what do STRefs type arguments mean? 08:35:10 data STRef s a 08:35:13 --- join: Heffalump (ganesh@munchkin.comlab.ox.ac.uk) joined #haskell 08:35:17 What are s and a? 08:35:29 --- quit: shapr ("tribes2 comes early today") 08:35:57 Also, in ST s a, I assumed s would be the type of my state but I'm not sure anymore. 08:36:50 What's more, I'm confused by the statement 08:36:54 runST :: forall a. (forall s. ST s a) -> a 08:37:04 What do the forall's mean? 08:37:40 * Ganesh is suffering connectivity issues so might disappear randomly 08:37:51 ok 08:38:05 s is a "dummy" variable which ensures that you don't mix up two different state computations 08:38:20 hm 08:38:21 which is what the inner forall does too 08:38:53 I've never seen such a forall, but I'll take it as that right now. 08:41:46 the "a" in STRef s a is the type of the state 08:41:58 I see 08:42:07 you can just ignore the s, essentially 08:42:25 if you mix up STRefs between two different state computations, the type checker will complain at you 08:42:47 Aha. 08:43:32 the "a" in ST s a is the type of the x you get if you have a "x <- (something of type ST s a)" 08:43:46 Ok, I thought so. 08:44:06 Let me try to produce a simple example... 08:45:19 As state, I want an array of Ints, and two Counters, i and j. 08:46:28 right 08:46:30 do s <- newSTRef (listArray (0,255) [0..255]) 08:46:48 i <- newSTRef 0 08:46:54 j <- newSTRef 0 08:47:00 correct? 08:47:22 --- join: tmoertel (~chatzilla@pa-mtlebanon2a-68.pit.adelphia.net) joined #haskell 08:48:51 looks good 08:49:05 * Heffalump wishes his internet connectivity would behave 08:50:05 wonderful 08:51:21 Now, to increment i, I would have to do 08:51:48 modifySTRef i (+1) 08:52:05 assuming modifySTRef exists, that sounds good 08:52:35 This is starting to be fun. Yes, modifySTRef is mentioned in the docs, so it better exist! 08:52:44 cool :-) 08:53:23 Are you looking at the documentation? They say 08:53:24 data STArray s ix elt -- mutable arrays in state thread s 08:53:30 -- indexed by values of type ix 08:53:34 -- containing values of type a. 08:53:35 oh, that sounds useful 08:53:37 no, I'm not 08:53:44 probably means values of type elt 08:53:51 Thank you. 08:53:52 :) 08:54:10 What would elt stand for? 08:54:16 element 08:54:21 oh, ok. 08:54:53 Great, thank you alot, I'll see if I can write my program now. 08:55:16 * pesco runs off to his other desktop 09:14:55 --- join: Verbed (verbed@24.70.83.145) joined #haskell 09:38:06 --- quit: LoganH (Connection timed out) 10:23:49 A new question: Is it safe to assume that (255::Word8)+1 == 0? 10:34:45 --- quit: samx (Read error: 110 (Connection timed out)) 10:48:49 --- log: started haskell/02.03.14 10:48:49 --- join: clog (nef@bespin.org) joined #haskell 10:48:49 --- topic: 'Have a library you'd like to donate, or one you'd like to see? Talk to us at http://sf.net/projects/haskell-libs/ | we be loggin' http://tunes.org/~nef/logs/haskell/ | welcome to the Haskell Dojo | julien is up to white belt! jewel and shapr are up to green belt!' 10:48:49 --- topic: set by shapr on [Wed Jan 30 14:36:17 2002] 10:48:49 --- names: list (clog arete smkl Ganesh Jiriki pesco Yurik Igloo_ Heffalump tmoertel Verbed juhp_ jlb) 11:38:57 --- join: ChoJin (~ask@cha213245038031.chello.fr) joined #haskell 11:50:52 --- join: samx (~sam@dyn-M-124.yhteys.mtv3.fi) joined #haskell 13:35:54 --- join: clausen (~andrew@c17997.eburwd3.vic.optusnet.com.au) joined #haskell 13:41:03 --- quit: tmoertel ("ChatZilla 0.8.5 [Mozilla rv:0.9.8+/20020207]") 14:12:42 --- quit: clausen ("send all money to /dev/clausen") 14:34:47 --- part: Verbed left #haskell 15:36:01 --- quit: Ganesh (carter.openprojects.net irc.openprojects.net) 15:36:01 --- quit: Igloo_ (carter.openprojects.net irc.openprojects.net) 15:36:01 --- quit: Heffalump (carter.openprojects.net irc.openprojects.net) 15:38:11 --- join: Heffalump (ganesh@munchkin.comlab.ox.ac.uk) joined #haskell 15:38:11 --- join: Igloo_ (~igloo@c93.keble.ox.ac.uk) joined #haskell 15:38:11 --- join: Ganesh (ganesh@urchin.earth.li) joined #haskell 16:18:23 --- quit: ChoJin ("bye !!!") 17:07:45 --- nick: juhp_ -> juhp 17:29:43 --- quit: pesco (Remote closed the connection) 20:06:05 --- quit: samx (Read error: 110 (Connection timed out)) 21:08:13 --- quit: smkl (Read error: 104 (Connection reset by peer)) 21:08:14 --- join: smkl (~sami@glubimox.yok.utu.fi) joined #haskell 21:21:56 --- join: jemfinch (~jemfinch@rnie-99-43.resnet.ohio-state.edu) joined #haskell 21:25:57 --- quit: jemfinch (Client Quit) 21:36:57 --- join: clausen (~andrew@c17997.eburwd3.vic.optusnet.com.au) joined #haskell 22:50:20 --- quit: Jiriki ("O_O") 22:51:47 --- join: Jiriki (sjh@207.164.213.52) joined #haskell 23:59:59 --- log: ended haskell/02.03.14