00:00:00 --- log: started haskell/06.09.23 00:08:20 > [id] <*> [()] 00:08:21 Not in scope: `<*>' 00:08:43 what's this <*> ? 00:08:49 is it an arrow combinator? 00:08:49 Control.Applicative 00:08:55 ah , I'll bring it in 00:09:05 <*> is Monad's ap 00:09:42 --- join: Krooga (n=nospam@cust3634.vic01.dataco.com.au) joined #haskell 00:09:42 ah, its too new. i'll need to install a 6.6 snapshot first 00:10:03 ahh 00:10:14 are the 6.6 snapshots different than the 6.5 ones? 00:10:28 no, a 6.5 snapshot is what I mean :) 00:10:31 what is to become 6.6 00:10:43 I was about to hit the download button ;) 00:12:22 * glguy is watching youtube videos of Efren Reyes kick serious serious ass in 9-ball 00:13:56 when he's done with people in these finals and semi-finals matches, they look like are grateful to have been schooled so thoroughly 00:14:04 they* 00:14:32 many sports are like that - I just got back from squash training - sometimes I play Brett Marti 00:14:34 *Martin 00:14:45 or Craig Rowland 00:15:20 to be honest, I don't know what squash is, or who those people are 00:15:35 former world #2 and #7 respectively 00:15:45 squash is a sport that is unfortunately not popular in the US 00:16:05 sadly :( 00:16:13 * dons chooses squash too 00:16:16 indeed 00:16:23 how similar is it to racketball? 00:16:29 yes, similar. 00:16:38 glguy, racquetball is a spawn of squash - the court is a tad larger, otherwise it's the same 00:16:56 --- join: russo (n=russo@ppp83-237-63-39.pppoe.mtu-net.ru) joined #haskell 00:17:00 I've played racquetball at least 00:17:04 different racquet and ball 00:17:13 dibblego: oh, btw, in response to your feedback yesterday, i put up, http://www.cse.unsw.edu.au/~dons/data/Basics.html 00:17:15 Title: Haskell Unix Tools, http://tinyurl.com/zq2lk 00:17:18 extended version 00:17:20 dons, cool thanks 00:17:47 got a lot of interest out there in blog land, before haskell.org went down this morning. so thanks for the inspiration! 00:18:08 no problem - I'm going to write an article soon and make mention of the Maybe monad 00:18:23 mmm. tasty. 00:18:29 let me know if you want some proof reading or feedback 00:18:32 it will be on Java though 00:18:35 I will thanks 00:19:00 --- join: boegel_ (n=boegel@86-39-73-81.customer.fulladsl.be) joined #haskell 00:19:41 --- quit: boegel (Read error: 104 (Connection reset by peer)) 00:19:55 --- nick: boegel_ -> boegel 00:19:55 > (\w -> foldl (\r b -> if testBit w b then setBit r (8-b) else r) 0 [0..7]) (1 :: Word8) :: Word8 00:19:57 0 00:19:59 --- join: Itkovian (n=Itkovian@d54C4B834.access.telenet.be) joined #haskell 00:21:04 Itkovian: can you bring haskell.org back up with magic tele-computational powers? 00:23:21 --- join: sslow (n=siganos@ppp2-103.adsl.forthnet.gr) joined #haskell 00:26:23 --- quit: dfeuer ("Leaving") 00:27:25 Australian squash players are far more successful than our tennis players, soccer team and all those popular sports 00:28:35 --- quit: Stinger_ (Remote closed the connection) 00:28:49 --- quit: alkoma ("BitchX-1.1-final -- just do it.") 00:29:20 I remember a couple of months back when Palmer won one of the big touraments while he was #1, it got a mention on the radio 00:29:26 *tournaments 00:31:09 --- join: goltrpoat (n=goltrpoa@cpe-72-179-21-113.austin.res.rr.com) joined #haskell 00:31:26 has haskell.org been down all day? 00:31:32 oh.. nm, just saw the topic 00:32:43 i heard there's GADT-style record syntax in 6.5, and with the site being down, it takes an inordinate amount of time to figure out what that syntax could possibly be. 00:33:03 --- join: paolino (n=paolino@151.82.6.126) joined #haskell 00:33:17 > (\w -> foldr (\b r -> if not $ testBit w b then setBit r (8-b) else r) 0 [0..7]) (0 :: Word8) :: Word8 00:33:18 254 00:33:47 what is wrong with this ^^^ code? (It's supposed to reverse the bits in a Word8) 00:34:18 @arr 00:34:18 Yo ho ho, and a bottle of rum! 00:34:52 > (\w -> foldr (\b r -> if not $ testBit w b then setBit r (7-b) else r) 0 [0..7]) (0 :: Word8) :: Word8 00:34:54 255 00:34:58 :) 00:36:08 --- quit: sslow () 00:37:56 --- join: roconnor (n=roconnor@g33218.upc-g.chello.nl) joined #haskell 00:39:45 --- join: dfeuer (n=topolog@wikimedia/Dfeuer) joined #haskell 00:40:15 --- nick: eno -> eno-away 00:40:32 I'm reading a l-t-u thread... and someone really needs to announce that Haskell has a printf function 00:42:24 url? 00:42:31 http://lambda-the-ultimate.org/node/186 00:42:33 Title: New Paul Graham thing... | Lambda the Ultimate 00:42:43 --- quit: boegel ("This computer has gone to sleep") 00:43:03 there's a sub-thread (if you will) where people go on and on about how having a printf function allows idiots to debug C programs or something 00:43:10 LtU is weird. there are some remarkably intelligent people posting here and there, and then there are entire threads that just make you cringe 00:45:33 --- quit: Itkovian () 00:45:35 printf is a laborious and quite flawed method of problem resolution 00:46:24 it's something they do at IBM and if you don't, then you're not very clever 00:46:49 (seriously) 00:47:08 I've witnessed some amazing use of the debugger at work 00:47:13 the win32 debugger 00:47:34 printf has nothing to do with it 00:47:41 goltrpoat: yes.I agree 00:48:00 the internet is full of people with 5s attention spans 00:48:16 what are you talking about? 00:48:22 * glguy kids, of course 00:48:29 heh 00:49:17 dons: btw, been meaning to ask you this.. how well does hsplugins work under windows? 00:49:29 n.b. we have a GHCi.Debugger now too 00:49:39 I guess people on LtU don't read the HWN 00:49:44 goltrpoat: seems to work fine, afaik. 00:49:48 it's in use by a number of people 00:50:02 but you'll want ghc 6.4.2 or earlier. hs-plugins hasn't been ported to 6.6 yet 00:50:11 yah, ive noticed it's in use by a number of people, just wasn't sure what platform those people were on 00:50:19 i'm in a bit of an interop bind 00:50:26 --- join: slipstream (n=slipstre@ppp83-237-55-217.pppoe.mtu-net.ru) joined #haskell 00:50:36 no, I mean i know its used on windows by a number of people 00:50:37 dons: is the debugger work in my snapshot build from the 19th? 00:50:43 ah cool. 00:50:55 hmm, glguy not sure. might have to be enabled? 00:51:02 --- part: edwardk_ left #haskell 00:51:02 what are the issues with 6.6? 00:51:10 it's too good 00:51:15 * glguy doesn't know 00:51:24 small change to the .hi file format, and Typeable has been fixed, meaning I can toss out some code in hs-plugins 00:52:24 basically -- long story short, i have a compiler for a DSL, a relative large project, in C++. it's about 75% done, but ive written a few DSLs in haskell, and i figure it'll take less time to port the whole thing to haskell and finish up the remaining 25%, than it would to finish it up in c++ 00:52:52 trouble is, we can't include gcc in the toolchain, and this requires a fairly stupid amount of rather intricate interop with C++ 00:54:13 i should be able to handle it all through discovering exports in dlls, but ive been rather reticent to get too deep into that. 00:54:28 since win32-specific stuff seems to be rather poorly handled, in general. 00:54:50 goltrpoat: "discovering exports in dlls" you just mean dynamic linking? (like POSIX's dlopen, dlsym?) 00:55:06 dons: Lemmih was hacking with ghc-api instead of hs-plugins for hIDE. will (some) functionality of hs-plugins go into ghc itself? 00:55:55 --- quit: slipstream-- (Read error: 104 (Connection reset by peer)) 00:56:09 glguy: there is a reflection system on the C++ side, that exports type information. our other interop mechanisms tend to go both ways -- so the satellite language can muck around with C++ types based on the metadata, and the native side can muck with the satellite language types. 00:56:24 component dlls export their reflected typeinfo. 00:56:24 ah 00:56:46 Anything I've done with reflection has been in a .NET environment 00:57:01 yah, it's basically very much along the lines of .NET reflection 00:57:44 we actually have a bridge that takes native reflected types to .NET reflected types and back. 00:58:05 --- quit: NamelessOne (Read error: 104 (Connection reset by peer)) 00:58:23 i don't need to construct haskell types from metadata, but i do need to get hold of the metadata in order for the compiler to validate the syntax. 00:59:08 --- quit: ofer0 (Read error: 60 (Operation timed out)) 00:59:19 anyway, the point was that i either have to write a static lib in c, have it load up the component dlls and export the kit and kaboodle to the haskell-side compiler via FFI, or load stuff up dynamically, or have the compiler itself loaded up dynamically. 00:59:29 hence the question. pardon the long-winded explanation. 00:59:50 --- join: sslow (n=siganos@ppp2-103.adsl.forthnet.gr) joined #haskell 01:02:31 (oh and we're trying to use visual haskell, so rolling back to 6.4.2 would be a bitch in quite a number of ways) 01:02:40 --- quit: dibblego (Read error: 104 (Connection reset by peer)) 01:02:52 well, I haven't done any FFI stuff, so I can't help you there, though I find your problem interesting 01:03:01 and I also enjoy using visual haskell 01:03:24 yah i hope someone's doing the 2005 version 01:03:32 "Haskell, for example, seems to me a language that's designed more to write papers about than to hack in" 01:03:34 hahaha 01:03:42 * gour hopes we'll get hiDE someday 01:06:01 --- quit: weitzman (Read error: 110 (Connection timed out)) 01:06:02 glguy: do you know if there's a way to like.. regain mouseover type info and such with -fglasgow-exts? 01:06:44 goltrpoat: I add {-# GHC_OPTIONS -fglasgow-exts #-} to the top of my source file 01:06:51 i mean, i'd understand if it disappeared on instances of multiparameter typeclasses and whatnot, but it just disappears on the whole thing 01:06:52 instead of changing the compiler flags 01:06:53 yeah, same here 01:06:56 ok 01:07:12 you mean OPTIONS_GHC 01:07:14 ? 01:07:31 I don't think so... 01:07:52 well then. 01:07:55 that works. 01:07:56 thanks :) 01:08:09 glad to help with at least one thing ;) 01:08:19 and now it's my bed time 01:08:20 .. 01:08:23 + 3 hours 01:08:27 * glguy & 01:08:30 later 01:09:29 --- join: kaol_ (n=kaol@sammakko.yok.utu.fi) joined #haskell 01:15:11 moin 01:17:05 --- join: kep__ (n=const@nat-175-12.yapic.net) joined #haskell 01:19:45 --- quit: kaol (Read error: 110 (Connection timed out)) 01:19:49 --- quit: dfeuer ("Leaving") 01:24:19 don't suppose anyone's compiled a list of proposed extensions to the kind system that actually leave type inference decidable 01:29:13 --- nick: tmoertel_away -> tmoertel 01:29:38 I thought that typing was no longer decidable? (With extensions) 01:29:58 sorry, minus extensions 01:31:01 i'm trying to wrap my head around what makes it decidable actually. can the kind system be context free? 01:31:09 --- join: Bourbaki (n=Miranda@p50915A77.dip.t-dialin.net) joined #haskell 01:31:10 --- quit: jgrimes (Read error: 110 (Connection timed out)) 01:31:10 moin 01:31:13 as a language in itself i mean 01:33:28 --- join: jgrimes (n=jgrimes@Lee-10-101.rh.ncsu.edu) joined #haskell 01:40:16 --- quit: sslow () 01:50:02 dons, is dcoutts in transit from ICFP? 01:52:05 --- join: mnislaih (n=pepe@81-202-140-205.user.ono.com) joined #haskell 01:53:40 --- join: Bobstopper (n=bobstopp@luckynet229075.luckynet.jp) joined #haskell 01:58:38 --- quit: mjk ("KVIrc 3.2.0 'Realia'") 02:00:12 foxy, no 02:01:48 foxy, have you got the latest c2hs darcs version? I thought we'd updated it. 02:05:39 dcoutts__, there's a problem with patch 107 in the c2hs darcs repo which prevents windows darcs from applying 02:07:01 hmm 02:07:35 dcoutts__, I worked around that by going via linux 02:08:24 dcoutts__: but I still have the same problem /using/ c2hs 02:08:48 you mean building it? 02:08:54 with 6.5 02:09:16 dcoutts__, It built fine with 6.5, but the install step doesn't work, so I did that by hand 02:09:50 dcoutt__, my problem is that I get: 02:09:51 c2hs.exe: Errors during expansion of binding hooks: 02:09:53 MxMatrix.chs:5: (column 8) [ERROR] 02:09:54 >>> Unknown identifier! 02:09:56 Cannot find a definition for `mxClassID' in the header file. 02:10:12 but `mxClassID' is definitely in the header file I'm trying to bind to 02:10:33 perhaps you could send a bug report with the details to the c2hs list 02:11:07 darcs + windows seems quite buggy (there is also a problem with the fps repo on windows darcs) 02:11:51 --- quit: beelsebob () 02:13:47 dcoutts__, where is the c2hs list and what should I include in the bug report? 02:14:10 c2hs@haskell.org 02:14:53 say the problems with 6.5, with darcs/windows and your binding error 02:15:17 including a reference to the header file and .chs you were using 02:16:23 ok, thanks 02:21:13 dcoutts__, do I need to join the mailing list to send to it? 02:22:09 I don't think so 02:22:28 I think it required that. But you could post through gmane without joining 02:23:13 (most of the haskell.org lists do to avoid too many spam problems) 02:23:13 --- nick: tmoertel -> tmoertel_away 02:23:57 --- join: damkor (n=ivan@132.Red-88-9-149.dynamicIP.rima-tde.net) joined #haskell 02:24:24 dcoutts__, you told me a few weeks ago how to check what the preprocessor was reading when invoking c2hs, could you refresh my memory? 02:25:39 foxy you can override the cpp that's used 02:25:39 eg with echo 02:25:39 that shows what it's being called with 02:25:57 hi there, I've got a question about haskell packages 02:26:05 dcoutts__, I want to check that the .h file I'm including gets read 02:26:21 is there any way to include a compiled package with my sources 02:26:46 so that the sources can be compiled using the binary package files? 02:27:06 it tried several ways (primarily using -L option to ghc) 02:27:16 --- join: sslow (n=siganos@ppp2-103.adsl.forthnet.gr) joined #haskell 02:27:20 but it seems to expect the sources anyway 02:27:32 (i mean the library's sources) 02:28:20 --- nick: russo -> russo_TV 02:28:54 --- join: boegel (n=boegel@d54C59E8A.access.telenet.be) joined #haskell 02:29:25 --- nick: tmoertel_away -> tmoertel 02:30:21 @seen shapr 02:30:22 I saw shapr leaving #haskell 10h 3m 37s ago, and . 02:31:21 --- quit: damkor ("leaving") 02:32:13 --- quit: kep__ ("leaving") 02:33:55 @seen ndm 02:33:55 I saw ndm leaving #ghc, #haskell-overflow, #haskell-blah and #haskell 14h 15m 51s ago, and . 02:33:58 @tell ndm this gtk+ windows patch got applied in gtk+ 2.10.4: http://bugzilla.gnome.org/show_bug.cgi?id=340201 02:33:59 Consider it noted. 02:34:37 --- join: Lemmih (n=david@kbhn-vbrg-sr0-vl206-099.perspektivbredband.net) joined #haskell 02:37:36 --- quit: boegel (Read error: 60 (Operation timed out)) 02:40:15 dcoutts__, I now get an error that "the symbol '__attribute__' does not fit here" the file in which this occurs is 'float.h' which is a standard gnu header... 02:41:23 should I report that to the mailing list as well? 02:49:28 --- quit: roconnor (Read error: 110 (Connection timed out)) 02:50:06 --- quit: mnislaih () 02:52:59 --- join: chris2 (n=chris@p549D3ABB.dip0.t-ipconnect.de) joined #haskell 02:56:16 --- join: glauber_sp (n=Glauber@200-168-101-11.dsl.telesp.net.br) joined #haskell 02:56:49 hi guys. goo morning =) (at least here hehe) Does anyone have this paper: http://www.macs.hw.ac.uk/~dsg/gph/papers/abstracts/par-intro.html 02:56:53 Title: Parallel Functional Programming: An Introduction, http://tinyurl.com/mj4zo 02:57:08 the downloaded file doesn't open 02:58:36 It works for me... 02:59:00 --- join: roconnor (n=roconnor@g33218.upc-g.chello.nl) joined #haskell 02:59:34 foxy, with which program do you open? 02:59:53 both the ps and the ps.gz open here and don' t show nothing 02:59:54 ghostscript (the .ps not .ps.gz file) 03:00:26 I get all 19 pages 03:00:41 hum. I'll try again. kpdf and evince didn' t show nothing, only 19 blank pages =/ 03:00:43 have you tried again? Maybe the download terminated incorrectly? 03:00:57 does kpdf read ps files? 03:01:02 --- join: Jaak (n=Jaak@raatuse.aklubi.ee) joined #haskell 03:01:14 I've downloaded 4 times already. and not only today. I'm downloading again 03:01:28 foxy, kghostview =) 03:03:56 foxy, gv gives a stack underflow error. I guess I need to recompile it 03:04:17 foxy, is that glibc 2.4 ? 03:05:10 dcoutts, I use glibc 2.4, why? 03:05:19 any known error? 03:05:28 --- join: poltrgoat (i=goltrpoa@cpe-72-179-21-113.austin.res.rr.com) joined #haskell 03:05:29 c2hs can't parse some of the 2.4 headers yet 03:06:05 dcoutts, hum, I'm not using c2hs eheh 03:06:27 I' m trying to open a ps file only =) 03:09:41 --- join: boegel (n=boegel@86-39-73-81.customer.fulladsl.be) joined #haskell 03:10:13 --- quit: glauber_sp ("Fui embora") 03:10:13 --- nick: tmoertel -> tmoertel_away 03:13:31 dcoutts__, it's mingw 3.4.2, how do I find what version of glibc? 03:13:42 ah, no glibc 03:14:01 well just find the header and send it in 03:14:15 done 03:14:59 the file was _mingw.h, and it is related to dll importing 03:17:40 Why does ReadP not define greedy operators? 03:18:14 --- join: mnislaih (n=pepe@81-202-140-205.user.ono.com) joined #haskell 03:18:25 like: gmany1 p = liftM2 (:) p (gmany1 p <++ return []) 03:21:57 --- quit: goltrpoat (Read error: 110 (Connection timed out)) 03:22:54 someone needs to fix www.haskell.org 03:23:59 --- join: arjanb (i=borganis@borganism.student.utwente.nl) joined #haskell 03:24:59 --- join: Itkovian (n=Itkovian@d54C4B834.access.telenet.be) joined #haskell 03:28:07 @slap haskell.org 03:28:07 * lambdabot beats up haskell.org 03:28:32 --- quit: paolino (Read error: 110 (Connection timed out)) 03:29:42 --- join: NamelessOne (n=lskjdflk@218.22.21.11) joined #haskell 03:33:02 someone should write a book on optimizing haskell programs 03:34:44 poltrgoat: yes, or any advanced level textbook would be nice 03:35:00 dons: why don't you write a couple of haskell books 03:35:15 i was actually thinking that 03:35:15 heh 03:35:18 (re dons i mean) 03:35:45 --- join: cptchaos (n=cptchaos@d054227.adsl.hansenet.de) joined #haskell 03:36:12 I think there's a dire need for some 03:36:19 I guess dons should write a thesis first ;) 03:37:01 Thesis writing is good for you. 03:37:11 At some point I'll get around to it asd well. :) 03:37:40 --- nick: poltrgoat -> goltrpoat 03:39:00 something like "Practical Haskell" would be nice (similar to "Practical Common Lisp") and also "Monads and Arrows in Haskell" and "Design and Implementation of the Glasgow Haskell Compiler" 03:39:57 * Syzygy- would like a comprehensive reference of Haskell that assumes the reader is familiar with category theory to a large extent... :) 03:40:08 * sieni doesn't 03:40:20 --- quit: boegel ("Leaving") 03:41:40 --- quit: xinming (Read error: 110 (Connection timed out)) 03:42:01 Syzygy-: Haskell programs are points in a topological space 03:42:10 Oh, really? Which one? 03:42:19 The program types are the open sets 03:42:29 Program type? 03:42:39 well, function types 03:42:41 Ah. 03:42:52 Is there anything decent to be said about the space? 03:42:53 Haskell functions are points in a topological space 03:42:59 Is it haussdorff, for instance? 03:43:19 hmm 03:43:27 And I don't believe that anybody that claims that he understands category theory before understanding everything in that book: http://www.amazon.co.uk/Introduction-Homological-Cambridge-Advanced-Mathematics/dp/0521559871/sr=8-1/qid=1159008120/ref=sr_1_1/026-8508330-1641259?ie=UTF8&s=books 03:43:31 http://tinyurl.com/hxnpm 03:43:46 Syzygy-: oh wait, forget what I said. I forgot Haskell isn't consistent 03:43:52 so it is the one point space :P 03:43:56 Ah. 03:44:14 perhaps it is the 0 point space 03:44:22 sieni: Oh the dear old Weibel. :) 03:44:24 * roconnor kicks (fix id) 03:44:55 sieni: I'm doing a PhD in group cohomology right now. I use Weibel as a stepping stone to wrap my head around my other references 03:46:23 I got my Ph.D. in Analysis and have tried to read Weibel's book a few times with quite a bad success :-) 03:46:44 Ewwww, analysis. ;) 03:46:50 analysis <3 03:46:54 does everyone here have a phd? 03:46:57 * Syzygy- took my masters in homological algebra as well... 03:47:00 roconnor: Not yet. 03:47:00 except me 03:47:21 roconnor: many are probably in the process of getting one :-) 03:47:38 maybe my friend is right. You need a phd to use Haskell. 03:49:32 sieni: What, more specifically, did you do? 03:50:07 Syzygy-: there are links: http://www.hurmio.org/~ville/ 03:50:12 Title: Ville Hakulinen, Ph.D., kauppat.yo. 03:50:32 Btw, sieni: If you want something really obnoxious in homological algebra, take a look at Dave Benson's books on representations and cohomology. 03:50:50 heh 03:50:59 I haven't been reading much math lately 03:52:04 --- quit: foxy (Read error: 110 (Connection timed out)) 03:54:55 --- join: BCoppens (n=bartcopp@kde/developer/coppens) joined #haskell 04:01:54 --- join: Prip (n=aaa@host163-127-dynamic.19-87-r.retail.telecomitalia.it) joined #haskell 04:03:58 --- join: foxy_ (n=chatzill@222-152-203-140.jetstream.xtra.co.nz) joined #haskell 04:04:01 --- nick: foxy_ -> foxy 04:04:22 --- quit: ramkrsna (Read error: 110 (Connection timed out)) 04:05:06 --- join: ramkrsna (n=ramkrsna@unaffiliated/ramkrsna) joined #haskell 04:05:32 how would guys write code to apply some function exactly N times to an initial value? 04:06:39 I have a version using n-k patterns and another taking the Nth element of the list returned by iterate 04:06:46 I'm looking for a more elegant way of expressing it 04:08:15 ? 04:08:16 unfoldr? 04:08:26 isn't iterate just what you need? 04:08:34 ?type iterate 04:08:36 forall a. (a -> a) -> a -> [a] 04:08:41 or do you need to fold it? 04:08:44 take N $ iterate f element 04:08:48 oops 04:09:14 I have a version using iterate 04:09:24 ?type unfoldr 04:09:25 forall a b. (b -> Maybe (a, b)) -> b -> [a] 04:09:33 > take 10 $ scanl (\a b -> a+b) 0 [1..] 04:09:34 [0,1,3,6,10,15,21,28,36,45] 04:09:42 that would be 04:09:54 > iterate (+1) 8 !! 5 04:09:56 13 04:10:02 ?let applicate n f x = iterate f x !! n 04:10:03 Defined. 04:10:09 yes that's what I have already :-P 04:10:11 I want something else. 04:10:16 why? 04:10:27 --- quit: ikegami-- (Remote closed the connection) 04:10:46 something more function-level oriented, where I would construct the function application n times 04:10:57 like with some replicate/fold ($) thing 04:11:41 but I can't figure out how to write it this way 04:11:53 @pl \x y z -> iterate x y !! z 04:11:53 ((!!) .) . iterate 04:11:54 --- join: IainFraser (n=wizhard@cpc1-nott4-0-0-cust559.nott.cable.ntl.com) joined #haskell 04:12:07 --- part: IainFraser left #haskell 04:12:52 --- quit: cptchaos ("Download Gaim: http://gaim.sourceforge.net/") 04:13:25 --- join: foxy_ (n=chatzill@222-152-203-140.jetstream.xtra.co.nz) joined #haskell 04:14:32 any ideas? 04:17:56 it's only as an exercise I gave to myself, I don't expect this other way to be prettier or more efficient or anything 04:19:21 --- join: cptchaos (n=cptchaos@d054227.adsl.hansenet.de) joined #haskell 04:22:59 (foldl1 (.) .) . replicate? :) 04:23:43 ahh, thanks 04:23:54 I was battling with foldl1 and replicate since 10 minutes 04:24:06 could you give a non-pointfree version? 04:24:13 wilx: that's completely unreadable ;-) 04:24:40 \n f -> foldl1 (.) (replicate n f) 04:25:11 damn, I was only doing foldl1 ($) instead of foldl1 (.) 04:25:15 I was near 04:25:16 thanks. 04:26:31 well, isn't ($) like id or something? 04:27:03 @pl \x -> 04:27:03 --- join: boegel (n=boegel@86-39-73-81.customer.fulladsl.be) joined #haskell 04:27:04 (line 1, column 6): 04:27:04 unexpected end of input 04:27:04 expecting lambda abstraction or expression 04:27:09 @pl \x -> ($) x 04:27:10 id 04:27:14 ^_^ 04:27:38 @type ($) 04:27:39 forall b a. (a -> b) -> a -> b 04:27:44 I'd call that function application 04:28:13 --- quit: dcoutts__ (Remote closed the connection) 04:28:22 I was expecting the fold to produce something like 04:28:27 f $ f $ f $ f $ f x 04:28:33 > (+2) . 3 04:28:35 add an instance declaration for (Num (a -> b)) 04:28:36 which would be valid 04:28:42 > (+2) $ 3 04:28:44 5 04:28:54 @type (.) 04:28:56 forall c a b. (b -> c) -> (a -> b) -> a -> c 04:29:19 > (+2) . (+3) 04:29:21 Add a type signature 04:29:52 @pl (+2) . (+3) 04:29:53 (5 +) 04:32:33 --- quit: foxy (Read error: 110 (Connection timed out)) 04:35:35 --- quit: mnislaih (Read error: 110 (Connection timed out)) 04:35:47 --- quit: iblechbot (Read error: 110 (Connection timed out)) 04:39:37 --- join: xinming (n=xinming@222.212.1.74) joined #haskell 04:40:20 @pl (+2) . (3+) 04:40:21 (5 +) 04:45:19 --- nick: kaol_ -> kaol 04:51:37 --- join: pierre- (n=pierre@85.249.253.211) joined #haskell 04:53:45 --- join: Stinger_ (i=stinger@219-90-224-73.ip.adam.com.au) joined #haskell 04:54:08 what's the diff between uncheckedShiftRL# and shift? 04:54:17 @hoogle uncheckedShiftRL 04:54:18 No matches found 04:54:32 ?fptools GHC.Word 04:54:32 GHC.Word not available 04:55:37 Shift right logical. Result undefined if shift amount is not in the range 0 to word size - 1 inclusive. 04:55:42 ah thanks roconnor 04:55:48 ?karma+ roconnor 04:55:49 You can't change your own karma, silly. 04:57:17 @hoogle rotate 04:57:18 Data.Bits.rotate :: Bits a => a -> Int -> a 04:57:18 Data.Bits.rotateL :: Bits a => a -> Int -> a 04:57:18 Data.Bits.rotateR :: Bits a => a -> Int -> a 04:57:26 @fptools Data.Bists 04:57:26 Data.Bists not available 04:57:29 @fptools Data.Bits 04:57:29 http://darcs.haskell.org/packages/base/Data/Bits.hs 04:57:40 ?karma+ lambdabot 04:57:41 lambdabot's karma raised to 28. 04:58:44 --- quit: kpreid () 04:58:45 --- quit: perspectival () 04:59:22 --- join: kpreid (n=kpreid@24-52-49-37.bflony.adelphia.net) joined #haskell 05:00:25 --- join: iblechbot (n=iblechbo@62.216.196.17) joined #haskell 05:01:23 --- join: perspectival (n=silas@rb4b68.net.upc.cz) joined #haskell 05:03:38 --- join: x8nyl (n=oop@87.203.174.96) joined #haskell 05:05:50 Is there an unchecked rotate for George? 05:06:06 --- join: twanvl (n=twanvl@ip5451f037.direct-adsl.nl) joined #haskell 05:09:04 --- join: erider (n=erider@unaffiliated/erider) joined #haskell 05:10:27 --- join: ProfTeggy (n=grust@p5499870C.dip0.t-ipconnect.de) joined #haskell 05:13:36 where do I find the implementation of GHC primitives such as stg_shiftL32 05:14:41 --- quit: sylvan (Read error: 104 (Connection reset by peer)) 05:16:33 --- quit: foxy_ (Read error: 110 (Connection timed out)) 05:21:53 --- quit: boegel ("Leaving") 05:27:01 ?quote 05:27:01 kolmodin says: I would rather lose my left arm than write it in Java 05:27:08 ?quote 05:27:08 spj says: it looks like hopscotch! (referring to a funny notation for lists) 05:27:15 ?quote 05:27:15 darius says: Well profiling does add a bit of reflection, but it should have the good sense not too go near the barbed wire fences and armed guards. 05:27:36 ?quote 05:27:36 dylan says: I run emacs for the games 05:27:45 :) 05:28:03 I can't find stg_shiftL32 in the ghc sources ... 05:28:41 is it part of extras? 05:30:48 --- join: Heffalump (n=ganesh@urchin.earth.li) joined #haskell 05:30:56 --- join: foxy_ (n=chatzill@222-152-202-225.jetstream.xtra.co.nz) joined #haskell 05:31:00 --- nick: foxy_ -> foxy 05:31:38 any c2hs people around? 05:32:49 --- nick: russo_TV -> russo 05:40:50 --- join: der_eq (n=eq@dslc-082-082-071-139.pools.arcor-ip.net) joined #haskell 05:47:17 --- quit: goltrpoat () 05:48:01 --- join: Philippa_ (n=somewher@cpc1-clif6-0-0-cust591.nott.cable.ntl.com) joined #haskell 05:48:01 --- quit: Philippa (Read error: 104 (Connection reset by peer)) 05:59:56 --- join: foxy_ (n=chatzill@222-152-246-84.jetstream.xtra.co.nz) joined #haskell 06:00:37 dons: your last change in Plugin/Seen.hs broke lambdabot's build for me 06:00:39 ./Plugin/Seen.hs:323:75: parse error on input `)' 06:10:33 yeah, gotta fix it. just unpull that patch for now 06:10:42 ok 06:11:42 hmm. mailing list is back up. 06:11:51 hopefully the web site soon... 06:13:48 --- quit: ProfTeggy ("Sleeping... zzZZ!") 06:14:27 --- quit: russo () 06:16:22 --- join: ndm (n=chatzill@91.84.47.42) joined #haskell 06:16:50 --- quit: dmwit ("I'm flying home! =D") 06:17:01 is haskell.org back yet? i have got some emails through, but cna't get in via http 06:17:01 ndm: You have 1 new message. '/msg lambdabot @messages' to read it. 06:18:35 @tell dcoutts__ cool, i guess they aren't going to fix the "file chooser is wrong" bug though, but its good to see they are pushing forward 06:18:36 Consider it noted. 06:18:55 --- quit: foxy (Read error: 110 (Connection timed out)) 06:19:14 --- join: beelsebob (n=tatd2@DHCP-31.quixotic.org.uk) joined #haskell 06:19:49 --- quit: foxy_ (Read error: 110 (Connection timed out)) 06:21:56 --- join: integral_ (n=bs338@p3m/member/integral) joined #haskell 06:22:24 --- quit: integral (Nick collision from services.) 06:22:36 --- nick: integral_ -> integral 06:24:10 --- join: femol (n=user@201-43-128-194.dsl.telesp.net.br) joined #haskell 06:25:40 --- join: chessguy (n=chessguy@c-69-242-13-143.hsd1.pa.comcast.net) joined #haskell 06:26:53 --- join: crem (n=Rupord@mm-251-157-57-86.adsl.mgts.by) joined #haskell 06:33:57 --- quit: xinming (Read error: 145 (Connection timed out)) 06:34:04 --- quit: crem_ (Read error: 60 (Operation timed out)) 06:38:56 --- join: kisu (i=kisu@2001:618:400:0:0:0:d375:4cd6) joined #haskell 06:40:54 woohoo! haskell.org returns!!!!! 06:41:28 --- join: yip (n=yip@adsl-guttman.tau.ac.il) joined #haskell 06:41:41 WOOOOOOT! 06:41:57 * ndm prepares a release, only a day late... 06:43:07 --- quit: roconnor (Connection timed out) 06:44:13 --- join: sslow_ (n=siganos@ppp105-83.adsl.forthnet.gr) joined #haskell 06:45:26 sup haskell 06:46:17 --- join: abcde` (n=hark@host217-43-84-100.range217-43.btcentralplus.com) joined #haskell 06:47:21 hi yip 06:47:40 how's it hanging beef? 06:47:46 on the left 06:48:02 --- quit: Bourbaki (Read error: 104 (Connection reset by peer)) 06:49:21 let's make sure to keep it that way 06:52:38 --- quit: sslow (Read error: 110 (Connection timed out)) 06:54:21 --- join: fasta (n=fasta@zonnebloem.demon.nl) joined #haskell 06:56:04 --- quit: cwenner ("using sirc version 2.211+KSIRC/1.3.12") 06:58:37 --- join: cwenner (n=cwenner@lund-idb4-ux4-vl88-85-235-31-166.perspektivbredband.net) joined #haskell 07:04:26 --- join: Polish (n=tirpack@gprs59.vodafone.hu) joined #haskell 07:05:12 --- part: Polish left #haskell 07:06:51 --- join: sslow (n=siganos@ppp91-198.adsl.forthnet.gr) joined #haskell 07:08:51 yay, its back up 07:09:03 --- join: fwd (n=fwd@81.25.39.67) joined #haskell 07:09:05 yeah 07:10:16 --- quit: sslow (Client Quit) 07:10:21 i wonder if it was really a reddit effect? 07:10:40 " The web server had over 150 client connections which exceeded 07:10:40 its limit. I restarted the web server and all is well." 07:10:50 --- quit: perspectival (Read error: 110 (Connection timed out)) 07:11:13 dons: 150 doesn't sound that much.... 07:11:33 --- join: sslow (n=siganos@ppp91-198.adsl.forthnet.gr) joined #haskell 07:11:38 no. when I went to bed the 'unix tools' page was getting 20 hits a minute, and in the next hour receieve 1000 more 07:11:42 but that's not enough 07:11:57 musta been a dos. 07:11:59 i'm wondering how many people use hoogle - i suspect that causes more people to hit the web server, even when they don't need info 07:12:28 i'm kinda surprised that the website doesn't get killed by hoogle, since its about 3 secs per query on my machine... 07:12:53 mmm 07:13:50 * ndm is rewriting it to be faster, it currently parses about 1Mb of haskell per request... 07:14:43 urgh 07:15:05 congrats on getting Dr Haskell out! 07:15:07 ndm++ 07:15:17 yep, would have had it out last night, but haskell.org died on me... 07:15:23 Haskell meaning the result of a show? 07:15:38 or source? 07:15:51 --- join: perspectival (n=silas@rb4b68.net.upc.cz) joined #haskell 07:15:54 heya Igloo , back home? 07:15:59 Yup 07:16:02 Igloo: nope, haskell as in: http://haskell.org/hoogle/res/hoogle.txt 07:16:12 --- quit: yip (Read error: 110 (Connection timed out)) 07:16:12 kind of source 07:16:21 turns out its 250Kb, i thought it was more 07:16:22 I leave Oxford for 1 week, and when I get back the pavements have become playgrounds for little frogs! 07:16:32 but its a bad parser, so that probably doesn't help :) 07:16:37 Ah, right 07:17:13 the new version has to do about 4Kb of binary read to do a name search, so much much faster 07:17:28 is haskell.org down again? 07:17:52 lennart: it came back about 5 mins ago 07:17:57 works here. 07:18:07 --- quit: sslow_ (Read error: 110 (Connection timed out)) 07:18:09 it's been down for about 15 hours though 07:18:11 yep it work again for me too 07:18:18 more, 21 hours, I think. 07:18:28 --- join: _JusSx_ (n=davide@adsl-194-62.38-151.net24.it) joined #haskell 07:18:33 <_JusSx_> hi hasell ppl 07:18:37 <_JusSx_> hi haskell ppl 07:18:42 yeah, i tried to release Dr Haskell at 6pm last night, so must be 21 hours 07:18:50 --- quit: LordBrain ("leaving") 07:19:54 hi _JusSx_ 07:20:26 yeah, the logs say the last commit was 01:23, until ndm's at 23:27. 07:20:45 --- join: phas (n=phas@213-140-22-68.fastres.net) joined #haskell 07:20:51 my commit? 07:21:22 "Yhc; 23:27 . . NeilMitchell" 07:21:40 Yhc isn't on haskell.org 07:21:48 oh, you mean the wiki commits :) 07:22:19 yup 07:23:06 although i was able to get in via SSH to haskell.org during the downtime 07:23:15 --- join: ragnarok (n=ragnarok@213-140-22-68.fastres.net) joined #haskell 07:23:26 --- join: yip (n=yip@adsl-guttman.tau.ac.il) joined #haskell 07:23:28 hi 07:23:28 i ran top, to check hoogle hadn't gone nuclear on haskell.org (that would be embarassing) 07:23:36 we're trying to do a haskell shell 07:24:02 i'm trying to figure how sintax can be 07:24:10 --- part: NamelessOne left #haskell 07:24:25 haskell syntax? :) 07:24:34 yeah dons but 07:24:51 i've to use also "programs" 07:25:00 ?remember Bulat there is new Time library, which is supposed to replace old System.Time. we hope that it will happen before 2038 07:25:19 phas, have you looked at the existing work on haskell shells? 07:25:24 yes 07:25:27 mainly hashell 07:25:45 wich uses "special parentesis" 07:26:04 like (program) {haskell code} (programs) 07:26:16 but i wonder if there's a better solution 07:26:29 In 2038 I'm too old for work, so what do I care. ;) 07:26:32 right, there's a couple of others, there, 07:26:35 ?wiki Libraries_and_tools/Operating_system#Shell 07:26:35 http://www.haskell.org/haskellwiki/Libraries_and_tools/Operating_system#Shell 07:26:51 ulfdoz: heh 07:27:38 newsham++ -- releasing the file fuzzer 07:28:46 --- quit: sslow (Read error: 110 (Connection timed out)) 07:28:51 --- mode: ChanServ set +o dons 07:29:26 --- topic: set to '["Join us as we move forward toward the Age of the Lambda","Logs: http://tunes.org/~nef/logs/haskell/", "Haskell - The language of choice for discriminating hackers"]' by dons 07:29:29 --- mode: ChanServ set -o dons 07:29:53 I figure that since the winning team this year did use haskell, we can keep the title :) 07:30:19 what did the winning team use? 07:30:39 lol 07:30:43 Our friends at CMU say C++, Haskell, Python. 07:30:53 oh, and is there any massive need for the [" "," "] list syntax in the topic? 07:31:02 not unless we use the lambdabot. 07:31:03 (or is that just my irc reader?) 07:31:07 maybe not, I suppose. 07:31:08 religion, i think. 07:31:13 (it's supposed to be Read/Showable :) 07:31:26 it seems lambdabot is so massively clever, that a little title parsing isn't that hard :) 07:31:31 --- join: Limbic_Region (n=Limbic_R@p3m/member/Limbic-Region) joined #haskell 07:31:31 hehe 07:31:33 yeah, i guessed the read/show aspect 07:31:54 "we put the funk in funktion" 07:32:33 i wonder who puts the tion in it 07:32:50 dons supplies half 07:33:08 i guess tic supplies the other half... 07:34:52 if you have previously written an academic paper, how much can you plagerise from the old one to the new one? 07:35:06 dons: well the only other work that says something on my problem is HSH 07:35:34 --- quit: MarcWebe1 ("leaving") 07:35:35 dons: wich proposes a "command >>= command>>= haskell script >>= command ..." 07:35:37 sintax 07:35:54 --- join: mkhl (i=mkhl@200-148-40-125.dsl.telesp.net.br) joined #haskell 07:36:02 but the problem here is that functions are limited to arity 1 07:36:18 i mean that i cannot express what in hashell i express with 07:36:28 foo {command} {command} 07:37:31 phas: So curry (or if it is uncurry) 07:38:03 ndm: There tends to be a lot of carry-over from paper to paper if you look into academic publications and track authors. 07:38:40 At least in mathematics, the consensus seems to be that there should be some substantial reason for a new paper; where substantial has been taken to mean "I got admitted to a cooler journal" among some famous mathematicians. 07:38:59 Syzygy: you mean something like command >>= (command >>= foo) 07:39:02 ? 07:39:11 oh, there is a substantial reason, but the motivation etc is still the same, which is what i was going to pinch 07:39:15 sound like abyguos 07:39:24 ambiguos 07:40:02 --- join: ikegami-- (n=ikegami@t048146.ppp.asahi-net.or.jp) joined #haskell 07:40:21 --- quit: ikegami-- (Remote closed the connection) 07:41:44 --- quit: Itkovian () 07:45:40 --- quit: dottedmag ("ERC Version 5.1.4 (IRC client for Emacs)") 07:46:04 --- join: lhz (n=lhz@c-fe71e255.010-110-73746f32.cust.bredbandsbolaget.se) joined #haskell 07:47:24 --- join: hyrax42 (n=hyrax42@modemcable253.102-201-24.mc.videotron.ca) joined #haskell 07:50:05 --- join: ihope_ (n=foo@c-71-205-100-59.hsd1.mi.comcast.net) joined #haskell 07:59:05 are there any people who are seriously into haskell who are not interested in mathematics? 07:59:29 I'd be surprised, personally. 07:59:40 me :) 07:59:51 :) 08:00:17 though maybe PL research is maths, in this crowd. 08:00:42 What, exactly, is pl research? 08:00:58 either a) you're into programming language research, b) maths c) you're learning it in uni. perhaps 08:01:15 --- join: sslow (n=siganos@ppp91-198.adsl.forthnet.gr) joined #haskell 08:01:32 though there's lots of other haskellers these days, commerical users, people using it in back rooms without their boss knowing and more.. 08:04:12 yip - those seriously interested in Perl 6 are seriously interested in Haskell 08:04:19 and most of those people are pretty poor at math 08:04:32 --- quit: mathrick (Read error: 104 (Connection reset by peer)) 08:04:38 * Limbic_Region fits all categories mentioned 08:04:49 hrm - actually, that is a bit of set theory ;-) 08:04:55 --- join: foxy_ (n=chatzill@210-86-109-14.jetstream.xtra.co.nz) joined #haskell 08:05:00 --- nick: foxy_ -> foxy 08:05:29 --- join: mathrick (n=mathrick@nat.kollegienet.dk) joined #haskell 08:05:40 --- quit: ihope (Connection timed out) 08:12:48 --- join: roconnor (n=roconnor@g33218.upc-g.chello.nl) joined #haskell 08:13:03 --- join: mnislaih (n=pepe@81-202-140-205.user.ono.com) joined #haskell 08:13:07 is there a parser library that works on bytestring yet? 08:14:40 --- join: vincenz (n=vincenz@cable-87-244-184-97.upc.chello.be) joined #haskell 08:15:18 --- quit: Krooga (Read error: 104 (Connection reset by peer)) 08:15:19 kolmodin: yeah 08:15:32 kolmodin: http://darcs.haskell.org/~paolo/darcs/ByteStringParser 08:15:35 Title: Index of /~paolo/darcs/ByteStringParser, http://tinyurl.com/o6p8o 08:15:40 --- join: russo (n=russo@ppp83-237-15-219.pppoe.mtu-net.ru) joined #haskell 08:16:24 xerox: thanks 08:18:34 --- join: perspectiva1 (n=silas@rb4b68.net.upc.cz) joined #haskell 08:19:03 --- quit: perspectival (Read error: 104 (Connection reset by peer)) 08:19:40 Why doesn't a k = k work? 08:20:23 a k = (k ) 08:20:33 its a section, so needs to be in brackets 08:20:46 a k = () k does also work 08:20:51 thanks 08:21:05 if you undersaturate a binary operator, put it in brackets is the basic rule 08:21:12 --- quit: sslow (Read error: 110 (Connection timed out)) 08:21:21 the second variant is using a binary operator as a prefix function 08:21:27 hence its ok 08:21:55 --- quit: mnislaih () 08:22:28 --- quit: x8nyl (Remote closed the connection) 08:25:01 > 1 `(+)` ` 08:25:02 Parse error 08:25:05 > 1 `(+)` 1 08:25:06 Parse error 08:25:13 too bad that doesn't parse 08:26:14 --- join: sad0ur (n=sad0ur@rb1a240.net.upc.cz) joined #haskell 08:26:14 --- quit: chessguy (" HydraIRC -> http://www.hydrairc.com <- 100,000+ downloads can't be wrong") 08:26:15 > 1 `(`(`(+)`)`)` 1 08:26:16 Parse error 08:26:25 :) 08:27:08 allowing nested use of ` ` would be silly 08:27:42 but a `flip f` b might be nice ... 08:27:54 why not write b `f` a? 08:28:13 imagine something more complex 08:28:26 yes, liftM would work pretty well there 08:28:31 ndm: In my case only the prefix version works. I want to return a function. I get syntax errors when using the other notation. 08:29:23 > let f a = (+ a) in 1 08:29:25 1 08:29:34 fasta: works fine there... 08:29:41 @type (+ 1) 08:29:43 forall a. (Num a) => a -> a 08:30:15 --- quit: scsibug () 08:30:32 ndm: that's odd 08:30:41 oh no 08:30:41 > let f a = (+ 1) in f 1 1 08:30:48 > let f a = (+ a) in f 1 08:30:54 vincenz: only if the input is even :) 08:30:55 vincenz: you were right, 1 is odd :) 08:31:04 2 08:31:06 ndm: I thought you had typed f 1, and was showing a function as a number 08:31:07 Add a type signature 08:31:14 lambdabot: you're slow today! 08:31:28 lispy: i talked to Colin about smallCheck, he says he might put up a darcs repo 08:31:35 yay! 08:31:37 * lispy cheers! 08:31:41 but its hard convincing him that a tarball isn't perfect... 08:31:42 \o/ 08:31:43 ndm: nm, I am confusing something. 08:32:02 ndm, you'll have to introduce him to web browsers ;) sometimes its nice to be able to read things online 08:32:06 ndm: well, 'darcs dist' creates tarballs....(pre zipped but that's easy to fix iirc) 08:32:22 dons: yep, i know, he still won't use hoogle web interface, only a command line version 08:32:35 heh 08:32:37 lispy: i'll talk him through it, he'd probably want pre zipped 08:33:00 and he still searches the haskell 98 report by hand before googling or hoogling something 08:33:15 old people.... ;) 08:33:46 (i have no idea how old colin is, but he sounds like he prefers the 'old' ways of doing things) 08:33:50 hehe. cool. the report as first source. 08:34:17 ndm: does he make interesting arguments why that's a good way to operate? 08:34:25 --- join: spreeker (n=stephan@s5590852e.adsl.wanadoo.nl) joined #haskell 08:34:38 lispy: easier for everyone is his argument, although thats based on what was easiest quite a while usually 08:34:39 maybe there is a subtlty others have missed building these tools 08:34:46 he does prefer the old way of doing things 08:34:59 he's not that old, i don't think, he's still quite fit and active 08:35:07 maybe 50ish 08:35:18 --- join: ziggurat (n=ziggurat@dsl081-114-028.dfw1.dsl.speakeasy.net) joined #haskell 08:35:31 i wonder if the amish would allow programmers as long as they didn't use electric computers 08:35:43 do the amish not like electricity? 08:35:59 Why do you think darcs is so "awesome"? It still contains one very easy to reproduce bug, which to me means that nobody is looking after it. 08:36:00 the amish are the classical definition of neo-luddite :) 08:36:27 mainly because it's so easy to use 08:36:35 fasta: the darcs focus right now is fixing the theoretical problems 08:36:44 fasta: but, what bug are you referring to? 08:37:12 fasta: if it's easy to fix then, yeah we should probably just fix it 08:37:25 lispy: hold y when "darcs pull" when there are about >10 patches. 08:37:28 lispy: i got a fromJust Nothing the other day out of darcs 08:37:36 i often get non termination 08:37:41 and quite often get into the situation where 08:38:03 fasta: hmm...i looked at that bug but i couldn't reproduceit 08:38:11 darcs record, with 1 change in there: a works fine, y freezes and doesn't terminate 08:38:19 oh, I can reproduce that bug too 08:38:20 while a is instant 08:38:25 you just need a slightly slow computer 08:38:37 a 3Ghz dual core pentium? 08:38:38 or some hard to process patches 08:38:42 Heffalump: what's "slow"? 08:38:46 fasta: never seen that 08:38:47 oh, not very. 08:38:53 and i pull 100s of patches from ghc sometimes 08:38:56 shall we take this to #darcs? 08:39:00 sure 08:39:06 ndm: I was referring to fasta's problem, not yours 08:39:23 fasta: maybe hit 'a' next time? ;) 08:39:32 Heffalump: fair enough, i can usually get round my problem with d/a/rev and combinations 08:39:33 fasta: would be nice to fix it though... 08:39:36 lispy: that's beside the point, right.. 08:39:42 fasta: yes 08:39:45 fixing bugs is better than introducing new ones 08:40:42 --- join: cwenner_ (n=cwenner@lund-idb4-ux4-vl88-85-235-31-166.perspektivbredband.net) joined #haskell 08:41:21 --- join: madpickle- (i=jizzy@i-195-137-52-102.freedom2surf.net) joined #haskell 08:41:23 --- quit: roconnor (Connection timed out) 08:43:01 --- quit: cwenner (Read error: 110 (Connection timed out)) 08:43:16 --- nick: cwenner_ -> cwenner 08:45:03 --- quit: spreeker () 08:45:05 --- join: spreeker (n=stephan@s5590852e.adsl.wanadoo.nl) joined #haskell 08:45:12 --- join: Krooga (n=nospam@cust3634.vic01.dataco.com.au) joined #haskell 08:50:33 --- nick: ihope_ -> i-hope 08:50:42 --- nick: i-hope -> ihope 08:55:34 --- join: chessguy (n=chessguy@c-69-242-13-143.hsd1.pa.comcast.net) joined #haskell 08:57:15 --- join: clanehin (n=lane@cpe-069-134-236-134.nc.res.rr.com) joined #haskell 09:04:44 --- join: Psyche^ (n=Psyche@e176093064.adsl.alicedsl.de) joined #haskell 09:05:48 --- join: mauke_ (i=mauke@p54997EF2.dip.t-dialin.net) joined #haskell 09:06:54 --- join: TaPiOn (n=tapion@ede67-1-81-56-22-69.fbx.proxad.net) joined #haskell 09:06:57 --- join: ndm_ (n=chatzill@82.152.211.27) joined #haskell 09:07:08 --- quit: ndm (Read error: 110 (Connection timed out)) 09:07:13 hello any one can help me for c programming (win32) ? 09:07:17 --- nick: ndm_ -> ndm 09:07:24 i search an other cmd like system() 09:09:31 --- join: nick8325 (n=nick@i-195-137-60-130.freedom2surf.net) joined #haskell 09:10:23 --- join: beelsebob_ (n=tatd2@80-41-95-72.dynamic.dsl.as9105.com) joined #haskell 09:13:49 --- quit: beelsebob (Read error: 113 (No route to host)) 09:17:35 --- quit: mauke (Read error: 110 (Connection timed out)) 09:18:53 TaPiOn: have a look at the exec* family of functions 09:19:04 --- join: j3h (n=josh@c-24-21-174-195.hsd1.mn.comcast.net) joined #haskell 09:19:22 k 09:19:39 tanks 09:20:46 --- nick: mauke_ -> mauke 09:20:58 --- quit: Patterner (Read error: 110 (Connection timed out)) 09:20:58 --- nick: Psyche^ -> Patterner 09:25:05 TaPiOn: ShellExecute and ShellExecuteEx are the better ways of doing it in Win32 09:25:25 ohhh thank you :) 09:25:31 API ? 09:25:40 --- join: beschmi (n=steele@dslb-084-058-207-010.pools.arcor-ip.net) joined #haskell 09:26:32 TaPiOn: its in the Win32 API 09:26:40 @google msdn ShellExecute 09:26:42 --- join: jtoy_ (n=jtoy@c-24-147-139-3.hsd1.ma.comcast.net) joined #haskell 09:26:43 http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=124382&SiteID=1 09:26:43 Title: help with Shellexecute - MSDN Forums 09:26:51 @google msdn ShellExecuteEx 09:26:54 http://msdn.microsoft.com/library/en-us/shellcc/platform/shell/reference/functions/shellexecuteex.asp?frame=true 09:27:01 thanks 09:27:02 the second one is the one to hit 09:27:24 dons: i hear its entirely your fault that haskell went down... 09:27:38 morning! 09:27:45 yay!, haskell.org is back! 09:28:00 --- join: abc (n=abc@a052.201.adsl.nextweb.net.mt) joined #haskell 09:28:56 is there a function from Int -> [Int] 09:29:12 that will change 123 into [1,2,3] 09:29:22 thanks 09:29:59 > let f = map (read . (:[])) . show in (f 123) :: [Int] 09:30:06 [1,2,3] 09:30:22 abc ^^^ 09:30:50 @hoogle digitTo 09:30:51 Char.digitToInt :: Char -> Int 09:31:06 > let f = map digitToInt . show in f 123 09:31:07 [1,2,3] 09:31:14 abc, much nicer version ^^^ 09:31:31 --- part: TaPiOn left #haskell 09:31:51 thanks for your help 09:32:04 --- join: int-e (n=noone@td9091aea.pool.terralink.de) joined #haskell 09:32:05 i am newbie to haskell 09:32:25 :-) 09:32:26 why are you learning? what motivated you to start it? 09:32:34 elegance 09:32:56 cool, well it is elegant, as that above example shows hopefully :) 09:33:42 have you got something you're trying to write in particular? or just play hacking for now? 09:33:59 I am trying to implement Luhn function 09:34:16 actually I am playing for the fun this language gives 09:34:22 --- nick: eno-away -> eno 09:34:44 you know what Luhn function does? 09:34:55 given an Int -> Bool 09:35:11 credit card validation number 09:35:14 --- join: LimbicRegion (n=Limbic_R@cmu-24-35-57-240.mivlmd.cablespeed.com) joined #haskell 09:35:24 ah, thats cool 09:35:31 hence the need for digits, i see :) 09:35:53 i am not sure if I am not sure if I am going in the right direction but I think its the smartest way 09:36:09 seems sensible, its a long time since i did a credit card validator 09:36:10 change the Int to [Int] then do the stuff using cool list functions 09:36:22 @wikipedia Luhn 09:36:25 No Result Found. 09:36:31 not difficult 09:36:58 http://en.wikipedia.org/wiki/Luhn_algorithm 09:37:06 if you are interested 09:37:07 ;-) 09:37:35 yeah, i found that easily, just wiki'd it 09:37:53 looks like you need a function that does the double repeatedly until you get a single digit 09:38:00 and a function to apply to alternate digits 09:38:02 --- join: mnislaih (n=pepe@81-202-140-205.user.ono.com) joined #haskell 09:38:29 double is easy 09:38:37 and even counting 09:39:14 yeah, looks quite doable 09:39:15 actually for you it seems that from start to end is easy hehe ;-) 09:39:26 for me the first part was challenging 09:39:33 hehe, practice makes perfect 09:39:41 thats exactly the sort of thing hsakell is great at 09:40:03 in a couple of days time I will be helping people ;-) 09:40:08 hehe, good good 09:40:10 I think its a nice place to hang here 09:40:17 people seems to be nice 09:40:18 well once you've done it, blog it, and link to the wikipedia article 09:40:38 that's exaactly what I am going...it seems that you read my mind ;-) 09:40:43 www.gaetanocaruana.com 09:40:46 it will be up soon 09:40:53 I will mention you 09:41:19 thanks :) 09:41:45 if your blog is haskell related, add it to planet.haskell.org 09:41:57 do you hang often here? 09:42:03 oh thanks I will ;-) 09:42:18 yeah, usually 09:42:34 fine :-) 09:42:35 its nice, people are friendly, and can solve very difficult problems 09:42:42 plus lambdabot is wonderful :) 09:43:22 yea infact I am noting what commands are you giving to her 09:44:36 i got a spam with a subject drawn from Asimov's "Foundation"..yow 09:44:49 --- quit: jtoy_ () 09:44:52 @list 09:44:52 http://www.cse.unsw.edu.au/~dons/lambdabot/COMMANDS 09:44:58 thats a list of all the commands 09:45:14 you'll see @hoogle, @index, @type, > (evaluation) and @pl quite a bit in here 09:45:47 ic :-) 09:45:51 @pl \a b c d e -> a (b c) (d e) 09:45:52 (((.) .) .) . (.) 09:45:55 i will have a look at them 09:46:02 ?version 09:46:02 lambdabot 4p227, GHC 6.5 (OpenBSD i386) 09:46:02 darcs get http://www.cse.unsw.edu.au/~dons/lambdabot 09:46:56 --- quit: madpickle- (Read error: 145 (Connection timed out)) 09:46:56 --- quit: satan (Read error: 54 (Connection reset by peer)) 09:47:42 --- quit: Trixsey ("( www.nnscript.de :: NoNameScript 4.03 :: www.XLhost.de )") 09:49:11 --- join: ndm_ (n=chatzill@91.84.47.91) joined #haskell 09:50:10 --- quit: Limbic_Region (Read error: 110 (Connection timed out)) 09:50:10 --- nick: LimbicRegion -> Limbic_Region 09:50:20 --- quit: _JusSx_ (Client Quit) 09:51:43 --- quit: russo () 09:52:15 --- quit: AtnNn (Connection timed out) 09:52:36 --- quit: lisppaste2 (Remote closed the connection) 09:53:18 --- quit: magnus- ("Download Gaim: http://gaim.sourceforge.net/") 09:54:10 --- join: jak (n=jak@85-210-239-158.dsl.pipex.com) joined #haskell 09:55:06 --- join: lisppaste2 (n=lisppast@common-lisp.net) joined #haskell 09:57:18 --- join: jtoy_ (n=jtoy@c-24-147-139-3.hsd1.ma.comcast.net) joined #haskell 09:57:24 --- join: Trixsey (n=secret@c-2b9072d5.012-2011-73746f31.cust.bredbandsbolaget.se) joined #haskell 09:58:00 ?users 09:58:00 Maximum users seen in #haskell: 238, currently: 230 (96.6%), active: 27 (11.7%) 09:58:28 --- join: roconnor (n=roconnor@g33218.upc-g.chello.nl) joined #haskell 09:58:32 --- quit: fwd (Remote closed the connection) 09:58:40 ?pl \ f x -> f x x x x x x x x x x x x 09:58:42 join . join . join . join . join . join . join . join . join . join . join 09:59:28 ?pl \f x y -> f x y y x y y y x x y x 09:59:32 ?pl \f x y -> f x y x y x y x y x y x y x 09:59:33 join . (flip .) . flip flip id . (ap .) . join . (flip .) . join . (flip .) . flip flip id . (ap .) . flip flip id . (ap .) . flip flip id . (ap .) . join . (flip .) . flip flip id . (ap .) 09:59:33 optimization suspended, use @pl-resume to continue. 09:59:44 join . (flip .) . flip flip id . (ap .) . join . (flip .) . flip flip id . (ap .) . join . (flip .) . flip flip id . (ap .) . join . (flip .) . flip flip id . (ap .) . join . (flip .) . flip flip id 09:59:44 . (ap .) . (flip =<<) 09:59:44 optimization suspended, use @pl-resume to continue. 10:00:03 --- join: Psyche^ (n=Psyche@e176084251.adsl.alicedsl.de) joined #haskell 10:00:07 ?pl \f x y z -> f x y z z y 10:00:08 flip flip id . (liftM2 flip .) . flip flip id . ((flip . (ap .)) .) 10:00:23 ?type \f x y z -> f x y z z y 10:00:25 forall t t1 t2 t3. (t -> t2 -> t1 -> t1 -> t2 -> t3) -> t -> t2 -> t1 -> t3 10:00:32 flippin' 'eck 10:00:35 (pun intended) 10:01:08 @djinn (t -> t2 -> t1 -> t1 -> t2 -> t3) -> t -> t2 -> t1 -> t3 10:01:09 f a b c d = a b c d d c 10:01:37 --- quit: perspectiva1 (Read error: 110 (Connection timed out)) 10:01:42 ?. djinn type \f x y z -> f x y z z y 10:01:44 f a b c d = a b c d d c 10:01:57 ?. pl . djinn type \f x y z -> f x y z z y 10:01:59 f = flip flip id . (liftM2 flip .) . flip flip id . ((flip . (ap .)) .) 10:02:17 ?pl \ a b c d e f g h i j k l m n o p q r s t u v w x y z -> h e l l o w o r l d 10:02:32 const (const (const (((const . const . (const .)) .) . ((const .) .) . ((const .) .) . (((const .) .) .) . (((const .) .) .) . ((((const .) .) .) .) . ((((const .) .) .) .) . (((((const .) .) .) .) . 10:02:33 ) . (((((const .) .) .) .) .) . (((((const .) .) .) .) .) . (((((const .) .) .) .) .) . ((((((const .) .) .) .) .) .) . ((((((const .) .) .) .) .) .) . ((((((const .) .) .) .) .) .) . flip (flip . ( 10:02:33 flip .) . ((flip .) .) . (((flip .) .) .) . ((((flip .) .) .) .) . flip flip id . (ap .) . ((flip .) .) . (((flip .) .) .) . ((((flip .) .) .) .) . (((flip .) .) .) . flip flip id . (flip .) . ((ap . 10:02:33 ) .) . (((flip .) .) .) . flip flip id . (ap .) . flip id)))) 10:02:34 optimization suspended, use @pl-resume to continue. 10:02:45 @pl-resume 10:03:15 hrm 10:03:16 const (const (const (((const . const . ((const . const . const . ((const . const) .) . ((const .) .)) .)) .) . ((((const .) .) .) .) . (((((const .) .) .) .) .) . (((((const .) .) .) .) .) . ((((( 10:03:16 const .) .) .) .) .) . (((((const .) .) .) .) .) . ((((((const .) .) .) .) .) .) . ((((((const .) .) .) .) .) .) . ((((((const .) .) .) .) .) .) . flip (flip . (flip .) . ((flip .) .) . (((flip .) .) 10:03:16 .) . ((((flip .) .) .) .) . flip flip id . (ap .) . ((flip .) .) . (((flip .) .) .) . ((((flip .) .) .) .) . (((flip .) .) .) . flip flip id . (flip .) . ((ap .) .) . (((flip .) .) .) . flip flip 10:03:16 id . (ap .) . flip id)))) 10:03:18 optimization suspended, use @pl-resume to continue. 10:03:30 poor pl 10:03:36 yes 10:03:42 ?pl \x y z -> x y z z y 10:03:43 join . (flip .) . flip flip id . (ap .) 10:04:12 --- quit: ndm (Read error: 110 (Connection timed out)) 10:04:16 --- quit: pierre- (Remote closed the connection) 10:04:33 ?pl \f x -> f x x 10:04:33 join 10:04:46 ?pl \ f g h x -> f (g x) (h x) 10:04:46 liftM2 10:05:02 ?pl \x -> x xx 10:05:03 ($ xx) 10:05:04 ?pl \x -> x x 10:05:05 join id 10:05:06 ?pl \ f g h x -> f (g x) h 10:05:06 (flip .) . (.) 10:05:25 ?pl \x -> x x x 10:05:25 ?pl \ f g h x -> f g (h x) 10:05:25 ((.) .) 10:05:26 join (join id) 10:05:34 ?pl \x -> x x x x 10:05:35 join (join (join id)) 10:05:41 ?pl \x -> x x x 10:05:42 join (join id) 10:06:06 ?pl \f x -> x x x 10:06:07 const (join (join id)) 10:06:47 --- part: j3h left #haskell 10:07:10 i call this one the Haskowl: 10:07:12 ?type ((.)$(.)) 10:07:13 forall a b c a1. (a -> b -> c) -> a -> (a1 -> b) -> a1 -> c 10:07:38 ?. djinn type ((.)$(.)) 10:07:40 f a b c d = a b (c d) 10:07:59 > ((.)$(.)) (==) 1 (1+) 0 10:08:00 True 10:09:17 aha, the owl is B' 10:12:54 --- quit: sad0ur ("leaving") 10:13:45 --- join: monochrom (n=trebla@toronto-hs-216-138-220-146.s-ip.magma.ca) joined #haskell 10:14:34 --- quit: abcde` (Read error: 131 (Connection reset by peer)) 10:14:38 --- quit: yip (Read error: 110 (Connection timed out)) 10:16:02 --- quit: Patterner (Read error: 110 (Connection timed out)) 10:16:03 --- nick: Psyche^ -> Patterner 10:17:37 cya guys...thanks again ndm_ 10:17:40 just before I fall asleep, I've made a little section for fun combinators we find with @pl here, like the owl. http://haskell.org/haskellwiki/Pointfree#Combinator_discoveries 10:17:45 Title: Pointfree - HaskellWiki, http://tinyurl.com/fwu37 10:17:47 and swing. 10:17:55 abc: no probs 10:17:58 so in future if you find something fun, add it and give it a name :) 10:17:59 :-) 10:18:02 \quit 10:18:04 --- quit: abc () 10:18:28 dons: unbalanced ')' in owl 10:18:37 fixied 10:18:49 ?type \x -> x x 10:18:50 Occurs check: cannot construct the infinite type: t = t -> t1 10:18:50 Expected type: t 10:21:44 you can't construct the Y combinator in haskell, can you? 10:21:53 ?type fix 10:21:54 forall a. (a -> a) -> a 10:22:15 psi: yup, either using language recursion, or by writing a datatype encapsulating it. 10:22:37 what does language recursion mean? 10:23:16 --- join: yip (n=yip@adsl-guttman.tau.ac.il) joined #haskell 10:24:25 --- join: weitzman (n=david@CMU-198389.WV.CC.cmu.edu) joined #haskell 10:24:56 what does fix do? 10:25:09 --- quit: Krooga () 10:26:00 --- join: dottedmag (n=dottedma@dottedmag.net) joined #haskell 10:26:01 --- part: spreeker left #haskell 10:26:53 --- join: Korollary (n=Unknown@c-67-183-137-247.hsd1.wa.comcast.net) joined #haskell 10:26:57 > fix (\f n -> if n < 2 then 1 else n * f (n - 1)) $ 5 10:26:59 120 10:27:57 cool 10:29:21 --- join: tessier_ (n=treed@adsl-75-5-99-178.dsl.sndg02.sbcglobal.net) joined #haskell 10:29:26 psi: http://r6.livejournal.com/95963.html 10:29:29 Title: r6: Y Combinator in Haskell 10:29:42 thanks 10:35:32 How can I take the logarithm of a value of type Integer? 10:35:45 ?type log 10:35:46 forall a. (Floating a) => a -> a 10:36:02 ?type log . fromInteger 10:36:02 > log (fromInteger 42) 10:36:04 forall a. (Floating a) => Integer -> a 10:36:04 3.7376696182833684 10:36:13 ?type log . fromIntegral 10:36:14 forall a b. (Floating b, Integral a) => a -> b 10:36:18 fromInteger, thanks 10:36:57 can't quite wrap my head around that fix2 10:37:15 fix2 is just fix with a restricted type 10:37:27 --- join: kombinator (n=michal@grue.residence.ens-lyon.fr) joined #haskell 10:37:32 or not even that 10:37:38 mauke: fix2 f = f (fix2 f) 10:37:50 ?type let fix2 f = f (fix2 f) in fix2 10:37:52 forall t. (t -> t) -> t 10:38:02 yeah, plain fix 10:38:10 psi: but you understand fix? 10:38:41 no, I just know how it's used 10:39:18 As you start unfolding fix and fix2 you end up getting f (f (f (f (f (f (f (fix2 f)...) 10:39:35 basically you have as many fs as you need 10:39:57 hopefully you will only need a finite number of unrollings (this is possible thanks to laziness) 10:40:19 so f will do something before looking at its argument 10:40:35 > fix ((2:) . scanl1 (const ((/2) . ap (+) (2/)))) !! 1000 10:40:36 1.414213562373095 10:41:02 --- quit: fasta ("leaving") 10:41:03 Ah, I think I see it 10:41:25 so only in some case will f's argument actually be used 10:41:46 and in the other cases the argument will be discarded 10:41:58 stoping the potentially infinite unfolding 10:43:05 it is a bit mind twisting 10:43:12 > take 10 $ fix (\f -> 1 : 1 : zipWith (+) f (tail f)) 10:43:13 [1,1,2,3,5,8,13,21,34,55] 10:43:27 psi: yes. 10:43:38 psi: you should try circular programming 10:43:50 ?pl \f -> 1 : 1 : zipWith (+) f (tail f) 10:43:51 (1 :) . (1 :) . ap (zipWith (+)) tail 10:44:15 > take 10 . fix $ (1:) . (1:) . ap (zipWith (+)) tail 10:44:16 [1,1,2,3,5,8,13,21,34,55] 10:46:58 do people use fix in real programs? 10:47:54 psi: at least mfix is used in real programs. 10:48:45 ?type mfix 10:48:47 forall (m :: * -> *) a. (MonadFix m) => (a -> m a) -> m a 10:49:53 --- join: dolio (n=dolio@nr5-216-196-210-204.fuse.net) joined #haskell 10:50:26 I just know that Y is a cool thing in lambda calculus, because you can't name things there, but that's not an issue in haskell. 10:50:59 name functions 10:51:55 brb. 10:52:00 the creation of artificial intelligence will probably require extensive understanding of fixed-points oO' 10:52:20 --- join: br1 (n=br1@r200-40-216-88-dialup.adsl.anteldata.net.uy) joined #haskell 10:53:05 is it just me or is the new yahoo even worse than the previous one 10:53:11 (yahoo-mail) 10:54:26 --- nick: pietron -> epiphone 10:55:58 ?hoogle curry 10:55:59 Prelude.curry :: ((a, b) -> c) -> a -> b -> c 10:55:59 Prelude.uncurry :: (a -> b -> c) -> (a, b) -> c 10:56:34 ?type chr 10:56:35 Int -> Char 10:56:40 --- join: ulfdoz_ (i=mary@2001:1a50:5057:0:0:0:0:1) joined #haskell 10:56:52 > ap zip . map chr $ [65..75] 10:56:52 Couldn't match `(->) [a]' against `[]' 10:56:56 --- quit: ulfdoz (Remote closed the connection) 10:56:59 > ap zip (map chr) $ [65..75] 10:57:01 [(65,'A'),(66,'B'),(67,'C'),(68,'D'),(69,'E'),(70,'F'),(71,'G'),(72,'H'),(73... 10:57:21 @hoogle ap 10:57:23 Monad.ap :: Monad a => a (b -> c) -> a b -> a c 10:57:23 Control.Monad.ap :: Monad m => m (a -> b) -> m a -> m b 10:57:23 Data.Graph.Inductive.Query.ArtPoint.ap :: Graph gr => gr a b -> [Node] 10:57:38 ap is monadic (.), is it? 10:57:42 --- join: perspectival (n=silas@rb4b68.net.upc.cz) joined #haskell 10:58:24 or monadic ($) 10:58:45 ?type ($) 10:58:46 forall b a. (a -> b) -> a -> b 10:58:47 Ah. 10:58:51 Right. 10:58:57 Yeah, it wouldn't be (.), doh. 11:00:20 (.) is a special case of fmap :) 11:03:13 ?. pl undo \m n -> do { f <- m ; a <- n ; return (f a) } 11:03:14 (. ((. (return .)) . (>>=))) . (>>=) 11:03:20 Whoa. 11:04:08 I'm a bit confused as to how the type of fix is determined by the compiler 11:04:16 ?type fix 11:04:17 forall a. (a -> a) -> a 11:05:19 where fix f = f (fix f) 11:05:25 fix f = let x = f x in x 11:05:49 --- quit: Limbic_Region (" tiuq\") 11:05:50 So, f is a function that when applied to a value, gives a value of the same type. 11:06:03 Otherwise you couldn't re-feed it into f. 11:06:13 And fix returns a value of that type. 11:07:45 Using dolio's equation. Let's give x a type; since we don't know what it should be yet, no harm to use a variable, let's say "a". Then from "x = f x", f :: a->a. 11:08:33 Type inference is a special case of logic deduction. How do you do it? Logically, carefully, patiently. 11:09:07 hm, I see. his definition was a bit different from mine, let me wrap my head around it 11:10:19 That's the way it's actually defined in the libraries, although they're equivalent in effect. 11:10:26 --- quit: kisu ("Leaving") 11:10:27 Both lead to f (f (f... 11:10:42 right 11:11:16 Using psi's equation. Let's give "fix f" a type; again use a variable like "a" for the moment and see what happens. Then from "f (fix f)", f::a->a. Then from "fix (f :: a->a) :: a", fix :: (a->a)->a. 11:11:28 Although, for a while, I didn't realize that the let... version was the same as the Y combinator. 11:12:12 --- part: Heffalump left #haskell 11:13:49 Using a combinator for recursion can let you do cute things, though, like this: 11:13:55 http://www.haskell.org/hawiki/MemoizingRecursion 11:13:59 Title: MemoizingRecursion - The Haskell Wiki, http://tinyurl.com/gjxoc 11:14:36 monochrom: how do you know f::a->a? 11:14:39 --- quit: MechaBlue (Read error: 110 (Connection timed out)) 11:14:44 That has a variant of the Y combinator that automatically memoizes its results. 11:15:06 x :: a 11:15:18 f x -> f :: a -> ... 11:15:27 And x :: a -> f :: a -> a 11:15:54 Since f x :: a 11:16:10 We assigned "fix f" to be of type "a". That means "(fix f :: a) = f (fix f :: a)". f takes a parameter of type a and returns something of type a. 11:16:12 Since f x = x 11:16:17 weitzman: there was no x there 11:17:00 As long as (f x) and x have the same type, a 11:17:10 And f must have type a -> ??? 11:17:15 Bam 11:17:22 > take 10 $ fix ((1:) . scanl (+) 1) 11:17:23 [1,1,2,3,5,8,13,21,34,55] 11:18:03 monochrom: ah! I didn't look on the left side. 11:20:14 Let's see, what was the one xerox did the other day... 11:20:51 He photocopied the Haskell manuals? :) 11:21:51 > let factorial = fix (\f x -> if x > 1 then x * f (x-1) else 1) in factorial 5 11:21:52 120 11:21:54 It was a fixed point for generating successive approximations to sqrt 2. 11:22:07 based on the continued fraction? 11:22:12 [1,2,2,2...]? 11:22:27 No. It used the averaging method. 11:22:32 ah 11:23:37 > take 30 $ fix ((1 :) . (1 :) . intersperse 1 . map (+ 1)) 11:23:38 [1,1,2,1,2,1,3,1,2,1,3,1,2,1,4,1,2,1,3,1,2,1,4,1,2,1,3,1,2,1] 11:24:13 > take 30 $ fix (intersperse 1 . (1 :) . map (+ 1)) 11:24:14 Exception: <> 11:24:18 hmm :( 11:24:59 > (fix $ scanl (const ((/2) . ap (+) (2/))) 1) !! 1000 11:25:00 > take 4 $ map (foldr1 (\x y -> x + 1/y) . (1:)) $ inits [2,2..] 11:25:01 1.414213562373095 11:25:02 [1.0,1.5,1.4,1.4166666666666667] 11:25:12 (using the continued fraction) 11:25:48 --- quit: chessguy (" HydraIRC -> http://www.hydrairc.com <- IRC for those that like to be different") 11:25:55 > fix ((\ ~(a:b) -> a:b) . intersperse 1 . (1 :) . map (+ 1)) 11:25:57 [1,1,2,1,2,1,3,1,2,1,3,1,2,1,4,1,2,1,3,1,2,1,4,1,2,1,3,1,2,1,5,1,2,1,3,1,2,1... 11:26:26 --- join: Nextgens_ (i=xterm@gateway/tor/x-a9ff32413fc71714) joined #haskell 11:26:36 --- join: chessguy (n=chessguy@c-69-242-13-143.hsd1.pa.comcast.net) joined #haskell 11:26:56 Nextgens_: very funny 11:26:56 Nextgens_: you still fail at hax0ring 11:26:58 I seem to have generated http://www.research.att.com/~njas/sequences/A091090 possibly 11:27:00 Title: The On-Line Encyclopedia of Integer Sequences, http://tinyurl.com/gu6le 11:27:31 would it be possible to modify haskell so that it's lazy enough for things like (length infiniteList) > 10, work? 11:27:50 only if you make numbers non-atomic or something 11:28:18 mmmm...but the length computation is non-atomic 11:28:35 i guess it's probably pretty expensive to keep checkining if the length is > 10 though 11:28:50 block Nextgens_ please, he is phish for nickservpasswords 11:29:34 lispy: typedef Integer = [Int] 11:29:46 I've already reported this to nalioth 11:29:58 glguy: tanks! 11:30:13 --- quit: Nextgens_ (Excess Flood) 11:30:20 lispy: surface-to-air missles! 11:30:58 11:29 *** Undefined CTCP query received. Silently ignored 11:31:00 The above would work with genericLength and Nat = Succ Nat | Zero 11:31:11 i wish it told me who sent that 11:31:19 lispy: Lucky you. My client dumped out the entire contents. 11:31:26 "silently ignored"? 11:31:26 It would depend on how you implemented the length function 11:31:28 More reasonable is to write a lengthAtLeast, though 11:31:29 it told you tho 11:31:51 "--- Received a CTCP THIS nickname is owned by someone else from Nextgens_ (to #haskell)" 11:31:52 length = Succ (length rest) or length = length rest .... Stick Succ() way inside 11:32:03 13:29 Nextgens_ [i=xterm@gateway/tor/x-a9ff32413fc71714] requested unknown CTCP SOMEBODY from #haskell: has sent you a message, to read it type: /server read 1 11:32:11 that's what I get 11:32:14 --- join: akemp (n=akemp@c-67-180-211-133.hsd1.ca.comcast.net) joined #haskell 11:32:31 --- quit: psi ("rcirc on GNU Emacs 22.0.50.1") 11:32:38 Igloo: ah 11:32:53 and I wonder how stupid a client must be for that to work. 11:32:57 i don't actually have a use for this, just wondreing 11:34:52 --- join: Dr_Pi (n=ivanfrey@CPE00121740417c-CM014370009170.cpe.net.cable.rogers.com) joined #haskell 11:35:34 int-e: stupid enough to actualy type "/msg nextgens_ identify..." 11:35:58 --- quit: lhz ("Leaving") 11:36:05 heh, it's not even like a query window would pop up, you'd actually have to type in the guy's name :) 11:36:44 glguy: first the client would have to display it in some convincing way. 11:36:54 (or so I hope) 11:37:45 I was at the post office today... there were 3 desk clerks. one was imcompetent and took forever to do simple things. one had a crashed computer and could not process customers, and one was looking up regulations in a reference for a customer and filling out 3 passport applications 11:37:56 I was at the clerk with the crashed computer 11:38:03 the line just kept getting longer and longer 11:38:09 people were getting *mad* 11:38:34 the first two should have swapped computers 11:38:38 --- join: madpickle (i=jizzy@i-195-137-52-102.freedom2surf.net) joined #haskell 11:38:49 and also, before we were helped, the lady in front of us took a call on her cell phone *while* the clerk was asking her questions to complete her transaction 11:39:01 eek 11:39:03 and stopped asking questions and seemed to assume the default answers 11:39:10 what a whore 11:39:23 that is probably why postal workers kill people 11:39:29 heh 11:39:40 I'd have shipped her package to "City Dump" 11:39:46 Anyone here knowledgeable in the cgi-compat library? 11:39:50 or rerouted it through under my feet 11:39:56 haha 11:40:04 I think there must surely be rules against that 11:40:07 akemp: Kinda. 11:40:10 oh , there are 11:40:11 the latter, I mean 11:40:11 akemp: kinda 11:40:12 not the former 11:40:20 posted in THREE places in the post office 11:40:22 huge signs 11:40:33 akemp: i used the fastcgi library which is on top of it recently 11:40:34 out of curtesy to the other custumers 11:40:44 please do not talk on your cell phone when approaching the counter 11:40:53 but they dont' say "Don't take any calls at the counter" 11:40:57 that one was assumed 11:41:13 Silly question, but I've gotten busy and haven't coded in a while. Trying to rub off the rust. Question: I'm using cgi-compat to do service a request, but then I need to do some IO actions. How do I do IO in the middle of the CGI monad? 11:41:45 akemp: Use liftIO. 11:41:58 do a <- liftIO $ .... 11:41:59 does CGI transform the IO monad then? 11:42:07 glguy: must surely wrap it 11:42:07 CGI is a transformer, yes 11:42:26 CGIT is a transformer. CGI = CGIT IO. 11:42:29 http://en.wikipedia.org/wiki/Going_postal wikipedia has an entry for everything! 11:42:47 * SamB points out that you can have a MonadIO that isn't a monad transformer 11:42:51 @type lift 11:42:53 forall (t :: (* -> *) -> * -> *) a (m :: * -> *). (MonadTrans t, Monad m) => m a -> t m a 11:43:15 That's what I thought, but I'm getting one of those Haskell uber-errors about overlapping instances created by my use of liftIO. 11:43:22 ?type liftIO 11:43:23 forall (m :: * -> *) a. (MonadIO m) => IO a -> m a 11:43:23 ah, so CGI isn't a transformer it's just a wraper? 11:43:29 akemp: huh? 11:43:31 ?instances MonadIO 11:43:32 ContT r m, ErrorT e m, IO, RWST r w s m, ReaderT r m, StateT s m, WriterT w m 11:43:33 paste something! 11:43:40 Will do 11:43:44 @paste 11:43:45 http://paste.lisp.org/new/haskell 11:44:02 akemp: i noticed he helloworld example in fastcgi required -fallow-overlapping-instances 11:44:11 lispy: eek! 11:44:29 okay, so -fallow-overlapping-instances must be needed for most anything fastcgi! 11:44:37 @where fastcgi 11:44:38 http://www.cs.chalmers.se/~bringert/darcs/haskell-fastcgi/ 11:44:58 --- join: KingMeTaL (n=nitro@tdev222-127.codetel.net.do) joined #haskell 11:45:00 but, i didn't worry about it...i did wonder if it's so you can do both fastcgi or normal cgi with pretty much teh same code 11:45:01 --- quit: beelsebob_ (Read error: 110 (Connection timed out)) 11:45:03 akemp pasted "CGI probs" at http://paste.lisp.org/display/26587 11:45:16 paste is tasty 11:46:07 @where+ fastcgi http://www.cs.chalmers.se/~bringert/darcs/haskell-fastcgi/doc/ 11:46:08 Done. 11:46:10 @where fastcgi 11:46:12 http://www.cs.chalmers.se/~bringert/darcs/haskell-fastcgi/doc/ 11:46:33 The upshot is that I'm using CGI to grab a URI from the CGI call, then using HTTP to retrieve the url. CGI uses the CGI monad; HTTP uses the IO monad. 11:47:34 akemp: i'm not sure what to make of that 11:47:39 --- join: magnus- (n=magnus@pool-72-94-97-200.phlapa.east.verizon.net) joined #haskell 11:47:45 akemp: if you allow overlapping instances does the code work? 11:48:07 Hi.. is there any haskell option to never allow ignoring return values inside do constructs? 11:48:16 ghc option 11:48:21 magnus-: it would be silly! 11:48:48 --- quit: chris2 (Client Quit) 11:48:55 SamB: why? 11:49:24 hmm, you'd have to override >> somehow 11:49:32 because half the times things return ()? 11:49:38 er, *time. 11:49:54 magnus-: i think it's better to wrap up that exec function take advantage of the definition of (>>=) 11:50:14 lispy: -fallow-overlapping-instances worked, though I'm not too happy with it. Don't really know how the solution solved the problems (aside from allowing overlapping instances...). 11:50:49 SamB: We can then make an exception for (). It is fine to ignore () 11:50:50 You'd be unable to write anything with do notation, then, since the last expression in a do has to not be a pattern match. 11:50:51 akemp: then you might want to talk to bringert...he could probably explain why it's needed 11:51:05 lispy: I was about to look at that myself... 11:51:22 Or, unable to write anything that doesn't return () itself, then. 11:51:32 dolio: the last expression can of course return whatever it wants 11:51:47 --- quit: SamB (Read error: 104 (Connection reset by peer)) 11:52:00 magnus-: i could see this as useful 11:52:14 --- join: jcreigh (n=jason@72-160-115-61.dyn.centurytel.net) joined #haskell 11:52:23 magnus-: with the provisions of not caring about () and not caring about the last statement in the do 11:52:47 --- join: Itkovian (n=Itkovian@d54C4B834.access.telenet.be) joined #haskell 11:52:51 hmm, would redefining >> with a restricted type work? 11:52:53 i wonder how hard it would be to get that into ghc 11:53:17 can denotational semantics be used to describe the semantics of functional programming languages? 11:53:23 --- quit: jcreigh (Read error: 131 (Connection reset by peer)) 11:53:46 chessguy: that's how denotational sematics are often use, from what i understand 11:54:19 anybody know of such a description for, say, haskell? 11:54:22 --- quit: jgrimes (Read error: 110 (Connection timed out)) 11:54:27 --- join: SamB (i=naesten@216-15-104-38.c3-0.upd-ubr7.trpr-upd.pa.cable.rcn.com) joined #haskell 11:54:45 I don't think any exist. 11:54:56 boo, hiss! 11:54:57 chessguy: iirc, haskell does not have a denotational semantics written down...i seem to recall mention of this in the history of haskell paper 11:55:08 They were originally planned, but got left by the wayside. 11:55:10 bad form! 11:55:15 Yeah, the history paper talks about it. 11:55:19 chessguy: check tackling the awkward squad for some semantics of haskell IO 11:55:20 lispy: the problem is working fine, so that looks like a complete solution 11:55:29 lispy: s/problem/program 11:55:52 akemp: yeah, i'd like to understand this better as well 11:56:00 mmmm, isn't IO done using monads in haskell? 11:56:45 yup 11:56:58 --- quit: Itkovian (Client Quit) 11:57:04 then it's over my head at the moment 11:57:11 chessguy: tackling the awkward squad would be a good read for you :) 11:57:16 it starts very simple 11:57:17 --- join: jcreigh (n=jason@72-160-49-51.dyn.centurytel.net) joined #haskell 11:57:38 --- join: jgrimes (n=jgrimes@Lee-10-101.rh.ncsu.edu) joined #haskell 11:58:10 Awkward squad covers some of the more interesting areas that would be in such a denotational semantics. 11:58:25 * SamB tried to make WindowMaker think it had segfaulted, but it just died! 11:58:55 SamB: you sent it a segfault signal? 11:59:01 yes! 11:59:10 wouldn't it be safe to say that using denotational semantics for FP should be much easier than imperative languages? 11:59:15 usually when it segfaults it pops up a friendly dialog box offereing to restart it! 11:59:20 since there's no state ? 11:59:23 er. spelled better. 12:00:30 --- join: mejja (n=user@c-272472d5.023-82-73746f38.cust.bredbandsbolaget.se) joined #haskell 12:00:34 That's probably a safe thing to say. 12:01:23 seems to me, that's the crux of why FP is less likely to have mistakes 12:01:31 C is, essentially, always in the IO monad. 12:01:32 or at least the state is kept well away from ordinary functions 12:01:37 --- join: beelsebob (n=tatd2@80-41-95-72.dynamic.dsl.as9105.com) joined #haskell 12:01:58 So if it's harder to give semantics to something like IO, then giving semantics to C would probably be harder than giving semantics to something where only a small part is IO. 12:02:07 yeah 12:02:59 @where cgi-compat 12:03:00 \ 12:03:00 I know nothing about cgi-compat. 12:03:06 sorry 12:03:41 @google "cgi-compat" haskell 12:03:47 http://www.cs.chalmers.se/~bringert/darcs/haskell-cgi/doc/ 12:05:59 @hoogle cgi-compat 12:06:00 Hoogle Error: Parse Error: Unexpected character '-compat' 12:06:37 @where cabal-get 12:06:38 http://hackage.haskell.org/darcs/cabal-get-bootstrap/ 12:07:27 "In short, Haskell is the world’s finest imperative 12:07:27 programming language. 12:07:28 " 12:07:52 --- join: mascht (n=martin@ppp-82-135-75-17.dynamic.mnet-online.de) joined #haskell 12:08:12 --- quit: KingMeTaL () 12:08:22 --- join: Tobsan (n=din@h18n2c1o279.bredband.skanova.com) joined #haskell 12:08:29 ? 12:08:54 ! 12:09:02 a quote from that awkward squad paper 12:09:14 Lemmih: do you know where I can get cabal-get? 12:09:22 chessguy: I don't think Tobsan saw that quote. 12:09:26 without needing to have it first in order to compile it? 12:09:30 --- quit: jcreigh (Connection timed out) 12:09:41 oh, whoops 12:09:42 SamB: It's distributed with Cabal. 12:09:54 Lemmih: ah 12:11:01 @where+ cabal-get Same place as Cabal! 12:11:02 Done. 12:11:48 (cabal-get is now cabal-install, btw) 12:12:26 So, what has Haskell been optimized for that makes it deficient compared to Lisp? :) 12:13:19 @where+ cabal-get cabal-get is now cabal-install, and is in Cabal's source tree 12:13:20 Done. 12:16:42 dolio: readability? 12:17:18 Lemmih: how do I build it? 12:17:25 Heh. 12:18:35 --- join: russo (n=russo@ppp83-237-63-39.pppoe.mtu-net.ru) joined #haskell 12:18:45 --- join: madhorse (n=madhorse@14.Red-80-33-35.staticIP.rima-tde.net) joined #haskell 12:19:27 --- quit: ihope (Connection timed out) 12:19:29 --- join: Itkovian (n=Itkovian@d54C4B834.access.telenet.be) joined #haskell 12:20:02 --- join: blibbet (n=blibbet_@pool-71-102-96-186.sttlwa.dsl-w.verizon.net) joined #haskell 12:20:40 SamB: With cabal. 12:21:33 Lemmih: how come there isn't anything in dependencies/ 12:22:43 I don't even see a dependencies/ directory. 12:22:50 --- quit: gour ("Quit (http://xchat-gnome.navi.cx/)") 12:23:43 Ah, now I see it. 12:23:47 the Cabal/dependencies one ? 12:24:15 --- quit: Itkovian (Client Quit) 12:25:34 xerox: What's up with cabal-install? 12:28:25 it will be really nice when it comes with GHC... 12:29:20 @seen xerox 12:29:21 xerox is in #perl6, #haskell.it, #haskell-overflow, #haskell-blah and #haskell. I last heard xerox speak 1h 48m 46s ago. 12:29:35 @whensleeps xerox 12:29:36 Unknown command, try @list 12:30:02 @version 12:30:03 lambdabot 4p227, GHC 6.5 (OpenBSD i386) 12:30:03 darcs get http://www.cse.unsw.edu.au/~dons/lambdabot 12:30:14 --- quit: madhorse ("Abandonando") 12:30:25 * SamB is using that URL to get to dons's webpage 12:30:54 --- quit: Stinger_ (Remote closed the connection) 12:34:54 --- quit: ragnarok (Remote closed the connection) 12:34:55 * SamB wonders what http://www.cse.unsw.edu.au/~dons/irc/haskell-06.html indicates about xerox's bed time 12:34:57 Title: #haskell @ freenode.org stats by dons, http://tinyurl.com/kpre5 12:38:01 What timezone are the stats in? 12:39:04 Heh, 7th most used word is monad. 12:40:39 hehe. "lambdabot is a very aggressive person. He/She attacked others 87 times." 12:40:53 Poor lambdabot, nobody likes him/her. He/She was attacked 37 times. 12:40:53 For example, like this: 12:40:53 * lambdabot beats up lambdabot 12:40:56 hmm. We use think less often than Haskell? 12:41:10 Poor lambdabot, nobody likes him/her. He/She was attacked 37 times. 12:41:10 For example, like this: 12:41:10 * lambdabot beats up lambdabot 12:41:15 I also like dcoutts_'s place using the most foul language at 0.0%. 12:42:03 vincenz talks to him/herself a lot. He/She wrote over 5 lines in a row 529 times! 12:42:16 tibbe also makes sailors blush, 0.0% of the time. 12:42:22 yeah yeah 12:42:31 I'm also second after dons 12:42:32 hmm, it doesn't collect statistics on how many "boings" someone makes! 12:42:36 and I've been away from IRC for quite a bit! 12:42:43 Great, my current quote has a typo. 12:42:54 Cale: like my even spread? 12:43:03 hehe 12:43:19 --- quit: ski (Read error: 110 (Connection timed out)) 12:43:26 vincenz: more even than lambdabot 12:43:49 Cale: lambdabot dies randomly and is restarted when dons gets up ;-) 12:44:02 but I've been away from irc quite a bit 12:44:02 log into less, idle more 12:44:02 and still third 12:44:02 o.O 12:44:15 --- join: paolino (n=paolino@151.82.7.166) joined #haskell 12:44:27 vincenz: this is for the year so far 12:45:01 yeah 12:45:05 and I've been gone quite a bit 12:45:20 --- quit: russo (Read error: 131 (Connection reset by peer)) 12:46:21 --- quit: mnislaih () 12:46:41 --- join: dcoutts__ (n=duncan@wlan42.mittag-leffler.se) joined #haskell 12:46:47 --- join: jcreigh (n=jason@72-160-112-235.dyn.centurytel.net) joined #haskell 12:48:29 Heh. "Python browser in 25 lines." 12:48:41 Oh? 12:48:41 All you need is a library that does all the work for you. :) 12:48:44 Hehe 12:48:51 --- join: russo (n=russo@ppp83-237-63-205.pppoe.mtu-net.ru) joined #haskell 12:49:05 25 lines, out of which three are "Import HTTP; import Socket; import Browsing;" ? 12:49:41 it's even easier than that 12:49:42 * vincenz snickers 12:49:47 I didn't look at the code. That seems pretty low level, though. 12:49:48 import win32client.com; 12:49:49 I could write one in haskell in three lines then 12:49:52 module balbla where 12:49:55 import Maincode 12:49:55 then just use IE 12:49:59 main = callmaincode 12:50:07 lispy: cheating! 12:50:31 more to the point, it only works on windows! 12:50:54 SamB: what eles is there? 12:51:15 SamB: oh 12:51:22 SamB: why would you use the internet from dos anyway? 12:51:27 um. 12:51:31 ... 12:51:35 I could never figure that out either, actually! 12:51:53 but, there is this thing called Lunix that some people are liking to use 12:52:02 Essentially, it's "make a button, make an html window, make a text box..." 12:52:03 it would be hard to write a browser as a TSR program 12:52:15 --- quit: mrchebas () 12:52:16 "On click, get url contents, feed into html window." 12:52:45 --- quit: chrisb__ (Connection timed out) 12:53:17 --- quit: paolino (Remote closed the connection) 12:53:57 okay, I think dcoutts broke it! 12:54:08 --- quit: beelsebob () 12:54:08 !? 12:54:08 dcoutts__: You have 1 new message. '/msg lambdabot @messages' to read it. 12:54:23 dcoutts: you took out the dependencies for cabal-install! 12:55:03 SamB: yes. they were well out of date 12:55:18 none of them were being used 12:55:38 was I wrong? 12:56:30 well, there were a lot of references in the cabal file for cabal-install to things in ../dependencies 12:56:31 dcoutts__, thanks on your GTK + Windows stuff, how long before it ends up in the latest releases of the GTK package and Gtk2Hs? 12:56:36 dolio: I've got a browser in 25 lines too, in Haskell with Gtk2Hs and Mozembed 12:56:41 however, its possible those were stale too... 12:57:06 however, the cabal-install in head does not build! 12:57:19 at least, not in any obvious way 12:57:25 indeed, we're waiting for xerox's code 12:57:31 SamB: I think the only one it needs now is a http backage 12:57:34 dcoutts__, if i use windows do i get mozembed for free? or does it require firefox/extra libs etc? 12:57:41 Yeah, I figured it's pretty easy in any decent language that includes an html rendering widget in one of its libraries. 12:58:16 ndm_: mozembed for windows is a bit tricky last I looked because they don't normally build gtk+ builds of firefox for windows 12:58:24 * ndm_ imagines an hs-plugins based extension system to the browser 12:58:43 ndm_: I've seen some stuff about it though because novel's ports of some gtk/mono stuff uses an embeded browser 12:58:46 --- nick: ndm_ -> ndm 12:59:14 ndm: as for gtk+ 2.10.x, I'm still waiting for a win32 installer 12:59:39 --- join: psi (n=psi@c-c97e71d5.015-127-6c756c1.cust.bredbandsbolaget.se) joined #haskell 12:59:42 dcoutts: so, are you telling me that some code that is not yet in the repository does not need all these things, but the code there now does? 12:59:42 the people who were doing the 2.8.x ones have been a bit quiet 12:59:57 SamB: right 13:00:13 dcoutts__, what about the threading thing, any updates on that? its holding back GuiHaskell, which has the potential to become quite useful... 13:00:23 so... why did you remove the dependencies *before* this code was added to the repo? 13:00:23 and will certainly kill WinHugs stone dead 13:00:23 SamB: and we don't build the version currently in the repo 13:00:46 ndm: we have to talk to JaffaCake about that 13:01:09 ndm: he said he'd think about it, after 6.6 is released we can talk to him 13:01:35 dcoutts__, cool, thats nice to know 13:01:44 in the meantime Yhc is marching onwards 13:01:51 good! 13:01:54 a port might get to the point of possible soonish 13:02:02 cool 13:02:23 ndm: I talked with him about it at the msr thing in cambridge, the day before you arrived 13:02:39 dcoutts__, yep, you said 13:02:57 dcoutts__, oh, we might have a gentoo ebuild at some point soon, turns out of build master is a gentoo guy 13:03:11 cool 13:03:22 ndm: a gentoo dev or user? 13:03:24 any thoughts on that? would the gentoo haskell team rather it was turned over to you? 13:03:40 dcoutts__, on linux dev = user (but i think he's more a user than a dev officially) 13:03:47 ndm: well you can darcs send it to get it into our repo 13:03:59 we can jointly maintain it 13:04:00 ndm: not when it comes to packages! 13:04:24 sounds best, since you're the more gentoo style people, i think 13:04:38 ndm: we have 5 official gentoo haskell devs, these are people who have passed a test and have commit access to the portage tree. 13:04:43 he seemed to talk like it was a 10 minute job 13:04:51 we now have windows snapshot builds 13:04:51 dcoutts: a test? 13:04:52 probably is 13:05:01 certification 13:05:18 * lispy wants to become a debian dev but never put in the effort to get it 13:05:37 ndm: so yes, he and us can maintain it in our darcs repo of haskell ebuilds, that'd work well 13:05:49 lispy: do you at least have a properly-signed GPG key? 13:05:51 @where gentoo-haskell 13:05:51 I know nothing about gentoo-haskell. 13:05:58 @where gentoo 13:05:59 I know nothing about gentoo. 13:05:59 SamB: nope 13:06:05 ndm: see #gentoo-haskell 13:06:20 ndm: and then we can take responsability for getting it into portage once it's been tested in our overlay 13:06:33 dcoutts__, i was just looking for a darcs repo he can prod it in the direction of 13:06:42 ok, thats cool, probably save us some work 13:07:00 ndm: darcs get http://haskell.org/~gentoo/gentoo-haskell/ 13:07:01 Title: Index of /~gentoo/gentoo-haskell 13:07:17 use --partial I think 13:07:25 it's got a lot of change history 13:09:06 --- join: ski (n=prolog@www.ieee.aegean.gr) joined #haskell 13:09:08 http://code.google.com/p/yhc/issues/detail?id=34 13:09:11 Title: yhc - Google Code, http://tinyurl.com/l28z6 13:09:21 i've filed a bug and assigned it to someone else, so they'll get round to it sometime 13:10:03 * SamB just tried to cat a URL ;-) 13:10:13 * ndm enjoys opening bugs and assigning them to other people 13:10:17 You should switch to Plan9, then. 13:10:41 does that actually work on plan9? 13:10:50 I thought plumbing was only for mousey things! 13:11:05 --- nick: eno -> eno-away 13:11:05 anyway... 13:11:19 Probably not. But you'd no longer think in terms of URLs, but think of URLs as a special case of filesystem paths. :) 13:11:20 http://hackage.haskell.org/ModHackage/Hackage.hs?action=xmlrpc is giving me errors, and worse, they are in HTML! 13:11:25 http://tinyurl.com/kryof 13:11:36 well, wait. 13:11:42 And maybe then it's possible. :) 13:11:45 that might not be what cabal-install sees... 13:13:07 hmm, it certainly *LOOKS* like HTML when I strace it... 13:16:26 isn't that supposed to give you something in XML-RPC back, now? 13:17:57 this is the full URL it was requesting: http://hackage.haskell.org/ModHackage/Hackage.hs?action=xmlrpc/00-latest.txt 13:18:00 http://tinyurl.com/mzvfy 13:18:32 --- quit: psi (Remote closed the connection) 13:22:02 @where HackageDB 13:22:03 http://hackage.haskell.org/ModHackage/Hackage.hs?action=home 13:25:24 --- quit: beschmi ("Leaving") 13:26:00 @where HaskellDB 13:26:01 http://haskelldb.sourceforge.net/ 13:31:15 --- join: psi (n=psi@c-c97e71d5.015-127-6c756c1.cust.bredbandsbolaget.se) joined #haskell 13:31:30 --- part: jak left #haskell 13:33:58 does anyone remember my rant about how linux will only be adopted by linux devotees girlfriends and friend? 13:34:40 well, I found this link on digg, and thought it was funny and relevent http://www.bunchos.com/_wp/?page_id=3 13:34:42 Title: Bunchos dot Com » Quick guide to get a girlfriend using Linux 13:34:50 glguy: what about programmers and tech people? 13:35:17 SamB: I'd suppose that anyone being techy enough to end up liking linux is classified as a devotee anyway. 13:35:24 heh 13:37:37 "Well, it might help if don’t call her bitch or diminish her cool Mac laptop." 13:37:44 heh 13:39:48 why would you have to fake having power... 13:41:33 ? 13:41:44 are you reading that whole thing on how to get a girlfirend? 13:42:17 --- quit: cwenner (Read error: 110 (Connection timed out)) 13:43:12 I think he left out a step... 13:43:17 a rather large one! 13:43:52 --- join: lightstep (n=amir@DSL217-132-222-241.bb.netvision.net.il) joined #haskell 13:44:31 and which step is that? 13:44:33 hmm, you know how "where" works? 13:44:37 --- join: jak (n=jak@85-210-239-158.dsl.pipex.com) joined #haskell 13:44:46 yes 13:44:51 http://paste.lisp.org/display/26591 13:44:57 what's wrong then`? 13:45:07 exept me having big tabs 13:45:51 Tobsan: I think that *is* the problem 13:46:10 where (theCard, newDeck) = getCard indx (Add c h) 13:46:10 newIndx = randomR (0, sizeH hand) 13:46:21 notice how those two bindings aren't lined up? 13:46:28 --- join: Itkovian (n=Itkovian@d54C4B834.access.telenet.be) joined #haskell 13:46:42 SamB i'm afraid i don't really understand 13:46:45 --- join: ramza3 (n=ramza3@c-24-99-72-157.hsd1.ga.comcast.net) joined #haskell 13:47:02 am i supposed to do two "where"s? 13:47:09 --- quit: femol (Remote closed the connection) 13:47:46 Tobsan: no, the first ( and the newIndx should line up. 13:47:50 Tobsan: you are supposed to use tabs with width 8 13:48:01 or not use any tabs 13:48:05 SamB i know that x) 13:48:14 Tobsan: so *do* that 13:48:15 int-e ok, i'll check it out 13:48:15 --- quit: phas ("Ex-Chat") 13:48:25 http://paste.lisp.org/display/26591#1 13:49:19 Add( theCard (shuffle' newIndx newDeck gen) ) is also wrong. 13:49:35 Add theCard (shuffle' newIndx newDeck gen) is what you probably mean 13:49:55 int-e perhaps...but that doesn't matter i guess 13:50:05 no it does matter 13:50:16 the two expressions have different meanings 13:50:38 Add (a b) applies Add to one argument; Add a b applies Add to two arguments. 13:50:47 int-e not in this case 13:50:55 and Add( a b ) is misleading but means Add (a b) 13:50:58 i'm positive 13:51:04 --- join: cwenner (n=cwenner@lund-idb4-ux4-vl88-85-235-31-166.perspektivbredband.net) joined #haskell 13:51:27 (Add a b) would be Add a b again. 13:51:58 int-e ok, well i've changed it, but i'm still getting the same error 13:52:10 unexpected "=" 13:52:34 did you look at glguy's annotation? 13:53:16 the cause of that error is the indentation problem I think. 13:53:23 int-e yes, but he didn't change anything, did he? 13:53:34 sure, he changed the indentation 13:53:37 that's significant 13:54:22 yes. seriously. if you switch to width-8 tabs, your program will work (as soon as it lines up) 13:54:29 lol, why would I paste it if I didn't change anything?? 13:54:30 your where clause is equivalent to where (theCard, newDeck) = getCard indx (Add c h) newIndx = randomR (0, sizeH) all on the same line, because of the way you indented it. 13:54:31 int-e ok, i changed my indentation, but now it's complaining about newIndx 13:55:11 glguy sry, didn't know that indentation mattered 13:55:17 then you probably didn't indent it far enough. 13:55:36 Tobsan: seriously! 13:55:46 set your editor to 8 spaces per tab! 13:55:56 SamB ok, trtying 13:55:59 trying* 13:56:34 SamB you know how to do that in TextPad? 13:56:58 * glguy wonders if textpad has bindings to launch vim... 13:56:58 nvm, found it 13:59:10 --- quit: jcreigh (Read error: 131 (Connection reset by peer)) 13:59:22 * SamB doesn't know how to get *out* of sane-tab-mode 14:01:04 oh, and I use emacs 14:01:39 Tobsan: TextPad is great, but set it to convert Tabs to Spaces on both creation and saving. Saves you all this hassle, and you can still use 4 spaces for a tab (which is much nicer in my opinion) 14:01:56 ndm ok, thanks 14:01:58 Tobsan: and use WinHugs, which nicely integrates with TextPad :) 14:02:08 ndm i do 14:02:22 good good :) 14:02:38 bnut about my code...it complaines again 14:02:43 SamB: sane-tab-mode == ugly-tab-mode 14:02:44 (unexpected symbol "newIndx") 14:02:45 Yeah, I don't think the tab key should get you a tab char either ;-) 14:03:06 by sane-tab-mode, I mean the tabstops are 8 characters apart 14:03:22 in textpad, convert tabs to spaces on creation gives you "never put a tab in my document" mode, which is what everyone should use 14:03:22 nothing to do with the tab key! 14:03:34 no one should ever use tabs, then we'd have no issues 14:03:43 i don't really care about the tabs...' 14:03:45 Tobsan: newIndex? 14:03:46 this is true 14:03:50 ndm yes 14:03:58 Tobsan: paste your code, and the error message 14:04:00 @paste 14:04:00 http://paste.lisp.org/new/haskell 14:04:09 ndm, http://paste.lisp.org/display/26591 14:04:27 but, by the same token, there would be no need to set tabs to display at different widths ;-) 14:04:28 Syntax error in input (unexpected symbol "newIndx") 14:05:25 Tobsan: paste edited with my version, which should fix that 14:05:31 its the indentation again, i think 14:05:31 Tobsan: that's the old code. 14:06:06 Tobsan: and you're not indenting newIndx far enough now I think. The 'n' has to line up with the first ( on the previous line. 14:06:09 are you saying all my errors are indent-problems? 14:06:23 no, but all your syntax errors are. 14:06:35 or so I think right now. 14:07:31 rule of thumb: put a linebreak after each "do" and "where" 14:07:56 lol, i had no idea that the indentation mattered that much 14:08:03 but now that part works 14:10:31 --- join: chrisb__ (n=chrisb@84.208.117.180) joined #haskell 14:10:50 thanks guys, i think i cleared most of it there 14:14:51 --- join: cinema (n=cinema@AMontsouris-151-1-25-12.w82-123.abo.wanadoo.fr) joined #haskell 14:16:25 I'm tired of "news headlines" with question marks in them (especially after watching jon stewart rip into them) 14:17:17 --- quit: monochrom (Read error: 110 (Connection timed out)) 14:17:55 glguy: indeed 14:18:12 glguy: I even hate them on Slashdot, when I bother to read Slashdot. 14:19:16 --- join: ihope (n=foo@c-71-205-100-59.hsd1.mi.comcast.net) joined #haskell 14:19:20 I wish more people reacted to media garbage like I do, it might slow down 14:19:31 when I hear "are you getting jewed? find out more at 10" 14:19:36 I immediately change the channel 14:19:50 Jewed? They can say that on TV? 14:19:53 "jewed?" 14:20:03 i can't beleive they can! 14:20:25 Can they? 14:20:26 yeah... i guess they don't say that 14:20:29 --- join: monochrom (n=trebla@toronto-hs-216-138-220-146.s-ip.magma.ca) joined #haskell 14:20:50 --- quit: iblechbot (Read error: 145 (Connection timed out)) 14:21:08 All this crap about terrorism though 14:21:36 but i agree with the point, ITV news in the UK is now a succession of adverts for upcoming ITV programs - "Has a cure to the superbug been found?" - answer, watch a program on tomorrow to find out 14:23:40 There has never been a significant terror threat. Each year, more people die in Canada from automobile accidents than all the people killed by terrorism around the world. 14:24:21 Cale: you're never going to make money with an honest attitude like that 14:24:51 the trick is to be a piece of shit marketing person 14:25:40 --- join: sad0ur (n=sad0ur@rb1a240.net.upc.cz) joined #haskell 14:25:56 hmm, I'm a very angry person 14:26:16 what scares me is that you can't bring water on a flight, but semtex is ok 14:26:27 semtex? 14:26:39 @wikipedia Semtex 14:26:42 No Result Found. 14:26:57 I'm not the only one that doesn't know what it is then :) 14:27:09 Semtex is a brand of energy drink manufactured in the Czech Republic. 14:27:12 @tell dons @wikipedia is just totally broken... 14:27:12 Consider it noted. 14:27:17 http://en.wikipedia.org/wiki/Semtex_%28drink%29 14:27:19 http://tinyurl.com/r7rag 14:27:22 Semtex is a general-purpose plastic explosive 14:27:37 a bomb thats really powerful, light, and plasticy 14:28:07 As little as 250g can down an airliner 14:28:13 thats a nice statistic :) 14:29:26 * ndm adds to his Christmas list 14:31:17 ?localtime ndm 14:31:18 Local time for ndm is 23 September 2006 10:30 pm 14:31:27 good... you don't live anywhere near me 14:32:36 haha 14:32:45 ndm you live in UK? 14:32:57 Tobsan: yep 14:33:08 off to watch tv now (the shining), bye 14:33:17 :o Jack nicholson 14:33:25 --- join: chrisb (n=chrisb@84.208.117.180) joined #haskell 14:34:23 --- quit: chrisb__ (No route to host) 14:34:43 ?localtime glguy 14:34:44 Local time for glguy is Sat Sep 23 16:34:22 2006 14:37:58 --- quit: yip (Read error: 60 (Operation timed out)) 14:40:14 --- quit: chessguy (" HydraIRC -> http://www.hydrairc.com <- IRC has never been so good") 14:42:47 --- quit: ramza3 (Read error: 54 (Connection reset by peer)) 14:45:34 --- join: fwd (n=fwd@81.25.38.234) joined #haskell 14:45:47 This just in on digg... "Is Debian dying?" 14:46:30 --- quit: therp (Read error: 60 (Operation timed out)) 14:47:04 --- quit: Foxyloxy ("Sausages!") 14:47:18 digg? 14:47:37 heh, that's a change of pace over BSD dying 14:49:01 I think that most people that know what the *BSDs are have realized that it's not going away 14:50:00 --- quit: buggmuzz (Read error: 110 (Connection timed out)) 14:50:31 glguy, I'm being a smartass. 14:50:46 --- join: Dreadshoot (i=none@81-229-125-50-no50.tbcn.telia.com) joined #haskell 14:50:53 me too 14:51:20 --- quit: Itkovian () 14:51:26 BSD might not be going away, but having used FreeBSD a few years ago, I can say it's not going to lose any ground to Linux in the desktop market anytime soon 14:51:36 I mean 14:51:39 The opposite of that 14:52:08 What I'm trying to say, is that it sucked on the desktop compared to linux 14:52:15 There, that wasn't so hard to say 14:52:54 but that argument works easily against Linux vs OS X and Windows, but that doesn't stop people from adopting linux 14:53:06 but also i don't see BSD and the answer to the desktop anyway 14:53:16 Well, there are certain things Linux has that are very useful 14:53:22 Like a giant community 14:53:37 And I prefer the debian/ubuntu package repository to ports 14:53:43 I had some problems with ports 14:53:50 It's nice when an army of geeks maintain your packages 14:54:45 Actually I went with FreeBSD in 2003 after a failed attempt at a Debian install 14:55:04 At the time I was happy, but I switched to Ubuntu and haven't missed BSD 14:55:32 ;) 14:55:34 * weitzman disappears 14:57:02 It's nice when an army of geeks maintain your packages ;) sounds cool 14:59:29 --- join: perspectiva1 (n=silas@rb4b68.net.upc.cz) joined #haskell 14:59:30 --- quit: perspectival (Read error: 104 (Connection reset by peer)) 14:59:40 --- quit: jak ("Leaving") 15:03:26 --- quit: MikeJS (Remote closed the connection) 15:03:39 --- quit: dcoutts__ (Read error: 110 (Connection timed out)) 15:04:24 --- quit: cinema ("Leaving") 15:05:42 --- join: Limbic_Region (n=Limbic_R@p3m/member/Limbic-Region) joined #haskell 15:10:49 --- join: johnnowak (n=johnnowa@207-38-246-119.c3-0.wsd-ubr2.qens-wsd.ny.cable.rcn.com) joined #haskell 15:11:26 --- quit: psi (Remote closed the connection) 15:12:37 --- join: psi (n=psi@c-c97e71d5.015-127-6c756c1.cust.bredbandsbolaget.se) joined #haskell 15:14:36 --- quit: chrisb (Read error: 110 (Connection timed out)) 15:16:51 What is the best option for mutable variables? The StateMonad or IORef? 15:19:55 --- join: nanavati_ravi (n=ravi@c-66-30-140-14.hsd1.ma.comcast.net) joined #haskell 15:20:07 --- quit: psi (Remote closed the connection) 15:23:53 araujo: What do you need? 15:26:15 --- quit: monochrom ("Ex-Chat") 15:26:20 Lemmih, I need to have some kind of destructive-updating 15:26:22 araujo: The State monad is decent when you just want a simple piece of state which is carried through an otherwise pure computation. 15:26:27 For a variable. 15:26:38 --- join: psi (n=psi@c-c97e71d5.015-127-6c756c1.cust.bredbandsbolaget.se) joined #haskell 15:26:41 For more complex kinds of state in a pure computation you can use the ST monad 15:27:08 IORefs are more for carrying around state in a computation which already involves IO in some way 15:27:46 yeah, that is it. 15:28:03 and for very simple thread communication (for anything serious in the way of thread communication, you should use MVars or Chans or soomething like that) 15:28:38 Well, the variable needs to be accessed by a single thread. 15:28:42 okay 15:28:56 Is it worthy to use MVars? 15:28:58 Then it's probably an IORef, if you're already in IO 15:29:03 --- quit: Limbic_Region (" HydraIRC -> http://www.hydrairc.com <- The professional IRC Client") 15:29:11 Yes, i am in there .... 15:29:17 If you're in a single threaded program, an MVar is probably inappropriate 15:29:35 since attempting to read from an empty MVar will cause your thread to block 15:29:45 Yes, i noticed that :-) 15:31:16 --- join: beelsebob (n=tatd2@82.152.117.217) joined #haskell 15:31:33 Cale, OK, so, considering the IO, the IORef would be the way to go , do you know any good paper to read about it? 15:32:06 There's not much to IORefs 15:32:06 --- quit: nanavati_ravi (Read error: 104 (Connection reset by peer)) 15:32:15 :-( 15:32:35 you create a new IORef using newIORef 15:32:43 (and giving an initial value) 15:32:58 and then you can read or write to that IORef with readIORef and writeIORef 15:33:03 --- quit: kombinator ("Leaving") 15:33:11 there's also modifyIORef which will apply a function to the value in the IORef 15:33:17 yeah, i can see the library is pretty straightforward to use, i just wanted some theoretical background. 15:33:32 Well, it's just a pointer, really :) 15:33:41 I see. 15:34:04 Note that since it points at a Haskell value, the value contained by an IORef might not be evaluated yet. 15:34:08 It could even be undefined 15:34:40 IORef is mentioned here http://research.microsoft.com/~simonpj/Papers/marktoberdorf/ 15:34:41 Title: Simon Peyton Jones: papers, http://tinyurl.com/jl2rm 15:34:50 So they are lazy .... 15:35:01 right 15:35:13 Nice, lazy references .. mm 15:35:24 well, writeIORef will cause the pointer to be updated immediately, of course 15:35:33 yeah, makes sense 15:35:36 but the value it points to is not evaluated at all by this 15:35:44 i guess the modify function too right? 15:36:01 right 15:36:02 Ok, that's the nice part. 15:36:25 It updates only the reference. 15:36:29 So you should be a little careful about it though, since it's easy to build up stack overflows waiting to happen 15:37:08 I am not used to work with this kind of computation (and probably i wouldn't like to get used to), i hope to use only a single variable for now. 15:37:22 > foldl (+1) 0 [1..1000000] 15:37:23 Occurs check: cannot construct the infinite type: t = b -> t 15:37:23 Expec... 15:37:24 --- join: chessguy (n=chessguy@c-69-242-13-143.hsd1.pa.comcast.net) joined #haskell 15:37:30 > foldl (+) 0 [1..1000000] 15:37:32 Exception: stack overflow 15:37:35 like that 15:37:38 :-( 15:37:39 (only with IORefs :) 15:37:50 I see ... 15:37:50 So you might want to force some evaluation from time to time 15:38:20 Ok, i see it brings pretty much the annoyance of pointers in other languages .... 15:38:21 depending on what you're doing 15:38:35 well, at some degree .... 15:38:46 Cale, now you scared me :-P 15:39:10 --- quit: beelsebob () 15:39:16 So if you're doing something like an accumulator, force the computation to occur when you make the update. 15:39:25 Good good. 15:39:32 That's all there is to that :) 15:39:39 Ok, Thanks Cale ! 15:39:42 Thanks astrolabe ! 15:40:04 Ah. I thought you'd missed it :) 15:40:04 I will get some food first and then i'll try this :-) 15:40:14 * araujo off 15:41:26 --- quit: weitzman (Read error: 110 (Connection timed out)) 15:49:46 * vincenz is off 15:49:47 night! 15:50:14 --- quit: vincenz ("leaving") 15:54:31 --- quit: lightstep ("Ex-Chat") 15:54:59 --- join: jcreigh (n=jason@72-160-112-235.dyn.centurytel.net) joined #haskell 15:55:10 --- join: nanavati_ravi (n=ravi@c-66-30-140-14.hsd1.ma.comcast.net) joined #haskell 15:57:12 --- join: weitzman (n=david@CMU-198389.WV.CC.cmu.edu) joined #haskell 15:57:17 --- join: MikeJS (n=mike@24.151.112.174) joined #haskell 16:00:54 --- quit: sad0ur ("leaving") 16:01:48 --- join: stepcut (n=user@ip68-107-68-183.sd.sd.cox.net) joined #haskell 16:06:25 --- quit: mascht ("Lost terminal") 16:09:26 --- quit: Jaak ("leaving") 16:10:35 --- quit: Averell (Read error: 145 (Connection timed out)) 16:11:24 --- part: br1 left #haskell 16:17:11 --- quit: takuan ("leaving") 16:17:32 --- join: abc (n=abc@a052.201.adsl.nextweb.net.mt) joined #haskell 16:18:11 --- join: darinm (n=dwm@moscow-cuda-gen2-68-64-62-137.losaca.adelphia.net) joined #haskell 16:19:09 --- join: br1 (n=br1@r200-40-217-60-dialup.adsl.anteldata.net.uy) joined #haskell 16:20:07 --- quit: Twigathy (Remote closed the connection) 16:21:14 --- join: Averell (i=averell@p3m/member/Averell) joined #haskell 16:28:15 --- join: Twigathy (n=Twigathy@82.152.117.217) joined #haskell 16:30:34 --- join: beelsebob (n=tatd2@80-41-16-27.dynamic.dsl.as9105.com) joined #haskell 16:30:37 --- quit: fwd (Read error: 113 (No route to host)) 16:32:18 http://www.codinghorror.com/blog/archives/000684.html 16:32:20 Title: Coding Horror: When Understanding means Rewriting, http://tinyurl.com/evfed 16:32:33 this article claims that programmers spend tons of time understanding old code 16:32:36 --- join: ramza3 (n=ramza3@c-24-99-72-157.hsd1.ga.comcast.net) joined #haskell 16:32:39 lots of time rewriting code 16:32:44 and a little time writing new code 16:32:56 that doesn't jibe with what I've seen 16:33:09 people don't bother to "understand" what they are modifying 16:33:14 they just dive in and break stuff! 16:36:20 which works fine *if* breakage is easily detected... 16:36:21 --- quit: matthew-_ (Read error: 104 (Connection reset by peer)) 16:40:20 --- join: chrisb (n=chrisb@cm-84.208.117.180.chello.no) joined #haskell 16:41:03 --- quit: Prip ("Sto andando via") 16:46:46 --- quit: abc () 16:47:00 --- quit: stepcut (Read error: 110 (Connection timed out)) 16:57:38 --- quit: twanvl () 17:01:05 --- quit: johnnowak () 17:01:16 --- nick: Dreadshoot -> x3m 17:01:57 --- quit: mejja (Read error: 110 (Connection timed out)) 17:07:33 --- quit: erider (Read error: 110 (Connection timed out)) 17:08:02 --- join: erider (n=erider@unaffiliated/erider) joined #haskell 17:08:52 --- quit: ndm ("Chatzilla 0.9.74 [Firefox 1.5.0.7/2006090918]") 17:09:38 --- quit: int-e ("Bye!") 17:12:21 can you compile stuff(to exe) through ghci? 17:14:54 x3m: I don't know. Why don't you use ghc proper? 17:15:33 who says i dont? 17:15:47 What do you mean by ghci then? 17:16:06 the interpreter prompt or whatever it is 17:16:36 Ah, OK. So you have been compiling through ghc but you want to use ghci now? 17:16:48 i just wonder if its doable 17:17:40 Well. You can escape to the prompt with "!:" so that's a way. 17:18:17 It's the other way: ":!" 17:18:28 --- nick: tmoertel_away -> tmoertel 17:19:13 *** Exception: system: invalid argument (null command) 17:19:21 when trying :! 17:19:53 You have to put something after that: ":! ghc mimod.hs" 17:21:06 ah okay 17:22:16 --- quit: erider (Read error: 104 (Connection reset by peer)) 17:25:50 --- quit: foxy (Read error: 110 (Connection timed out)) 17:26:29 --- join: erider (n=erider@unaffiliated/erider) joined #haskell 17:27:36 hmm 17:30:41 how is a hello world app supposed to look like 17:30:59 main = putStrLn "Hello World" this seems to work 17:31:33 but the tutorial mentions: module Main on a line above, i tried that and then it didnt compile 17:31:47 it should be "module Main where" 17:32:42 and yes, that is the usual structure 17:33:20 --- join: Deformative-II (n=joe@c-68-61-240-49.hsd1.mi.comcast.net) joined #haskell 17:33:29 with module Main where it doesnt compile 17:33:53 then i get: test2.hs:2:0: parse error on input 'main' 17:34:04 * araujo back 17:34:13 :-) 17:34:19 "lisp never had type-safe compile-time lambdas." 17:38:02 --- part: nanavati_ravi left #haskell 17:38:20 this module stuff dont work 17:40:17 ?where paste 17:40:17 http://paste.lisp.org/new/haskell 17:40:28 Perhaps you should paste what you're trying to compile there. 17:42:12 test pasted "." at http://paste.lisp.org/display/26604 17:43:03 thats it, pretty much what i've allready said 17:44:58 --- quit: cwenner (Excess Flood) 17:45:01 --- quit: cptchaos ("Download Gaim: http://gaim.sourceforge.net/") 17:45:06 Hmm. Odd. 17:45:31 --- join: cwenner (n=cwenner@lund-idb4-ux4-vl88-85-235-31-166.perspektivbredband.net) joined #haskell 17:45:34 x3m: What line do you use tom compile? 17:45:40 its in ghc in win btw 17:46:05 --- quit: darinm () 17:46:15 ghc --make test.hs -o test 17:47:21 line endings? junk characters? 17:47:29 The file must be named main 17:47:41 oh, trying that 17:47:53 no, no junk and line endings exactly as i did in the paste 17:48:19 lol, i like the contrast between quicksorts in C and Haskell in http://www.haskell.org/haskellwiki/Introduction 17:48:20 --- join: stepcut (n=user@ip68-107-68-183.sd.sd.cox.net) joined #haskell 17:48:22 Title: Introduction - HaskellWiki, http://tinyurl.com/eogyw 17:49:11 2 lines versus 25ish 17:49:18 :) 17:49:18 x3m: try putting it on one line. module Main where main = putStrLn "hello" 17:49:20 got it to work now 17:49:37 x3m: Great 17:49:48 --- join: dfranke (n=dfranke@ip24-250-204-33.ga.at.cox.net) joined #haskell 17:51:13 I wonder how bad in-place qsort would be in the ST monad. 17:51:36 ST? 17:52:12 ST is a monad that lets you do imperative programming minus IO, essentially. 17:53:37 --- nick: tmoertel -> tmoertel_away 17:53:45 "An incestuous example: the Glasgow Haskell compiler is written in Haskell: a 30,000-line application" 17:58:24 dolio: I'm more interested in cool uses of the accum constructor funciton for arrays 17:58:52 --- quit: tennin (Read error: 110 (Connection timed out)) 17:59:02 oh, it's more like 60k now 17:59:03 dons: You have 2 new messages. '/msg lambdabot @messages' to read them. 17:59:05 i should update that 18:01:46 i assume the 30k is for Haskell 90 18:01:47 98 18:03:34 let fac n = if n == 0 then 1 else n * fac (n-1) in fac 3 18:03:37 > let fac n = if n == 0 then 1 else n * fac (n-1) in fac 3 18:03:38 6 18:03:44 > let fac n = if n == 0 then 1 else n * fac (n-1) in fac 0 18:03:45 1 18:03:54 > let fac n = if n == 0 then 1 else n * fac (n-1) in fac -1 18:03:54 add an instance declaration for (Num (a -> a)) 18:04:17 strange error 18:04:41 > let fac n = if n == 0 then 1 else n * fac (n-1) in fac (-1) 18:04:43 Exception: stack overflow 18:04:43 fac - 1 parses as (-) fac 1, not fac (-1) 18:04:58 aha 18:04:59 Or, fac -1, even. 18:11:32 br1 pasted "monomorphism" at http://paste.lisp.org/display/26606 18:12:03 Could anyone look into my problem there, please? 18:13:39 --- quit: blibbet ("Leaving") 18:16:29 A :: B -> C -> D means that A is a function which taeks an argument of type B and an argument of type C and returns something of type D, right? 18:16:39 yes 18:16:52 but A should be lower case 18:16:52 --- quit: fnordus (Read error: 104 (Connection reset by peer)) 18:17:20 well, ok, it was just an example 18:17:49 so if it was A :: B -> C -> D -> E, then there are three arguments? 18:17:50 --- quit: der_eq (Read error: 54 (Connection reset by peer)) 18:18:43 One way of looking at it is that A takes an argument of type B and returns a value of type C -> D -> E 18:19:07 hmmm 18:19:30 but the easier way to look at it is what i said, right? 18:20:06 Possibly, but your way might confuse you if E = Int -> Char 18:20:20 In which case there are 4 arguments 18:20:44 aha. so i was assuming primitive types naively 18:22:10 Is there defaulting to the IO monad or someting like that? 18:22:25 No 18:22:55 What could be happening in my case, then? 18:23:52 That's the monomorphism restriction. If you want it to have the polymorphic type you need to give it explicitly 18:24:10 Or rewrite it to look like a function 18:24:44 But why does it matter if I use the function or not? 18:25:46 If you use it then it knows what monomorphic type to give it 18:26:21 You can also use -fno-monomorphism-restriction 18:26:41 The MR is mostly silly. 18:27:04 mmh 18:27:11 that's strange 18:27:20 There are some somewhat obscure cases where programs will run exponentially slower without it though. 18:27:54 These problems can always be alleviated by assigning monomorphic types explicitly. 18:28:54 Yes, I more or less understand the reasons for the restriction. What I didn't know was that ghc considered other functions at file scope to determine the type 18:28:55 any news on 6.6 18:29:23 Is that an extension to what the standard requieres in for the monomorphic restriction? 18:30:51 --- join: foxy_ (n=chatzill@222-153-54-180.jetstream.xtra.co.nz) joined #haskell 18:30:55 --- nick: foxy_ -> foxy 18:32:29 br1: No 18:32:39 --- quit: cwenner (Read error: 110 (Connection timed out)) 18:32:48 emu: We probably need another round of RCs 18:33:10 seems like a good idea 18:33:27 * Igloo needs to do lots of patch merging tomorrow 18:34:07 --- join: matthew-_ (n=matthew@81.168.74.31) joined #haskell 18:35:52 --- quit: chrisb (Nick collision from services.) 18:36:04 --- join: chrisb__ (n=chrisb@cm-84.208.117.180.chello.no) joined #haskell 18:36:11 the "Implementation of aton and ntoa outside the IO monad" looks useful too, Igloo 18:38:38 --- quit: erider (Read error: 110 (Connection timed out)) 18:38:39 --- join: erider_ (n=erider@unaffiliated/erider) joined #haskell 18:39:12 well, all very interesting. when the 'unix tools' article went up, it sat at the top of the reddit list, and we got 3k hits in 3 hours. then haskell.org went down, 21 hours later it came back up, and we got 300 hits in the next 12 hours :/ 18:39:21 @pl \ f g x -> f x (g x) 18:39:22 ap 18:39:26 oh well, we missed a bit of an opportunity there 18:39:50 @pl \ f g x -> f x g 18:39:51 flip 18:40:38 @pl \ x y -> y x 18:40:39 flip id 18:41:05 lennart, you don't happen to be a lector at lth? 18:41:14 @pl \ f x -> f x x 18:41:14 join 18:41:16 dons, argh 18:41:28 no, i'm an ex-lektor at cth 18:41:33 haskell missed its chance at the limelight 18:42:03 stupid /. effect 18:42:27 @pl \ k f g x -> k (f x) (g x) 18:42:28 liftM2 18:42:51 @pl \ k f g x -> k (f x) g 18:42:52 (flip .) . (.) 18:43:07 @pl \ k f g x -> k f (g x) 18:43:08 ((.) .) 18:44:04 http://www.haskell.org/ghc/docs/6.4.2/html/libraries/base/Control-Monad-ST.html mentions the paper "Lazy State Threads". I think it should say "Lazy Functional State Threads" 18:44:06 http://tinyurl.com/rafpa 18:44:10 sris: why? 18:45:02 lennart, just curious because im taking a haskell course at lth, sweden this fall and our lecturer is named lennart too ;) 18:45:21 hmmmm, not me as far as i know 18:45:40 i guess not 18:46:04 -