00:07 (quit) jrslepak: Quit: What happened to Systems A through E? 00:08 (join) jrslepak 00:29 Nisstyre: Does anyone actually use cddddr? 00:38 jonrafkind: all day every day 00:38 (join) nilyaK 00:46 (quit) nilyaK: Quit: Leaving. 00:52 (join) mithos28 00:52 (quit) mithos28: Remote host closed the connection 00:52 (join) mithos28 01:03 (join) veer 01:03 (quit) jacius: Remote host closed the connection 01:04 (join) mithos28_ 01:04 (quit) mithos28: Read error: Connection reset by peer 01:04 (nick) mithos28_ -> mithos28 01:11 (quit) yoklov: Quit: bye! 01:21 veer: would it be useful for max function in racket to also return index of the maximum argument ? 01:21 veer: It is convenient to do: 01:21 veer: (define v (map something->number lst)) 01:21 veer: (define-values (max-arg arg-indx) (apply max v)) 01:21 veer: (list-ref lst arg-index) 01:23 mithos28: I think a separate function like that might be useful but I wouldn't suggest changing max 01:24 veer: mithos28: yes that is also fine 01:27 (quit) sstrickl: Quit: sstrickl 01:42 (join) jesyspa 01:49 (quit) dnolen: Ping timeout: 252 seconds 02:02 (join) vu3rdd 02:02 (quit) vu3rdd: Changing host 02:02 (join) vu3rdd 02:14 (join) mithos28_ 02:14 (quit) mithos28_: Remote host closed the connection 02:15 (join) mithos28 02:23 (join) sstrickl 02:28 (join) mithos28_ 02:28 (quit) mithos28: Read error: Connection reset by peer 02:28 (nick) mithos28_ -> mithos28 02:32 (quit) sstrickl: Quit: sstrickl 02:34 (quit) adu: Quit: adu 02:38 (join) mithos28_ 02:38 (nick) mithos28_ -> mithos28 02:45 (join) djcoin 02:56 (quit) veer: Read error: Connection reset by peer 03:08 (quit) jonrafkind: Ping timeout: 244 seconds 03:24 (join) mithos28_ 03:24 (nick) mithos28_ -> mithos28 03:26 (join) mithos28_ 03:29 (nick) mithos28_ -> mithos28 03:39 (quit) maahes: Ping timeout: 245 seconds 03:39 (join) mithos28 03:39 (quit) mithos28: Client Quit 03:39 (join) maahes 03:52 (quit) Myk267: Remote host closed the connection 04:01 (join) Myk267 04:03 (join) noelw 04:27 (join) tim-brown 04:29 (join) dalaing 04:52 (part) tim-brown 04:53 (join) tim-brown 05:08 (join) antithesis 05:14 (join) masm 05:45 (quit) antithesis: Quit: antithesis 05:52 (join) antithesis 05:59 (quit) antithesis: Remote host closed the connection 06:00 (quit) epsil: Remote host closed the connection 06:06 (quit) dalaing: Quit: Leaving. 06:33 (join) snearch 06:39 (join) jeapostrophe 06:55 (quit) masm: Quit: Leaving. 06:57 (join) dalaing 07:28 (quit) cataska: Quit: leaving 07:36 (quit) dalaing: Quit: Leaving. 07:40 (quit) kreol[Ukr]: Ping timeout: 244 seconds 07:56 (quit) Shvillr: Quit: bye 07:57 (join) Shvillr 08:13 (join) kanak 08:13 (quit) vu3rdd: Remote host closed the connection 08:17 (quit) Shviller: Ping timeout: 265 seconds 08:18 (join) Shviller 08:32 (quit) jeapostrophe: Ping timeout: 245 seconds 08:36 (join) dalaing 08:38 (part) dalaing 08:46 (quit) jesyspa: Ping timeout: 246 seconds 08:53 (join) jesyspa 08:55 (join) untrusted 08:56 (join) jonathansizz 08:56 (join) getpwnam 09:02 neilv: http://i.imgur.com/WtATv.png 09:13 noelw: cool 09:15 neilv: if i get really averse to real work this weekend, i could make a character-terminal forms library :) 09:17 neilv: i think the main use for this will be for things like an easy way to have a server process display status info when you run it in a "screen" session 09:19 Cryovat thinks of all-Racket Ncurses alternative and salivates 09:21 neilv: it's all-racket except it calls out to "stty" executable at open and close time 09:21 neilv: no c 09:22 (quit) snearch: Quit: Verlassend 09:28 untrusted: maybe interesting in this context: http://ivan.kanis.fr/nterm.html 09:32 (quit) jonathansizz: Ping timeout: 244 seconds 09:32 (quit) getpwnam: Ping timeout: 248 seconds 09:44 (join) veer 09:47 (quit) untrusted: Remote host closed the connection 09:52 (quit) ivan\: Ping timeout: 244 seconds 09:57 (quit) veer: Quit: Leaving 10:02 (join) gridaphobe 10:03 (quit) jrslepak: Quit: This computer has gone to sleep 10:11 (quit) bitonic: Quit: WeeChat 0.3.7 10:11 neilv: on my particular machine, with my particular version of rxvt, i even get unique escape sequences to the tty for things like the windows menu button and shift-left-arrow 10:16 (join) dnolen 10:17 (join) ivan\ 10:41 (join) getpwnam 10:41 (join) jonathansizz 11:02 (join) mceier 11:06 asumu: So I was almost able to get racket/gui widgets to programmatically render in a Scribble document: 11:06 asumu: https://gist.github.com/2936908 11:06 asumu: Unfortunately, it doesn't work for some widgets. 11:10 neilv: that could be cool. just a few hours ago, i saw an ascii-art gui dialog in the gui manual 11:12 (quit) dnolen: Ping timeout: 265 seconds 11:28 (join) adu 11:32 (join) jacius 12:01 (join) mithos28 12:02 (quit) mithos28: Remote host closed the connection 12:02 (join) mithos28 12:10 (quit) tim-brown: Quit: WeeChat 0.3.8 12:15 (quit) getpwnam: Ping timeout: 245 seconds 12:15 (quit) jonathansizz: Ping timeout: 245 seconds 12:19 (quit) noelw: Quit: noelw 12:20 (join) anRch 12:28 (join) jonrafkind 12:28 (quit) jonrafkind: Changing host 12:28 (join) jonrafkind 12:31 (join) antithesis 12:38 (join) didi 12:41 (join) MayDaniel 12:42 didi: I'm trying to use racket/stream as I've being taught in SICP but obviously failing. Is it possible to create a infinite stream of 1's like (define ones (stream-cons 1 ones)) (which doesn't work)? 12:43 jonrafkind: works for me 12:43 (join) nilyaK 12:43 jonrafkind: rudybot: (require racket/stream) 12:43 rudybot: jonrafkind: your sandbox is ready 12:43 rudybot: jonrafkind: Done. 12:44 jonrafkind: rudybot: (define ones (stream-cons 1 ones)) 12:44 rudybot: jonrafkind: Done. 12:44 jonrafkind: rudybot: (stream-first ones) 12:44 rudybot: jonrafkind: ; Value: 1 12:44 didi: rudybot: (stream-first (stream-rest ones)) 12:44 rudybot: didi: your sandbox is ready 12:44 rudybot: didi: error: reference to an identifier before its definition: ones in module: 'program 12:45 didi: jonrafkind: Hum... You're right. 12:45 jamessan: each person has their own sandbox in rudybot, so you'll need to (require racket/stream) 12:49 didi: Yeah, "learning" is a bumpy road. 12:51 didi: Hum. `stream-map' apparently only accepts one stream. 12:52 (join) kreol[Ukr] 12:52 (quit) djcoin: Quit: WeeChat 0.3.2 12:52 (join) mithos28_ 12:53 (quit) jesyspa: Quit: leaving 12:54 jonrafkind: thats a good point, it should accept multiple streams like regular map 12:54 jonrafkind: do you want to make a bug report about it? 12:54 (join) netrino 12:54 didi: jonrafkind: sure. 12:54 (quit) mithos28_: Remote host closed the connection 12:54 didi: jonrafkind: How do I do it? 12:54 jonrafkind: do you have drracket? 12:54 (join) mithos28_ 12:54 jonrafkind: i think its help -> bug report 12:54 didi: I guess, although I don't use it. 12:54 jonrafkind: otherwise goto http://bugs.racket-lang.org 12:54 jonrafkind: and fill it out 12:54 (quit) mithos28: Read error: Connection reset by peer 12:54 (nick) mithos28_ -> mithos28 12:55 didi: Will do. 12:57 (join) jesyspa 13:08 (quit) ashish: Quit: Whenever we are together, it’s always estatically palpitating! 13:09 didi: jonrafkind: Done. :^) 13:09 jonrafkind: cool 13:10 (join) getpwnam 13:10 (join) jonathansizz 13:11 (quit) anRch: Quit: anRch 13:19 (part) didi: "ERC Version 5.3 (IRC client for Emacs)" 13:21 (join) abbe 13:34 (join) netrino_ 13:37 (quit) netrino: Ping timeout: 248 seconds 14:07 (quit) nilyaK: Quit: Leaving. 14:15 (join) masm 14:22 (quit) neilv: Ping timeout: 244 seconds 15:15 (quit) lusory: Ping timeout: 252 seconds 15:20 (quit) Kaylin: Read error: Connection reset by peer 15:38 (quit) antithesis: Read error: Connection reset by peer 16:04 (join) jrslepak 16:06 (join) Kaylin 16:14 (join) anRch 16:21 (join) snearch 16:24 (quit) kanak: Ping timeout: 248 seconds 16:35 (quit) snearch: Quit: Verlassend 16:41 (quit) Kaylin: Read error: Connection reset by peer 16:44 asumu: Aha, now I have true keyword based init for racket/class. 16:44 asumu: Though the code needs a lot of cleanup. 16:45 stamourv: :D 16:45 asumu: But in any case, this will work (class object% (init #:hi [hi 5]) ...) 16:45 asumu: and (new foobar% #:hi 3.14) 16:46 asumu: (and fully backwards compatible) 16:55 (quit) jrslepak: Quit: What happened to Systems A through E? 16:55 (join) RacketCommitBot 16:55 RacketCommitBot: [racket] plt pushed 2 new commits to master: http://git.io/W9sTwQ 16:55 RacketCommitBot: [racket/master] yet more fixes to avoid compiler warnings - Matthew Flatt 16:55 RacketCommitBot: [racket/master] minor guide corrections - Matthew Flatt 16:55 (part) RacketCommitBot 17:00 (quit) adu: Quit: adu 17:04 (quit) anRch: Quit: anRch 18:02 (quit) kreol[Ukr]: Ping timeout: 248 seconds 18:13 (join) dented42 18:14 (quit) jonrafkind: Ping timeout: 265 seconds 18:14 (quit) MayDaniel: Read error: Connection reset by peer 18:22 (quit) basepi: Ping timeout: 260 seconds 18:24 (join) basepi 18:29 Shambles_: It appears that #f is usually used as a sentinel value where NULL would be in most languages. Is that correct? 18:31 Shambles_: And if that is the custom, is there some recommended alternative for when you need to mark something that's normally boolean as "undefined"? 18:31 (quit) basepi: Ping timeout: 244 seconds 18:32 (join) jonrafkind 18:32 (quit) jonrafkind: Changing host 18:32 (join) jonrafkind 18:32 (join) basepi 18:34 danking: Shambles_: (define-struct some (x)) (define-struct none ()) ? 18:36 Shambles_: danking: I guess that could work. Technically anything other than a boolean would work. I was just wondering what the convention was. I'm running into a lot of things that use #f and I wondered if that was what you were supposed to use, and if there was a typical alternative in that corner case. 18:38 danking: Shambles_: I think I'm the black sheep here but I think ML is really neat and therefore like to use option types. It's a bit more verbose and maybe less efficient, but it lends itself well to my ubiquitous use of `match' expressions. 18:40 Shambles_: danking: I'm starting to think I'm a black sheep for /not/ liking ML-style type systems, really. It's not the type inference that bothers me, it's that the types are more complex than the usual 'basic' types, and you can't avoid dealing with that (which bothers me greatly when I just want to get something written quickly, especially if I only care about the data, not the code, like with automating something). 18:40 Shambles_: danking: In any case Racket has a very, very capable matching facility that can work on values, types, and other things (e.g. tree structures). 18:44 danking: Shambles_: Racket's `match' is absolutely better than ML's pattern matching. \\ For everything but the most simple experiments, I find that clearly describing the algebraic data types elucidates problems in my data structure or make clear the path to a working algorithm. 18:44 danking: s/make/makes/ 18:44 danking: But, ymmv. 18:47 Shambles_: danking: I think the people working on languages with complex type systems don't recognize that exploratory coding is often necessary, and if the language doesn't support it well, then people will use something else, even if they end up translating back into the requires-precognition language (as is often done from -> C++). 18:48 Shambles_: danking: They also don't seem to recognize that sometimes only the data matters. Doing system administration I regularly bang out throw away (yes, really, I delete them myself) scripts to do things like rename or convert a set of messily named files into something consistent. I don't care if my program works for /all/ inputs, so long as it works for /my/ inputs. 18:48 (join) adu 18:50 Shambles_: danking: Despite how that sounds it's not an excuse for general sloppy coding, it's just recognizing that sometimes the coding has to start out sloppy, or it's okay if the program is disposable. 18:56 danking: Shambles_: I don't use ML or friends for something like updating a couple hundred XML files (*shudder*, poor employment choices in my past). I used Ruby for that (though, I hope there are yet better choices). In my limited experience, I found that I like to define the structure/type of my data ahead of time. It helps me frame the problem. I don't usually do this with simple text processing, even if it is a lot of text processing. 18:56 danking: I guess I'm saying, use different langauges for different domains? #lang typeless-text-processor and #lang ml. 18:57 (join) rbarraud 18:59 Shambles_: danking: Currently my "best tool for that kind of thing" is IPython, which has replaced Bash for my shell-ish tasks (and desktop calculator). I may start using Scsh, or see if I can bring what's missing of it over to Racket, once I become competent enough. Mostly though, anything is better than the traditional tools. Bash falls flat on its face should your files/directories include strange characters, like space. 19:00 danking: :P. Some day I'll finally fix SCSH and write SCSHi (interactive) and drop bash by the wayside. I still don't really grok its syntax. 19:01 Shambles_: danking: As for defining the structure of things leading to clean code, in my experience, it tends to go the other way. I tend to commit to some sort of data structure that 'looks pretty' in my head or drawn out on paper, then try to code the procedures that work on it. OO design, and all that. Then I find out that the algorithms are fugly, and have to be that way if I keep the same data structure... 19:02 (quit) jesyspa: Quit: leaving 19:02 danking: Shambles_: It's a feedback loop, I suppose. The data structures inform the initial implementation and the initial implementation inform improvements to the data structures ad infinitum. 19:02 Shambles_: danking: So I have to go back and re-define the data structures, then rewrite the algorithms... This iterates until, hopefully, it's all pretty, or at least the ugliness everywhere is minimized, or contained in one small place. 19:03 Shambles_: danking: So any language that forces me to overcommit to a data structure and makes that even more unpleasant to change isn't helping me. :P 19:04 Shambles_: danking: I'm probably rusty now, but I have, in the past, understood Bash deeply. The experience is very much like 80's basic. It goes through a few stages. 19:05 danking: Shambles_: I don't believe ML forces overcommitment. It just forces you to *actually* commit to what you claim to use. 19:05 Shambles_: WOW! This is fun! It's so much easier than doing it by hand. 19:06 Shambles_: Uhh... Why doesn't my code work? I mean, the concept is simple. I'm doing it the way I'm /supposed/ to (GOTO's everywhere in BASIC, spawning a billion processes to deal with Bash's insufficiency in Bash). 19:08 Shambles_: Then the enlightenment following realizing why the "way you're supposed to" in that language is /bad/ (e.g. you convert to a "GOTO Considered Harmful" believer), usually leading to switching to another language (e.g. Python or Scheme for shell stuff). Eventually later you get old and grouchy and start believing in "GOTO /Usually but not Always/ Considered Harmful". :P 19:08 danking: I like my tail calls optimized, personally :P. 19:10 Shambles_: That's not a feature to me. Loops, tail-recursion, it's all the same to me. I want stuff that makes it easier to express myself. That is, to express things more easily, rather than express things I already can in different (but not easier) ways. 19:12 Shambles_: Iteration doesn't scare me. Mutation only scares me when multithreading is involved, but of course that's important. Recursion only pleases me when I might need to 'back up' and do more work. 19:27 (join) neilv 19:27 (quit) neilv: Client Quit 19:27 (quit) masm: Quit: Leaving. 19:39 (join) netrino1 19:42 (quit) netrino_: Ping timeout: 248 seconds 19:46 (quit) jonrafkind: Ping timeout: 248 seconds 19:49 (join) dnolen 19:54 (quit) PfhorSlayer: 19:56 (join) lcc 19:59 (quit) dented42: Remote host closed the connection 20:03 (join) dented42 20:06 (join) dalaing 20:15 (join) bitonic 20:36 (quit) dalaing: Ping timeout: 245 seconds 20:44 (join) jrslepak 21:04 (quit) jrslepak: Ping timeout: 244 seconds 21:14 (quit) bitonic: Ping timeout: 252 seconds 21:25 (join) rbarraud_ 21:25 (quit) rbarraud: Ping timeout: 252 seconds 21:49 (quit) rbarraud_: Remote host closed the connection 22:03 (join) rbarraud 22:05 asumu: Types are nice sometimes. I was working earlier today in a giant macro and had to modify one step of syntax processing. Unfortunately, I had no idea what the incoming data's shape really was. 22:06 asumu: So I had to guess & check my way to a working function. 22:06 asumu: A type annotation here would have helped. 22:07 asumu: (or if all code was written via the design recipe, that's ok too) 22:08 adu: I don't like that 22:08 adu: that's why I like types too 22:09 adu: also, I just recently learned about prescheme 22:09 adu: which was apparently a typed scheme developed for scheme->c 22:11 adu: is it possible to extract information from typed racket? 22:11 (quit) netrino1: Quit: Ave! 22:12 adu: like a small program to get the signature of a function? 22:26 (quit) dented42: Quit: Computer has gone to sleep. 22:41 (quit) lcc: Quit: ERC Version 5.3 (IRC client for Emacs) 22:42 (quit) adu: Quit: adu 22:44 (join) dented42 22:49 (join) mithos28_ 22:49 (nick) mithos28_ -> mithos28 22:50 Shambles_: adu: (:print-type e) seems to do what you want, not that you're still here to see this 22:50 (join) mithos28_ 22:51 (join) lcc 22:52 mithos28_: adu: What do you mean the signature of a function? How is that different than its type? 22:52 (quit) mithos28_: Remote host closed the connection 22:53 (join) mithos28_ 22:54 (quit) lcc: Client Quit 22:54 (join) jonrafkind 22:54 (quit) jonrafkind: Changing host 22:54 (join) jonrafkind 22:54 (nick) mithos28_ -> mithos28 22:55 Shambles_: asumu: Was it impossible to use "write" with the standard output port do basically 'printf-debugging'? At least that's what I would have attempted if I didn't know what something was. 22:56 (quit) dented42: Ping timeout: 260 seconds 23:05 (join) Kaylin 23:28 (quit) rbarraud: Remote host closed the connection 23:29 (join) rbarraud 23:36 (quit) rbarraud: Read error: Connection reset by peer 23:37 (join) rbarraud 23:48 (quit) rbarraud: Read error: Connection reset by peer 23:59 (join) rbarraud