00:01 (quit) carleastlund: Quit: carleastlund 00:01 (quit) mizu_no_oto: Quit: Computer has gone to sleep. 00:02 (quit) mithos28: Quit: mithos28 00:13 (join) shriphani_ 00:14 (join) carleastlund 00:17 (quit) carleastlund: Client Quit 00:18 (join) mizu_no_oto 00:22 (quit) mizu_no_oto: Client Quit 00:24 (join) mizu_no_oto 00:27 (join) Fare 00:28 (quit) jao: Ping timeout: 248 seconds 00:34 (quit) mizu_no_oto: Quit: Computer has gone to sleep. 00:39 (join) jonrafkind 00:52 (quit) dented42: Ping timeout: 272 seconds 00:56 (quit) cataska: Read error: Connection reset by peer 00:57 (join) cataska 00:59 (join) ambrosebs 01:02 (quit) Fare: Ping timeout: 272 seconds 01:18 (join) dented42 01:27 (quit) dented42: Quit: ZNC - http://znc.in 01:53 (quit) shriphani_: Quit: shriphani_ 02:37 (quit) dnolen: Remote host closed the connection 02:38 (quit) jonrafkind: Ping timeout: 255 seconds 02:42 (quit) ambrosebs: Ping timeout: 260 seconds 02:43 (join) ambrosebs 03:18 Sgeo: Oh hi ambrosebs 03:18 Sgeo: Funny seeing so many Clojure people here 03:18 ambrosebs: Sgeo: :) 03:22 (quit) Nisstyre-laptop: Ping timeout: 255 seconds 03:27 (quit) jackhammer2022: Quit: Textual IRC Client: http://www.textualapp.com/ 03:31 Sgeo: Anyone want to implement Banana Scheme? 03:32 (quit) ambrosebs: Remote host closed the connection 03:51 (join) sw2wolf 04:04 (join) bitonic 04:06 (quit) sw2wolf: Remote host closed the connection 04:55 Sgeo: Does Racket come with any CPS macro stuff? 04:55 Sgeo is unsure of the details, but reading Oleg's presentation now 05:10 (join) MayDaniel 05:47 (join) mye_ 05:58 (join) kvda 06:06 (join) jeapostrophe 06:06 (quit) jeapostrophe: Changing host 06:06 (join) jeapostrophe 06:43 Sgeo: I wish there was a simple and clear tutorial on writing macros in CPS style 07:26 (join) anonymous 07:38 asumu: offby1, Sgeo: Racket comes with other generic functions. Sequences (for loops), equal?, printing, are examples. You can also define your own generic functions. 07:40 Sgeo: "Generally, a syntax-rule cannot obtain the result of the expansion of its argument expression. " 07:40 asumu: rudybot: eval (define 'foo 2) (define z 3) (quote z) 07:40 rudybot: asumu: your sandbox is ready 07:40 rudybot: asumu: ; Value: 2 07:40 asumu: Heh. And there's another reason why reader abbreviations like that are bad. 07:41 Sgeo: Should I take it that that syntax-case solves that problem, without needing the machinery that Oleg defines? 07:41 asumu: Yes, it's called local expansion 07:42 Sgeo: Hmm 07:42 anonymous: // Some people think generics are misfeauture 07:42 anonymous: ;;* 07:42 Sgeo: anonymous, o.O why? 07:42 anonymous: ...and object-oriented programming 07:43 anonymous: wait a minute 07:44 anonymous: “The more I use Go, the more I think generics would be a useless misfeature, why do so many people think they need them” — Aram Hăvărneanu (@aramh) 07:44 anonymous: “I’ve been programming Go "professionally” for months now without a single “oh, generics would make this easier” moment outside of reading mailing list posts about algorithms and math.“ — Kyle Lemons 07:44 anonymous: What do people here think about object-oriented programming? Is it evil? 07:44 bremner: just overrated. Useful in it's place 07:44 asumu: That's a different "generics" than what we were discussing. 07:45 anonymous: asumu: sorry. 07:45 asumu: The Go guy really means "parameteric polymorphism" ala Java. 07:45 asumu: Which is a pretty useful feature if you're doing higher-order programming. 07:45 bremner: well, java has about the most anoying implementation ever 07:45 Sgeo: It depends on the OO system 07:46 anonymous: Sgeo: Paul Graham decided to not realize any, i.e. 07:46 anonymous: (in Arc) 07:46 asumu: anonymous: what I meant by "generic" was just that a function (like dict-ref) can be overloaded to work on multiple datatypes. 07:46 Sgeo: I haven't looked at Arc. Except apparently it's implemented as an interpreter rather than a Racket language for some reason 07:47 asumu: Arc also doesn't have a whole lot of anything else. 07:47 Sgeo: asumu, can it be made dependent on several arguments? 07:47 Sgeo: Multiple-dispatch? 07:47 Sgeo: I think I like multiple dispatch 07:47 asumu: Racket doesn't support that yet, but we might in the future. 07:47 anonymous: asumu: AFAIK, it's more since Paul Graham considers OOP as evil. 07:48 anonymous: asumu: do you? Or it just depends on implemetation? 07:48 bremner: I consider "consider $X as evil" as evil. 07:48 asumu: I don't think OOP is evil, but I like few existing OOP languages. 07:48 anonymous googled asumu and stamourv, you are really cool guys and your opinions are very important for me 07:48 bremner goes back to writing GOTOs 07:49 asumu: But I think languages in the Smalltalk tradition are cool and Scala is promising. 07:50 asumu: Well, I'm just one hacker, so take my opinion with a grain of salt. 07:51 anonymous: ^^ I'd love if someone can give me a good link, considering criticism of OOP 07:51 anonymous: http://harmful.cat-v.org/software/OO_programming/ 07:51 Sgeo: The thing I dislike about Smalltalk (besides single-dispatch) is the tendency to monkey-patch. I wouldn't be upset if method names were namespaced somehow, but currently, there's too much of a risk of name collision for my taste 07:51 anonymous hopes it won't be considered as SPAM... 07:51 anonymous: if someone gave* 07:59 asumu: I don't have any criticisms on hand, but I think William Cook's blog post on OOP is interesting: http://wcook.blogspot.com/2012/07/proposal-for-simplified-modern.html 08:03 anonymous: asumu: thanks 08:17 (join) masm 08:20 (quit) kvda: Quit: x___x 08:30 (join) carleastlund 08:32 (join) soegaard 08:47 Sgeo: How advanced does HtDP get, exactly? Can I learn anything about good ways to structure programs, even if I've been (hobby) programming for many years? 08:48 carleastlund: HtDP's "basics" are quite advanced from some perspective. What HtDP does in the very early chapters, some CS curriculums don't cover until much, much later. So whether you can still learn from it depends a lot on what you already know. 08:48 carleastlund: I know I was still learning stuff in it well into my third time _teaching_ from it while a graduate student, so personally, I recommend giving it a shot. 08:50 (join) RacketCommitBot 08:50 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/BZ6_qQ 08:50 RacketCommitBot: racket/master 6702fd3 Michael Filonenko: supporting http proxy (without authorization) during make install 08:50 (part) RacketCommitBot 08:50 Sgeo: carleastlund, just to be sure: We're not talking just things that one would learn by learning Haskell? 08:50 Sgeo: Because I've played with Haskell for a while 08:51 Sgeo: I'm quite comfortable with first-class functions at this point 08:51 Sgeo: Although BSL blocks those 08:51 carleastlund: Sgeo: then there will definitely be some overlap. But I had done quite a bit of ML programming, including professionally, before I came to HtDP, and still found it worthwhile. 08:51 Sgeo: Huh, ok. 08:52 carleastlund: Granted, the basic lessons on the page were already familiar. Like, I knew how to abstract higher order functions out of simpler programs. But I had never seen a precise formula for doing so written out before, and I found that enlightening. 08:54 Sgeo: Hmm, ok 08:54 Sgeo: I actually don't trust my program design skills at all 08:55 (join) anRch 08:55 Sgeo: A few months back wrote an IRC bot in Tcl. It needs to be cleaned up. I think I have three functions, different names, same code 08:55 (quit) dsantiago: Ping timeout: 252 seconds 08:56 Sgeo: (Which actually makes a very little sense, since I'm dispatching based on a string value and the way I'm doing that is by calling a function named partially by the value I'm dispatching on. But I should at the very least make that repetitive code a default case or something 09:02 Sgeo: o.O I thought there weren't higher-order functions in BSL, but apparently 09:11 Sgeo: Um 09:23 (quit) soegaard: Quit: soegaard 09:26 Sgeo: carleastlund, would it be repetitive to do both HtDP and SICP? 09:26 Sgeo: I really do want to do SICP at some point 09:27 carleastlund: Sgeo, I've never read SICP myself, but as I understand it, it is not redundant, and is best read after going through HtDP. 09:28 Sgeo: Ok, thank you 09:30 (join) Fare 09:31 Sgeo: http://docs.racket-lang.org/htdp-langs/beginner.html#(def._htdp-beginner._((lib._lang%2Fhtdp-beginner..rkt)._e)) 09:31 Sgeo: This documentation calls e a procedure, when it appears not to be 09:37 (join) soegaard 09:49 (quit) anRch: Quit: anRch 09:51 (join) noam_ 09:52 (quit) noam_: Read error: Connection reset by peer 09:52 Sgeo: HtDP2 seems incomplete 10:04 asumu: Sgeo: can you file that as a bug on bugs.racket-lang.org? (the e/pi thing) 10:05 Sgeo: Oh, I should also do that for the other documentation bug I put on GitHub 10:07 asumu: (the bug database will eventually move to github, but for now it's there) 10:07 Sgeo: Should I take what I filed on GitHub and post it to bugs.racket-lang.org? 10:09 Sgeo: Just did 10:09 asumu: It's more likely someone will fix it there, so yes. And thanks. 10:10 Sgeo: yw 11:04 (quit) jeapostrophe: Ping timeout: 276 seconds 11:05 (join) mizu_no_oto 11:11 (join) acarrico 11:13 (join) RacketCommitBot 11:13 RacketCommitBot: [racket] plt pushed 3 new commits to master: http://git.io/Qw4-RA 11:13 RacketCommitBot: racket/master a496404 Matthew Flatt: setup/configtab: prevent cross-module inlining of configuration... 11:13 RacketCommitBot: racket/master 5a1f0f3 Matthew Flatt: minor README correction 11:13 RacketCommitBot: racket/master e66cd6f Matthew Flatt: raco exe: yet another submodule repair... 11:13 (part) RacketCommitBot 11:41 (quit) soegaard: Quit: soegaard 11:58 (join) soegaard 11:59 (quit) mye_: Quit: mye_ 12:09 (quit) soegaard: Quit: soegaard 12:19 (quit) mizu_no_oto: Quit: Computer has gone to sleep. 12:25 (join) soegaard 12:27 (quit) soegaard: Client Quit 12:33 (join) soegaard 12:35 (join) RacketCommitBot 12:35 RacketCommitBot: [racket] plt pushed 2 new commits to master: http://git.io/f4WYiA 12:35 RacketCommitBot: racket/master 0c76c69 Robby Findler: guard call to file-or-directory-permissions... 12:35 RacketCommitBot: racket/master 89373c7 Robby Findler: re-enable autosave only if a save is successful, not just attempted... 12:35 (part) RacketCommitBot 12:38 (quit) cenazoic: Quit: Leaving 12:52 (join) dsantiago 12:59 (join) mizu_no_oto 13:05 (quit) mizu_no_oto: Quit: Computer has gone to sleep. 13:18 (join) mizu_no_oto 13:18 (quit) em: Ping timeout: 265 seconds 13:20 (join) RacketCommitBot 13:20 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/qljAag 13:20 RacketCommitBot: racket/master cce6f28 Robby Findler: remove 'create executable' functionality from drracket for all... 13:20 (part) RacketCommitBot 13:20 (join) em 13:22 (join) anRch 13:23 (join) RacketCommitBot 13:23 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/Tvwd5g 13:23 RacketCommitBot: racket/master 23fec98 Robby Findler: move a literal string that should be translated into the string-constants library 13:23 (part) RacketCommitBot 13:25 (quit) soegaard: Quit: soegaard 13:31 (join) ambrosebs 13:47 (quit) ambrosebs: Remote host closed the connection 13:50 (join) ambrosebs 13:58 (quit) anRch: Quit: anRch 14:06 (join) dnolen 14:23 (quit) carleastlund: Quit: carleastlund 14:23 (quit) mizu_no_oto: Quit: Computer has gone to sleep. 14:25 (join) Nisstyre-laptop 14:34 (join) soegaard 14:36 (join) RacketCommitBot 14:36 RacketCommitBot: [racket] plt pushed 2 new commits to master: http://git.io/Kw_a4w 14:36 RacketCommitBot: racket/master f78e4c7 Matthias Felleisen: added defthing as a doc feature; Closes PR13414 14:36 RacketCommitBot: racket/master 510e74f Matthias Felleisen: added stdin and stdout as alternatives 14:36 (part) RacketCommitBot 14:36 (quit) anonymous: Ping timeout: 260 seconds 14:49 (quit) ambrosebs: Remote host closed the connection 15:11 (join) jao 15:12 (quit) jao: Changing host 15:12 (join) jao 15:20 (join) mizu_no_oto 15:21 (join) anonymous 15:32 (join) jonrafkind 15:43 (quit) Fare: Ping timeout: 272 seconds 15:50 (join) jeapostrophe 15:50 (quit) jeapostrophe: Changing host 15:50 (join) jeapostrophe 15:53 (quit) anonymous: Quit: Lost terminal 16:05 (quit) Nisstyre-laptop: Quit: Leaving 16:05 (quit) Nisstyre: Quit: Leaving 16:11 (join) Fare 16:15 (quit) jeapostrophe: Ping timeout: 260 seconds 16:29 (quit) mizu_no_oto: Quit: Computer has gone to sleep. 17:02 (quit) Fare: Ping timeout: 260 seconds 17:08 (join) anonymous 17:20 (quit) soegaard: Quit: soegaard 17:24 (join) soegaard 17:32 (join) Nisstyre 18:06 (quit) jonrafkind: Read error: Operation timed out 18:06 (join) mithos28 18:10 (quit) MayDaniel: Read error: Connection reset by peer 18:29 (join) carleastlund 18:31 (join) RacketCommitBot 18:31 RacketCommitBot: [racket] plt pushed 2 new commits to master: http://git.io/wHWLRA 18:31 RacketCommitBot: racket/master c907368 Robby Findler: try to make the colorer more friendly when there is an unclosed... 18:31 RacketCommitBot: racket/master 12d670b Robby Findler: add missing inner call 18:31 (part) RacketCommitBot 18:33 (quit) soegaard: Quit: soegaard 18:35 (join) jonrafkind 18:42 (join) netrino 18:43 (quit) dnolen: Ping timeout: 248 seconds 18:48 anonymous: is here anyone I can discuss documentation with? 18:48 anonymous: I am not sure, maybe I am wrong, but maybe there is almost an error 18:48 anonymous: the* 18:49 anonymous: "The Racket Reference" 18:50 anonymous: (almost?) 18:50 anonymous: … 18:50 Sgeo: anonymous, sure 18:50 Sgeo: If there is an error, file a bug report 18:50 anonymous: Sgeo: thx. 18:50 anonymous: The dynamic extent of an expression is the sequence of evaluation steps during which an expression contains the redex. : an? maybe better say "the"? 18:50 Sgeo: http://bugs.racket-lang.org/ 18:51 Sgeo: hm 18:51 anonymous: Sgeo: I know only essential grammar 18:53 Sgeo isn't sure 18:53 (join) eikonos 18:54 (quit) jonrafkind: Quit: Ex-Chat 18:54 (join) jonrafkind 18:54 (quit) jonrafkind: Changing host 18:54 (join) jonrafkind 19:01 (quit) mithos28: Quit: mithos28 19:06 (join) mithos28 19:18 (quit) carleastlund: Quit: carleastlund 19:26 (quit) bitonic: Ping timeout: 260 seconds 19:39 (quit) mithos28: Quit: mithos28 19:45 (join) dnolen 19:54 bremner: "an" is fine 19:55 bremner: oh, the second one. Hmm. I guess "the" would be slightly better. But really, if that is your biggest complaint... 20:11 anonymous: bremner: …? 20:12 bremner: anonymous: what part of my statement is unclear? 20:13 anonymous: ah, sorry... I expected "then" 20:13 anonymous: not, it isn't 20:13 anonymous: I expected maybe it is not "slightly" better 20:13 anonymous: it is a grammatical error 20:14 Sgeo: I feel like "an" and "the" would give it different semantics 20:14 Sgeo: Then again, I still don't really understand this stuff 20:20 (join) jeapostrophe 20:20 (quit) jeapostrophe: Changing host 20:20 (join) jeapostrophe 20:36 (join) kvda 20:38 anonymous: I am hesitated to ask... This is more problem of my English. Is (- 4 (+ 1 1)) in tail position with respect to (+ 1 1). Sorry, it's deeeep night here. Is [+ 1 1] in tail position with respect to itself ([+ 1 1]). Is (cond #f (print "false") [+ 1 1] (print "true")) in tail position with respect to this [+ 1 1] 20:38 anonymous: I am very sorry, I should go sleep, but... 20:38 (quit) jonrafkind: Read error: Operation timed out 20:39 anonymous also doesn't know the term "enclosing" perfectly, goes to dictionary to make it perfect 20:39 anonymous: a* 20:41 Sgeo: I don't think (- 4 (+ 1 1)) can be in tail position with respect to (+ 1 1). The question would be if (+ 1 1) is in tail position with respect to (- 4 (+ 1 1)) 20:41 Sgeo: Which it isn't, because once you figure out (+ 1 1), you still have more work to do to get the answer to (- 4 (+ 1 1)) 20:42 Sgeo: Every expression is in tail position with respect to itself, because once you find itself, that's the result of itself 20:42 Sgeo: (if (< 0 1) (+ 1 1) (+ 2 2)) 20:43 Sgeo: (+ 1 1) is in tail position with respect to that entire expression, because once you've determined that you need to evaluate (+ 1 1) rather than (+ 2 2), the answer to the entire expression is the same as the answer to (+ 1 1) 20:44 Sgeo: Note that (+ 2 2) is also in tail position with respect to that expression, because if it were being evaluated instead, then that would be the result of the expression, even though in this case, it won't be evaluated 20:47 (join) Fare 20:51 (join) Kaylin 20:54 (join) kofno 20:57 anonymous: I am not sure what does mean the word "answer". Is 2 the answer to (+ 1 1)? If so, is (+ 1 1) in tail position with respect to (+ 0 (+ 1 1))? 20:57 Sgeo: Maybe "answer" is the wrong word 20:57 Sgeo: But 2 is the result of evaluating (+ 1 1) 20:58 Sgeo: (+ 1 1) is not in tail position with respect to (+ 0 (+ 1 1)) because after evaluating (+ 1 1) to get 2 it still needs to evaluate (+ 0 2) 21:08 anonymous: Maybe I am wrong, but... I feel like here (if (+ 1 1) (if (+ 2 2) (print "true") (print "false")) (print "not truth")) , the continuation of (if (+ 2 2) (print "true") (print "false")) is "(if (+ 1 1)" and "(print "not truth"))". 21:08 anonymous touched "enter" accidentally yet 21:09 anonymous: oh... forget it, I need to edit 21:12 Sgeo: If I don't respond, feel free to ping me 21:13 anonymous: Maybe I am wrong, but... I feel like here (if (+ 1 1) (if (+ 2 2) "true" "false") "not truth") , the continuation of (if (+ 2 2) "true" "false") is "(if (+ 1 1)" and "not truth")". The continuation of "true" is (if (+ 2 2) and "false" or 21:13 anonymous: ok, thx 21:15 anonymous: (if (+ 1 1) (if (+ 2 2) , AND, "false") "not truth" (depends on context). But it is definitely NOT (if (+ 1 1) 21:16 anonymous: and "not truth") 21:16 anonymous: the continuation of "true" and enclosing it (if (+ 2 2) "true" "false") is not the same! 21:17 (join) Kaylin1 21:17 anonymous: but to be in tail position, it must be the same 21:17 anonymous: according to "The Racket Reference" 21:18 anonymous: An expression expr1 is in tail position with respect to an enclosing expression expr2 if, whenever expr1 becomes a redex, its continuation is the same as was the enclosing expr2’s continuation. 21:18 (quit) kvda: Quit: x___x 21:18 (quit) jeapostrophe: Ping timeout: 276 seconds 21:19 (quit) Kaylin: Ping timeout: 252 seconds 21:19 (join) Kaylin 21:21 anonymous: So, if the continuation of "true" is different from enclosing it (if (+ 2 2) "true" "false"), who do we say it is the same(we intend it when we tell that "true" is in tail position with respect to (if (+ 2 2) "true" "false")? 21:21 anonymous: What have I got wrong? 21:21 (join) Nisstyre-laptop 21:21 anonymous: Sgeo? 21:22 (join) mizu_no_oto 21:22 (quit) Kaylin1: Ping timeout: 264 seconds 21:22 Sgeo: Hm 21:23 Sgeo: The continuation of "true" (i.e. the thing that happens next after "true" is evaluated) is the same as the continuation of (if (+ 2 2) "true" "false") 21:23 Sgeo: Because after you evaluate "true" there is no more work to be done by that if form 21:24 Sgeo: Oh, let me read the reference quote 21:24 anonymous: http://docs.racket-lang.org/reference/eval-model.htm 21:24 anonymous: 1.1.2 21:24 anonymous: and 1.1.1 (continuation) 21:26 Sgeo: Where are you getting that the continuations are different? 21:26 (join) RacketCommitBot 21:26 RacketCommitBot: [racket] plt pushed 2 new commits to master: http://git.io/rgYgsA 21:26 RacketCommitBot: racket/master 4f22b3b Robby Findler: fix traditional/simplified initial choice 21:26 RacketCommitBot: racket/master dd161bb Robby Findler: allow multiple string constants to be in a single "line"... 21:26 (part) RacketCommitBot 21:31 asumu: anonymous: the continuation when "true" is being evaluated is [], the same as the continuation of (if (+ 1 1) ...). 21:32 asumu: Because when the outer if is evaluated, first (+ 1 1) is evaluated with a continuation of (if [] (if ...) "not truth"). 21:32 anonymous: Sgeo: if I got it correctly, continuation is just text, surrounding a command computer runs at the time, i.e. in (+ 1 (+ 2 (+ 3 3))), the continuation of (+ 3 3) is (+ 2 [] ) and (+ 1 ( + 2 [] )) 21:32 asumu: Then the outer if is discarded, and (if (+ 2 2) "true" "false") is evaluated with a continuation of []. 21:33 asumu: Repeat and you finally get "true", no remaining computation. 21:33 Sgeo: A continuation is not just the surrounding text 21:33 (quit) kofno: Remote host closed the connection 21:34 Sgeo: It's actually the future of the evaluation. 21:35 (quit) parcha: Ping timeout: 240 seconds 21:37 (join) parcha 21:38 (join) kofno 21:40 anonymous is going to re-read the docs and chat again and again, thank you very much! 21:40 anonymous: asumu: It seems I've found again a typo, but Sgeo and bremner aren't sure is it a typo 21:41 anonymous: ...and I am 21:41 Sgeo: I'm not entirely sure of the intended meaning of the passage, and I feel like the difference _might_ change it 21:41 Sgeo: Although just a one word thing like that making a difference is probably bad stylistically 21:42 anonymous: 02:50 < anonymous> The dynamic extent of an expression is the sequence of evaluation steps during which an expression contains the redex. : an? maybe better say "the"? 21:43 anonymous: Sgeo: did you read the reference? Or where did you learn Racket? 21:44 Sgeo: I've tried reading the reference, but it's a bit hard for me to understand at times 21:44 Sgeo: I've mostly just read the guide, occasional bits of the reference 21:44 Sgeo: Some Scheme stuff despite knowing there would be differences 21:44 asumu: I would probably say "that expression" or say "which it contains the redex". 21:44 Sgeo: I've also tried learning Common Lisp and Clojure 21:47 (quit) dnolen: Ping timeout: 256 seconds 21:53 anonymous: Sgeo: why don't you come here and say I don't understand ( http://news.ycombinator.com/item?id=4930061 ), 21:53 anonymous: When nerds are unbearable it's usually because they're trying too hard to seem smart. But the smarter they are, the less pressure they feel to act smart. So as a rule you can recognize genuinely smart people by their ability to say things like "I don't know," "Maybe you're right," and "I don't understand x well enough." 21:53 anonymous: (c)Paul Graham 21:53 anonymous: So, you can improve the documentation 21:55 Sgeo: Because often when I look at the concepts later on I find that I get a better understanding later 21:55 anonymous: Sgeo: I don't mean I want to proof you something... But maybe among cool guys it's not a shame? 21:55 Sgeo: Things that seem difficult to me at first become less difficult later 21:55 anonymous: At least you can do it like me: to a deep night 21:56 anonymous: in* 21:56 anonymous: and then say "I just wanted to sleep!" 21:56 Sgeo: Hmm 21:56 anonymous: if you're afraid to be ashamed 21:56 Sgeo: A problem among some communities is that the only way to learn certain things is to hang out in their IRC channels 21:58 anonymous: Sgeo: is Racket community one of them? 21:58 Sgeo: anonymous, I don't know. I haven't been in the Racket community very long, I'm only recently getting re-interested in Racket 21:59 anonymous: s/ashamed/disgraced 22:05 Sgeo: I have no shame 22:06 Cryovat: That frilly floral dress he's wearing should have tipped you off about that 22:06 Cryovat: (sorry) 22:06 Sgeo: lol 22:11 bremner: anonymous: I didn't say it wasn't a typo. I just have a hard time getting very excited about it. 22:14 (join) RPR 22:14 bremner: anonymous: sorry, I don't mean to belittle your efforts, but there are so many more serious problems in every software system, including racket, that generating a large number of trivial bug reports can be counter productive. 22:14 (join) mye 22:14 Sgeo: bremner, erk 22:15 Sgeo: bremner, maybe a category for trivial documentation typos? 22:15 bremner: dunno. I'm not a racket project insider; that's just my personal opinion. 22:16 asumu: For small documentation fixes, pull requests are helpful. Since there's rarely much need for discussion. 22:16 asumu: (and doc fixes take less expertise usually) 22:25 (quit) masm: Remote host closed the connection 22:26 (quit) Kaylin: Quit: Leaving. 22:27 (quit) netrino: Remote host closed the connection 22:29 (join) gcr 22:29 gcr: Hey, I'm trying to interactively talk to a subprocess, but the subprocess never fflushes its stdout, so sometimes my (read-line stdout-port) blocks from the racket side. Is there a way to ask that file descriptor to use unbuffered output? 22:30 gcr: I can eg. say (displayln "Yes" stdin) (flush-output stdin), and watch the process with strace to see that it's actually accepting the input 22:30 gcr: and then it writes it back out, but it never calls flush so the output doesn't show up to racket 22:33 gcr: bah, this process just does a bunch of putchar()s 22:33 gcr: it behaves the same way if i call "process | cat" on the shell; nothing output until the process exits 22:36 gcr: Bah. Replacing my (subprocess ... "/usr/bin/adventure") call with (subprocess ... "/usr/bin/stdbuf" "--output=0" "/usr/bin/adventure") fixes my problem, thanks to the "stdbuf" program which is now part of coreutils 22:37 anonymous: bremner: nevermind, definitely I don't feel offended or something at all. 22:39 anonymous: like that* 22:42 asumu: gcr: just in case, you can set buffer mode with file-stream-buffer-mode. 22:42 gcr: asumu: Thanks, but that didn't seem to help. (This input port was created with a #f argument to subprocess if that means anything) 22:42 asumu: Oh okay. 22:44 anonymous: bremner: do you mean I should stop waste the insider's time because of grammar errors or just exactly it will be "slightly better"? 22:46 anonymous: would be* 22:46 Sgeo: asumu, well, one suggestion might be to suggest the fix yourself 22:46 Sgeo: Erm, anonymous 22:46 Sgeo: That's what asumu suggested I think 22:47 Sgeo: Although I don't know if PLT actually looks at GitHub 22:50 asumu: Pointing them out on IRC is fine too. I'll push a fix to that typo when I push some other commits. 22:50 anonymous: Sgeo: do you mean my grammar? Ok(As far as I can), but where has asumu suggested it? 22:51 Sgeo: anonymous, no, I mean, as in you could submit the fix yourself 22:51 anonymous: OK* 22:51 Sgeo: Or well, a suggestion to make the fix, while specifying what the fix is 22:51 anonymous: Ah... 22:51 anonymous: Yes 22:51 anonymous: Of course... 22:51 (part) gcr: "ERC Version 5.3 (IRC client for Emacs)" 22:52 Sgeo: What's the difference between syntax and quote-syntax ? 22:52 anonymous: Must I write … instead of ... whenever I can? 22:53 asumu: quote-syntax does not do substitution from a pattern. 22:53 anonymous: Sorry I wasn't… 22:53 Sgeo: anonymous, sorry. I'm not suggesting you're saying things in the wrong way. 22:53 asumu: rudybot: (with-syntax ([x #'foo]) (quote-syntax x)) 22:53 rudybot: asumu: ; Value: # 22:53 Sgeo: It's fine to use ..., and no one here will get offended by bad grammer, probably 22:53 asumu: rudybot: (with-syntax ([x #'foo]) (syntax x)) 22:53 rudybot: asumu: ; Value: # 22:53 anonymous: Sgeo: I've got it! I mean without intending your message 22:54 Sgeo: Oh 22:54 anonymous: didn't mean* 22:54 anonymous: So, must I? 22:54 anonymous: Nevermind... 22:55 anonymous: …* 22:56 Sgeo: Feel free to use ... 22:56 Sgeo: Actually, in syntax pattern matching, you have to use ... instead of ? 22:56 Sgeo: asumu, I don't entirely understand the difference between free-identifier=? and bound-identifier=? 22:57 (quit) dsantiago: Quit: Computer has gone to sleep. 22:59 (join) dsantiago 22:59 anonymous: bremner: do you mean I should stop waste the insider's time because of grammar errors or just exactly it will be "slightly better"? 23:00 asumu: Sgeo: I don't either, but the best explanation I have read is here: http://www.scheme.com/tspl4/syntax.html#g136 (scroll down a bit) 23:00 asumu: Of which the most important sentence is "The predicates free-identifier=? and bound-identifier=? are used to compare identifiers according to their intended use as free references or bound identifiers in a given context." 23:03 anonymous: that* 23:04 Sgeo: "Two identifiers that are free-identifier=? may not be bound-identifier=?. An identifier introduced by a transformer may refer to the same enclosing binding as an identifier not introduced by the transformer, but an introduced binding for one will not capture references to the other. On the other hand, identifiers that are bound-identifier=? are free-identifier=?, as long as the identifiers have valid bindings in the context where they are comp 23:04 Sgeo: ared." 23:15 (join) jeapostrophe 23:15 (quit) jeapostrophe: Changing host 23:15 (join) jeapostrophe 23:16 (quit) Fare: Ping timeout: 272 seconds 23:19 (join) ambrosebs 23:20 Sgeo: I'm looking at the grammar 23:21 Sgeo: How can (begin (define-values ...)) be legal in a module? 23:21 (quit) jeapostrophe: Read error: Operation timed out 23:21 (quit) mizu_no_oto: Quit: ["Textual IRC Client: www.textualapp.com"] 23:22 (quit) Nisstyre: Read error: Connection reset by peer 23:23 Sgeo: Hmm, unless it actually isn't? 23:26 (quit) Shviller: Ping timeout: 252 seconds 23:27 (join) Shviller 23:40 anonymous: (and #t "true") . Is "true" in tail position with respect to (and #t "true") 23:57 Sgeo: yes 23:58 Sgeo: Hmm, here's an interesting question, I'm not sure of the answer: Is #t in tail position with respect to (and #t "true") 23:58 Sgeo: Because if it evaluates to a true value, then you still need to evaluate the second item, but if it evaluated to #f, then it's done 23:59 Sgeo: Hmm, I guess you could be the result of an expression but not be in tail position with respect to it. Not sure what the case is here