00:00 (join) jeapostrophe 00:05 (join) acarrico 00:06 (join) mithos28_ 00:09 (quit) mithos28: Ping timeout: 260 seconds 00:09 (nick) mithos28_ -> mithos28 00:12 (quit) veer: Quit: Leaving 01:36 (quit) acarrico: Ping timeout: 240 seconds 01:39 (quit) jeapostrophe: Quit: leaving 01:49 RacketCommitBot: [racket] plt pushed 2 new commits to master: http://git.io/AYYGSA 01:49 RacketCommitBot: [racket/master] [honu] create a new syntax class for parsing expressions at current-phase + 1. allow new operators to be defined using honu syntax - Jon Rafkind 01:49 RacketCommitBot: [racket/master] [honu] define parsing macro in the transformer phase. also provide a bunch of things from main - Jon Rafkind 02:30 (quit) jonrafkind: Ping timeout: 258 seconds 02:51 (join) Shvillr_ 02:52 (quit) Shviller: Disconnected by services 02:52 (nick) Shvillr_ -> Shviller 03:28 (quit) realitygrill: Quit: realitygrill 03:34 (join) Blkt 03:46 (join) ahinki 03:51 (quit) gf3: Excess Flood 03:52 (join) gf3 04:02 (join) vu3rdd 04:02 (quit) vu3rdd: Changing host 04:02 (join) vu3rdd 04:55 (join) ibis 04:56 (nick) ibis -> Guest60537 04:57 Guest60537: How does one install xrepl? 04:57 mithos28: racket -il xrepl 04:58 mithos28: That should work from your command line 04:58 mithos28: If you want xrepl to work all the time, in xrepl run ,install! 04:58 mithos28: http://docs.racket-lang.org/xrepl/index.html?q=xrepl 04:58 Guest60537: Tried that, says collection not found. 04:58 mithos28: Section 1 has the instructions 04:59 mithos28: what version of racket do you have 04:59 Guest60537: Version 5.1.3 04:59 Guest60537: on a Mac 05:00 mithos28: xrepl came in 5.2 05:00 Guest60537: Thanks. 05:00 Guest60537: I'll will upgrade 05:10 (quit) Guest60537: Quit: Page closed 05:11 (quit) mithos28: Quit: mithos28 05:14 (join) Reox 05:14 Reox: hi anyone around? 05:14 noelw: yo dawg 05:15 Reox: just wondering if anyone can explain to me why (cons 1 2) = (1 . 2) 05:17 noelw: (1 . 2) is how (cons 1 2) is printed 05:17 noelw: If you're using DrRacket you can change the printer to print it out as (cons 1 2), for example 05:18 Reox: o.o 05:19 (join) tim-brown 05:19 Reox: so u r saying that it simply means tt (1 . 2) == (cons 1 2)? 05:19 noelw: Yes 05:20 Reox: but y the period in the middle? 05:20 Reox: no specific reasons? 05:20 noelw: There is probably some historic reason. 05:20 noelw: I don't know it. 05:20 noelw: Don't confuse (cons 1 2) with (list 1 2) 05:21 Reox: so if (append '(1) 2) gives u (1 . 2)... its the same as (cons 1 2)? 05:21 noelw: Yes 05:21 noelw: Try it: 05:21 noelw: (pair? (append '(1) 2)) 05:23 Reox: it shows #t 05:28 Reox: so is (1 . 2) a list? 05:33 Shvillr: rudybot: (list? '(1 . 2)) 05:33 rudybot: Shvillr: your sandbox is ready 05:33 rudybot: Shvillr: ; Value: #f 05:34 (quit) noelw: Ping timeout: 276 seconds 05:36 (join) masm 05:37 (join) cataska 06:02 (join) noelw 06:20 noelw: Try it (list? (1 . 2)) 06:25 vu3rdd: hello folks 06:25 vu3rdd: I am trying to understand how to write custom keybindings in drracket 06:26 vu3rdd: what is the key for arrow keys? 06:26 vu3rdd: I couldn't figure that out from the docs. 06:45 Reox: rudybot: (list? (1 . 2)) 06:45 rudybot: Reox: your sandbox is ready 06:45 rudybot: Reox: error: #:1:7: application: bad syntax in: (1 . 2) 06:51 noelw: rudybot: (list? '(1 . 2)) 06:51 rudybot: noelw: your sandbox is ready 06:51 rudybot: noelw: ; Value: #f 06:51 noelw: Original was missing a quote 06:59 (join) acarrico 07:22 (join) keenbug 07:38 (quit) ahinki: Remote host closed the connection 07:49 (join) bbommarito 07:49 (join) veer 07:50 bbommarito: Good morning everyone. 07:54 vu3rdd: bbommarito: good morning 07:55 bbommarito: Figured I would pop in see what was going on. I am on the rather annoying quest of finding a language to learn that is as far away from Ruby as possible. Came across Racket due to the FLOSS weekly episode on it, so...starting to investigate. 07:57 bremner: bbommarito: haskell is farther from ruby than racket 07:58 bbommarito: bremner: Haskell is interesting, but...Monads just confuse me to all ends of the earth, so. 07:58 bremner: well, you didn't mention _easy_ 07:58 bremner: ;) 07:59 bbommarito: bremner: It doesn't have to be easy...I have been a software developer for /years/ but...if I have to deal with the headaches of learning such an abstract concept...I just don't have the time sadly. 60-70 hour work weeks tend to limit your time. 08:01 (join) EmmanuelOga 08:02 bbommarito: Haskell, to me at least, feels a bit more like an academic language. Not that it's only useful for academia, but...heavily geared towards that. 08:04 bremner: well, that is probably a view that finds sympathy on this channel 08:06 bbommarito: I know that Haskell can do amazing things, hell XMonad is all Haskell, but... 08:06 (join) ahinki 08:07 Shvillr: bbommarito: what, another person trying to migrate away from Ruby and trying Racket after a less-than-perfect brush with Haskell? 08:09 bbommarito: Shvillr: No, not really. I mean, I played with Haskell a good while back long before burn out happened with Ruby. I have also done a very little bit of work with Lisp (emacs user for 10 years now). 08:10 Shvillr: Ooo, 10 years ago I was barely starting to program at all. Anyway, why the Ruby burnout? 08:16 bbommarito: Shvillr: I have been programming actually, since 84. I have been doing nothing but Ruby dev for the past...5-6 years, so...just gets old. 08:18 bbommarito: Shvillr: Part of it falls into the community, since the community is so focused around web-development that there isn't a lot of interesting stuff out there (For example, stuff like PyBrain). Part of it is just that there is enough annoyances in Ruby to bother me. 08:18 araujo: hello 08:18 Shvillr: hi 08:18 araujo: how good is racket concurrency support? 08:18 araujo: hello Shvillr 08:20 Shvillr: bbommarito: care to say a couple more words about those annoyances? I want to make my list of them longer. :) I personally got fed up with stuff like constant scoping. 08:21 bbommarito: Shvillr: Three words: Procs, Lambdas, Blocks. They are different enough to cause issues, but not different enough to remember why they cause annoyances. 08:23 Shvillr: Yeah, I've heard several people complaining about this specific issue; luckily, I didn't suffer from it personally. 08:24 bbommarito: Shvillr: Yea, one does a 'hard return' one does a 'soft return'...and trying to remember which is which and what does what is painful. But aside from that, there is too damn much sugar in most of the gems out there. For instance: RSpec is one giant DSL, and that bothers me. I hate boilerplate, but I hate magic more. 08:25 bbommarito: And that magic leads to insanely hard to read backtraces (Rails for instance will throw 70-80 line backtraces). 08:26 keenbug: bbommarito: what do you mean exactly by 'far away from Ruby' 08:26 bremner: Fortran would be a good choice. 08:26 keenbug: syntax or paradigm 08:26 Shvillr: Oh yeah, backtraces. Rails backtraces got nothing on a library I was writing (luckily, it was a pet project so noone else suffered). Dynamically generated classes _and_ mixins. 08:26 bbommarito: keenbug: Paradigm. 08:27 bbommarito: Shvillr: Part of the problem with Rails (Especially in 3) is it has 60 middlewares it goes through (To make all that magic happen). 08:27 keenbug: bbommarito: but afaik ruby mixes as much paradigms as it can (or as I can imagine) 08:28 Shvillr: keenbug: no, not really. It's mostly OOP, support for everything else is partial at best. 08:28 keenbug: okay 08:28 bbommarito: keenbug: Yea, it does mix them, but as Shvillr said, not really well. 08:28 bbommarito: Ruby is sort of Perl meets...smalltalk. 08:29 keenbug: so, there are many interesting languages, haskell, yes, interesting, I think it also has many libraries and stuff 08:29 keenbug: but there seems to be the wide spread opinion you can't use it as daily programming language 08:30 keenbug: then another interesting language is erlang, I think 08:30 Shvillr: I, for one, didn't like Haskell's community. They can tell you everything about Kleisli categories, but are unable to tell you how to enable dynamic linking. 08:30 bbommarito: keenbug: Yea, Erlang is really interesting actually. Especially since it took the pattern matching from Prolog (Well, it was Prolog). 08:31 Shvillr: Speaking of Ruby and Erlang, any opinions on Reia? 08:31 keenbug: Shvillr: seems they really used it mostly in an acadamic fashion :D 08:31 Shvillr: Yup 08:31 bbommarito: And if you have never used pattern matching: It is insanely powerful and a great way to not have to do a crap ton of if thens or cases. 08:32 Shvillr: One of the reasons I chose Racket over CL is pattern matching, yea. 08:32 bbommarito: I know the guy who wrote Reia. It's interesting, but why put a Ruby syntax on top of Erlang? I mean, yes Erlang is weird to get used to, but... 08:32 keenbug: bbommarito: yeah, in fact it's the only way to distinguish cases in haskell afaik 08:33 araujo: keenbug, you can't use Haskell for daily programming? o_O , well, it depends what it is your daily needs too 08:33 Shvillr: Well, if I had to use Erlang, I'd probably start with Reia. I'm pretty good at reading Ruby syntax, so that'd be a bonus. 08:33 keenbug: I didn't say you can't, I said this is the widespread opinion 08:33 bbommarito: keenbug: Yep, Haskell is a lot of pattern matching. araujo: I am a web guy, that's where my strong experience is:) 08:34 araujo: bbommarito, pattern matching is a very concise way for expressing functions 08:35 bbommarito: araujo: I wasn't saying pattern matching was only for doing away with ifs or cases, but that is one thing it does well. 08:35 araujo: bbommarito, well, there are many Haskell tools for web development, not sure if you have ever tried those 08:37 keenbug: I think nobody criticises haskells usability, it's maybe in most cases only hard to get used to the language, as writing purely functional is really on the far other end of object oriented imperative programming 08:38 keenbug: s/of/as/ 08:40 keenbug: I would also really love to write in haskell, but on the one hand I really love the macro-system of lisp, especially scheme, and on the other hand there's no (easy) way to either adapt the syntax or give it such a powerful macro-system with the current syntax 08:41 araujo: keenbug, well, that is already a mind-set issue ..... in my personal opinion, Haskell has a similar learning curve than most languages out there , ... specially for a mind new to programming 08:41 (join) metadave 08:42 keenbug: araujo: yeah, and that's the problem I think, most programmers are already used to imperative programming, and so they encourage many people to learn imperative programming 08:42 Shvillr: Okay, guys, seeing how people are actually talking now, does anybody know if sequence-filter is supposed to break when the resulting sequence is empty? 08:42 bbommarito: araujo: I was groking most of Haskell until...Monads. 08:43 bbommarito: And since Monads are really the way you introduce side-effects into Haskell, not understanding Monads can be a stumbling block. 08:43 keenbug: and they don't want to start from the beginning, the same problem with scheme 08:43 araujo: For someone already programming in other languages (which majority are imperative based) , learning haskell tend to become harder cause it is like forgetting 60% all you know about programming, and learning 40% new stuff .... 08:44 keenbug: bbommarito: if you are a little bit experienced with functional programming it becomes a lot easier and you'll start to understand it really well I think 08:44 araujo: keenbug, same problem than scheme/lisp , yes 08:44 bbommarito: Though, it could be most of the tutorials on Monads I have seen basically suck. 08:45 Shvillr: I dunno, I had no problem transitioning from Ruby to Lisp. IMO, Lisp is so multiparadigm it can accomodate any programming style, while Haskell is strictly FP. 08:45 keenbug: bbommarito: most of the tutorials assume a good knowledge of functional programming is the problem 08:46 (quit) Reox: Ping timeout: 265 seconds 08:46 veer: In scheme side effects are not that complicated 08:46 bbommarito: keenbug: That's possibly it, or an understanding of the math behind a Monad (Or rather the principles behind it). 08:46 araujo: but it is bit unfair to judge a whole language because of the current majority mind-set , Haskell might look like really complex and introducing unnecessary theory for programming at the beginning (why do I need to learn Monads to print 'Hello World!' ?!!?) .... but once you grok at these concepts, you will see how it all becomes so smooth and helpful along the way for bigger scope development 08:47 metadave: Dan Piponi's "You Could Have Invented Monads" article was the best help for me. 08:47 keenbug: bbommarito: the math is not that hard, it's only the mathematical notation which is hard to understand 08:47 metadave: And I see that Racket has a monad library, but I've never used it: http://planet.racket-lang.org/package-source/toups/functional.plt/1/0/ 08:48 bbommarito: I will say this: From what I looked into Haskell, it's a damn cool language, and the type system is just insane. 08:50 araujo: Haskell is the only language I have used so far, where I can safely detect/fix bugs inside a scope without worrying the rest of the code 08:51 araujo: Purity gives you this certainty , extremely good for large programs 08:54 keenbug: purity and clean concepts are the things which make programming languages _really_ work clean, but where I have to say I also get along with scheme being not pure, but maybe one day I'll give haskell another try, when I've got time for that 08:55 bbommarito: So, reading this "You could have invented Monads", it is starting to make some sense. 08:57 bbommarito: So, perhaps this weekend is a good time to dive into Learn You A Haskell, and further understand that article. 08:58 araujo: I know Monads is a bit of a stop for newcomers , specially since writing papers about Monads is like a whole industry in the Haskell community, heheh... but once you grasp them, you will feel enlightened :) 08:59 araujo: by the way, I know this channel is about racket , I am not here trying to drag people into Haskell, hehehehe, ... I like scheme/lisp languages too, I think learning Haskell could also greatly help working with Lispy languages 09:01 Shvillr: Yeah, personally, trying Haskell taught me that I should really try to use Lisps more. So I tried Racket, and lo and behold, a community that goes beyond "you'll have to figure it out on your own". :) 09:02 keenbug: yep, especially seeing this pure functional concepts and how problems are solved, sometimes really really wonderful 09:02 araujo: Shvillr, Haskell is good to strength your mind ..... it is oone of those languages that, even you will never write a single production code on it, it is good to learn 09:03 araujo has applied Haskell ideas/concepts in C, python, ruby, and scheme programs 09:03 Shvillr: Yeah, already heard that one about Lisp. 09:04 Shvillr: Don't get me wrong. I don't find anything wrong with Haskell as a language. I just feel it's impractical for me. 09:04 keenbug: something from scheme, a little bit like monads, continuation passing style is also really interesting and cool, loved to get the idea 09:06 keenbug: so you don't need a stack anymore, that just overwhelmed me as I understood it 09:09 araujo: For example, from an educative perspective, ... one of the things I see about Haskell .... is that newcomers are really _forced_ to learn to think in a functional way .... very much different than current Lisp languages, so many imperative programmers will continue programming in a very imperative way using Scheme/CL for example, it is not a forbidden thing, but they might be omitting a whole new approach more suitable for these languages, with ma 09:09 araujo: ny more advantages .... 09:10 (quit) EmmanuelOga: Quit: WeeChat 0.3.7-dev 09:18 bbommarito: I have to say, one of my favorite languages ever, was Forth. 09:24 keenbug: hehe, it's an unconventional concept, but maybe hard to find errors if you forgot something, it's just what I imagine, never used it really 09:25 keenbug: just using an RPN calculator 09:26 bbommarito: Oh, Forth is a pain to debug, but darnnit, it's fun. 09:28 metadave: Can anyone recommend a decent article/tutorial on continuation passing style? 09:30 keenbug: I have to search for it, but I read some which were good 09:30 (join) jrslepak 09:31 metadave: There is a page or two in The Scheme Programming Language book, but it didn't seem like enough. 09:31 asumu: araujo: In terms of education, the beginner languages of Racket also enforce functional style. 09:31 asumu: By removing set! and mutable variables. 09:31 araujo: asumu, cool, I didn't know that , I am new to racket 09:35 asumu: metadave: PLAI talks a bit about CPS in chapter 18: http://www.cs.brown.edu/~sk/Publications/Books/ProgLangs/2007-04-26/plai-2007-04-26.pdf 09:35 rudybot: http://tinyurl.com/4n7hdw 09:36 metadave: Perfect, thank you asumu and rubybot! 09:42 keenbug: ok, I didn't bookmark them :/ 09:43 asumu: araujo: BTW you asked about concurrency earlier but I don't think you got a reply. If you want concurrency but no parallelism, you can use green threads which run on a single core. 09:43 asumu: There are also the racket/future and racket/place libraries for parallelism. 09:49 (quit) jrslepak: Quit: Leaving 09:51 araujo: asumu, Thanks!, I will check that out :) 09:55 (quit) bbommarito: Ping timeout: 240 seconds 09:55 metadave: keenbug: no problem. Thanks for looking! 10:03 (join) noam 10:22 (quit) veer: Quit: Leaving 10:57 (quit) ahinki: Quit: ChatZilla 0.9.87 [Firefox 9.0/20111116091359] 10:59 (join) mithos28 11:03 (join) MayDaniel 11:10 (join) anRch 11:22 Shvillr: Okay, I believe I found a bug in sequence-filter and a solution to it. 11:48 (join) realitygrill 11:53 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/TuV2ag 11:53 RacketCommitBot: [racket/master] ssl library versions for Ubuntu 11.10 - Matthew Flatt 11:57 (join) jonrafkind 12:00 RacketCommitBot: [racket] plt pushed 2 new commits to master: http://git.io/srP6rg 12:00 RacketCommitBot: [racket/master] add version 3 of libmagickwand to the ffi example - Jon Rafkind 12:00 RacketCommitBot: [racket/master] [honu] add var and = at phase 1 - Jon Rafkind 12:13 (quit) realitygrill: Ping timeout: 240 seconds 12:14 (join) dnolen 12:25 (quit) anRch: Quit: anRch 12:25 (join) realitygrill 12:27 (part) tim-brown: "Leaving" 12:28 (quit) keenbug: Ping timeout: 245 seconds 12:29 jonrafkind: strange that you can provide x twice without it being an error.. (provide x) (provide x) 12:38 (join) realitygrill_ 12:40 asumu: jonrafkind: What happens if one is contracted and the other isn't? 12:41 (quit) realitygrill: Ping timeout: 252 seconds 12:41 (nick) realitygrill_ -> realitygrill 12:41 jonrafkind: (provide/contract x) (provide x) ? 12:42 jonrafkind: x.rkt:1:0: module: identifier already provided (as a different binding) at: x in: (#%module-begin (printing-module-begin (define x 5)) (printing-module-begin (provide/contract (x integer?))) (printing-module-begin (provide x))) 12:42 jonrafkind: (provide/contract [x integer?]) 12:42 jonrafkind: (provide/contract [x integer?]) this fails though: module: identifier already provided (as a different binding) at: x in: (rename provide/contract-id-x x) 12:43 (join) shofetim 12:46 (quit) realitygrill: Ping timeout: 244 seconds 13:04 (quit) Blkt: Remote host closed the connection 13:14 (join) keenbug 13:32 jonrafkind: does hygiene not allow this? (define-syntax-rule (my-require) (require (only-in "foo.rkt" bar))) 14:11 (quit) noam: Read error: Connection reset by peer 14:11 (join) noam 15:12 (join) realitygrill 15:18 (join) avarus 15:47 (nick) samth_away -> samth 15:49 samth: jonrafkind: that would unhygenically bind `bar' 15:59 Shviller: Hello samth. I submitted an issues to Racket's Github page. Is it where they are supposed to go? 16:06 stamourv: Shviller: We don't really use Github issues. We have our own bug tracking system at bugs.racket-lang.org. 16:07 stamourv: That's the preferred place to file bugs. 16:07 Shviller: I see. 16:08 stamourv: BTW, thanks for the reports. I had a brief look at it, and it looks fine to me, but I don't know that part of the codebase enough to really tell. 16:08 Shviller tries to get a list of existing issues on http://bugs.racket-lang.org 16:09 (quit) metadave: Quit: Leaving 16:09 stamourv: Do a quick query, and keep the default settings. That should list all the open issues. 16:10 Shviller: aha 16:10 Shviller: Is sorting ascending only? 16:11 stamourv: Looks like. 16:11 Shviller: Okay. 16:11 Shviller: So yeah. Should I close the issue on github and reopen it here? 16:12 stamourv: Sounds good. 16:12 Shviller: On it. 16:12 stamourv: Great, thanks! 16:19 Shviller: Should the issue appear immediately or are thety premoderated or something like that? 16:19 stamourv: It should appear automatically. 16:19 stamourv: I'll let you know when I get the email. 16:19 Shviller: Okay 16:21 Shviller: Aha, got an email with the link. Closing the one on github. 16:21 stamourv: Got it too. 16:22 Shviller: Hm, looks like it chomps one leading space off a line, but not when there are more than one. Unusual. :) Well, not important anyway. 16:24 jonrafkind: ok why doesn't this work: (define-syntax-rule (stuff) (begin (require (only-in "foo.rkt" x)) (provide x))) 16:24 jonrafkind: actaully the provide isn't even needed 16:24 jonrafkind: just using the (only-in x) makes it fail with "x not provided by foo.rkt" 16:25 stamourv: jonrafkind: Sounds like an issue asumu had a couple of days ago. 16:26 jonrafkind: so you think its a bug? 16:26 stamourv: I don't know if he figured it out / narrowed it down. 16:26 stamourv: Maybe? 16:26 stamourv: Do you have the whole program somewhere? 16:26 jonrafkind: ill make a smal example 16:28 jonrafkind: hm it worked in this trivial case.. 16:30 (join) jao 16:42 (quit) realitygrill: Quit: realitygrill 16:45 (join) realitygrill 17:21 (quit) keenbug: Ping timeout: 244 seconds 17:24 (join) samth_ 17:31 (quit) MayDaniel: Read error: Connection reset by peer 17:34 (join) MayDaniel 17:42 (quit) realitygrill: Quit: realitygrill 18:05 (quit) MayDaniel: Read error: Connection reset by peer 18:22 (nick) samth -> samth_away 18:27 (quit) samth_: Ping timeout: 276 seconds 18:34 (quit) dnolen: Ping timeout: 265 seconds 19:18 (join) dnolen 19:38 (quit) platinuum: Quit: Peace 20:28 (quit) avarus: Remote host closed the connection 20:32 (quit) jonrafkind: Ping timeout: 258 seconds 20:53 (quit) masm: Quit: Leaving. 22:06 RacketCommitBot: [racket] plt pushed 4 new commits to master: http://git.io/IXgrTA 22:06 RacketCommitBot: [racket/master] tweaks to reduce the stack-frame size of the interpreter loop - Matthew Flatt 22:06 RacketCommitBot: [racket/master] fix `provide' for macro-introduced bindings in phase != 0,#f - Matthew Flatt 22:06 RacketCommitBot: [racket/master] fix `sequence-filer' on empty sequence - Matthew Flatt 22:08 (join) jrslepak 22:35 (join) realitygrill 22:58 (join) jonrafkind