00:00 paddymahoney: http://bugs.racket-lang.org/query/?cmd=view%20audit-trail&database=default&pr=12369&return_url=http%3A%2F%2Fbugs.racket-lang.org%2Fquery%2F%3Fdatabase%3Ddefault%3Bdebug%3D%3Bcmd%3Dsubmit%2520query%3BState%3Dany%3Bignoreclosed%3DIgnore%2520Closed%3BSynopsis%3Dunit%3Bmultitext%3D%3Bcolumns%3DState%3Bcolumns%3DSynopsis%3Bcolumns%3DCategory%3Bcolumns%3DLast-Modified%3Bcolumns%3DRelease%3Bsortby%3DNumber 00:00 rudybot: http://tinyurl.com/bzunnf3 00:04 (quit) wdkrnls: Remote host closed the connection 00:04 (join) RacketCommitBot 00:04 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/2BhY3w 00:04 RacketCommitBot: racket/master f6df93e Eric Dobson: Make mutable lists be sequences. 00:04 (part) RacketCommitBot 00:11 (quit) doomrobo: Quit: Leaving 00:20 (join) rmathews 00:49 mithos28: should you be able to apply this function to multiple arguments in TR? (case-lambda ((x) x) (w w)) 00:53 asumu: mithos28: probably, since you can in Racket. 00:53 mithos28: asumu: What type would you assign it? 00:54 mithos28: don't worry about polymorphism now 00:54 asumu: (case-> (Any -> Any) (Any * -> (Listof Any))) maybe 00:55 mithos28: ok, so is (case-> x y) a subtype of (case-> y)? 00:55 mithos28: for x and y simple arrow types 00:56 asumu: Hmm, I would think so. Does it not work? 00:56 (quit) mithos28: Read error: Connection reset by peer 00:57 (join) mithos28 00:57 mithos28: kernel panic :( 00:58 mithos28: so that would mean that that function has type (Any * -> (Listof Any)) 00:58 mithos28: which is unsound 00:59 asumu: Oh, because it doesn't return a list. 00:59 mithos28: right 00:59 mithos28: So either the typing rule is bad, or the subtyping rule is bad 01:04 (quit) ambrosebs: Remote host closed the connection 01:05 asumu: Maybe you need a (made-up) type like (Any Any Any * -> (Listof Any)) for the other branch. 01:06 mithos28: That would be a sound type to give it 01:06 mithos28: But would be hard to do 01:10 mithos28: I think the subtyping rule is important enough, that it cannot have that type 01:13 asumu: That sounds reasonable. Does TR allow it that type right now? 01:13 mithos28: no, I'm working on a fix for something related and let it type 01:13 (join) yeboot 01:14 mithos28: pr/12973 01:14 mithos28: TR currently errs on the too safe side 01:14 yeboot: if I want to do simple https send/get interactions, what should I use 01:14 yeboot: post* 01:15 mithos28: but also doesn't really understand rest args and so there is another way to break safety with it 01:15 Nisstyre-laptop: mithos28: why is that type unsound? 01:15 Nisstyre-laptop: remind me what "*" means 01:15 mithos28: many args 01:15 mithos28: like the function list 01:15 mithos28: list == (lambda w w) 01:15 Nisstyre-laptop: okay, why is it unsound? 01:16 asumu: yeboot: see `get-pure-port` and friends in the docs 01:16 mithos28: so if (case-lambda ((x) x) (w w) has type (case-> (Any -> Any) (Any * -> (Listof Any))) 01:16 mithos28: and (case-> (Any -> Any) (Any * -> (Listof Any))) is a subtype of (Any * -> (Listof Any)) 01:17 mithos28: then you can apply it to 1 argument and expect it to return a list 01:17 yeboot: asumu that'll do https automatically? I won't have to mess with ssl? 01:18 Nisstyre-laptop: mithos28: you can't unify (Any -> Any) with (Any * -> (Listof Any)) though, right? 01:18 Nisstyre-laptop: Unless I'm misunderstanding the terminology 01:18 Nisstyre-laptop: I'm used to Haskell 01:18 mithos28: right 01:19 mithos28: but case-> is the intersection type 01:19 mithos28: so it acts like all of the function types 01:19 Nisstyre-laptop: okay 01:20 mithos28: if it was (U (Any -> Any) (Any * -> (Listof Any)) that would be different 01:20 yeboot: asumu if I use get-pure-port, and friends, how do I set the user agent 01:20 Nisstyre-laptop: I found TR overly verbose coming from Haskell 01:21 Nisstyre-laptop: so many type annotations 01:21 mithos28: Nisstyre-laptop: TR does require a lot of type annotations 01:21 mithos28: I'm working at reducing it, but it does things differently than Haskell 01:21 mithos28: and Haskell requires a lot of type annotations if you do the interesting things 01:22 Nisstyre-laptop: mithos28: well for return type polymorphism it does 01:22 Nisstyre-laptop: and for things that require the monomorphism restriction 01:22 mithos28: or for most of the interesting extensions 01:22 Nisstyre-laptop: well, GADTs, yes 01:23 mithos28: and higher rank types 01:23 Nisstyre-laptop: yeah 01:24 asumu: yeboot: that's just a header right? There's an argument for sending headers in those functions. 01:24 asumu: Nisstyre-laptop: it's good practice to write annotations on top-level definitions in Haskell anyway. 01:24 asumu: So I don't see it as being that onerous. 01:24 Nisstyre-laptop: asumu: yes, I agree 01:24 Nisstyre-laptop: I like having ghci generate them for me though :P 01:25 mithos28: Nisstyre-laptop: Do you have any particularly egregious instances where TR needed annotations but you thought it should have known better? 01:26 asumu: yeboot: and yes, I do think those handle https, but note the disclaimer under "Beware" 01:26 yeboot: yeah 01:26 Nisstyre-laptop: mithos28: well, I thought the type of (lambda (a b) (+ a b)) should've been possible to infer, and it was inside a top level definition 01:27 Nisstyre-laptop: of course there could be a good reason it wasn't possible to infer 01:27 mithos28: Nisstyre-laptop: So that requires global inference 01:27 Nisstyre-laptop: I did look at the type of + 01:27 yeboot: although, like what is common with the racket docs thusfar, the beware section makes little sense without having to dig deeper and check everything it's talking about 01:27 mithos28: you need to look at the uses of a and b to determine their types 01:27 yeboot: which will likely result in over an hour's work as a result of recursively diving further and further through documentation that makes little sense 01:28 mithos28: you cannot just look at the binding sites 01:36 SunMoonStar: If anyone here uses Geiser for Emacs, I am wondering if there is a way for the REPL to recognize changes in the buffer rather than the file. i.e., if I make changes in the buffer, I currently have to save the changes before restarting the REPL for it to see the changes 01:39 yeboot: I just want to know how to send hello world in a post request 01:39 yeboot: I'm getting frustrated with the docs 01:43 yeboot: I really think I need a book on this language 01:44 mithos28: yeboot: Whats hard about post-pure-port 01:46 yeboot: I'm not sure what to do with the pipe once I get it 01:46 yeboot: the reason I'm frustrated is that I know this is likely entirely my fault 01:46 yeboot: and that I'm somehow missing information that would be clear to the next person 01:46 mithos28: yeboot: that is the body of the response 01:48 Nisstyre-laptop: if you want the headers use an impure port 01:49 yeboot: then how do I print it, lol 01:49 yeboot: I just want the response from the server, in that case would I use an impure port 01:50 mithos28: display-pure-port will help you with debugging 01:51 mithos28: or port->string may be helpful 01:52 Nisstyre-laptop: yeboot: I use port->string for that 01:52 Nisstyre-laptop: well, to get a string and feed it to a parser 01:53 yeboot: thanks so much! 01:53 Nisstyre-laptop: you may or may not need to do that depending on whether you can pass a port to whatever parser you're using 01:55 (join) gridaphobe 01:56 yeboot: sorry about complaining. I'm just finding myself lost a lot in the docs 01:58 (join) jonrafkind 02:10 (join) RacketCommitBot 02:10 RacketCommitBot: [racket] plt pushed 3 new commits to master: http://git.io/8j7FyA 02:10 RacketCommitBot: racket/master b265e26 Patrick Mahoney: Move eopl language to Racket.... 02:10 RacketCommitBot: racket/master cec73f5 Eli Barzilay: Newlines at EOFs scan. 02:10 RacketCommitBot: racket/master 334e1cf Eli Barzilay: Some style things. 02:10 (part) RacketCommitBot 02:12 (join) kvda 02:12 (quit) kvda: Excess Flood 02:12 (quit) SunMoonStar: Ping timeout: 248 seconds 02:13 (quit) Kaylin: Quit: Leaving. 02:15 (quit) yeboot: Ping timeout: 264 seconds 02:16 (join) yeboot 02:22 (quit) yeboot: Ping timeout: 252 seconds 02:22 (join) yeboot 02:35 (quit) gridaphobe: Remote host closed the connection 02:36 (quit) yeboot: Ping timeout: 276 seconds 02:42 (join) yeboot 02:44 yeboot: other than browsing github for examples, and looking for tutorials, are there any good examples of racket code 02:51 paddymahoney: fluxus. 02:52 paddymahoney: http://www.pawfal.org/fluxus/ 02:53 (join) Kaylin 02:59 yeboot: thanks 03:00 paddymahoney: there are some others. github has a lot of the code though. 03:19 (join) bitonic 03:20 (join) jao` 03:20 (quit) jao`: Changing host 03:20 (join) jao` 03:21 (quit) jonrafkind: Ping timeout: 252 seconds 03:23 (quit) jao: Ping timeout: 256 seconds 03:23 (quit) Fare: Ping timeout: 248 seconds 03:25 (quit) cdidd: Remote host closed the connection 03:27 (nick) jao` -> jao 03:29 (quit) Nisstyre-laptop: Quit: Leaving 03:32 (join) cdidd 03:32 (join) rmathews_ 03:35 (quit) rmathews: Ping timeout: 248 seconds 03:35 (nick) rmathews_ -> rmathews 03:35 (quit) racycle: Quit: racycle 03:39 (quit) mithos28: Quit: mithos28 03:52 paddymahoney: can anyone see my most recent msg to users@racket-lang.org? I have had a few not show in the past. 04:13 (quit) yeboot: Quit: leaving 04:18 (join) paddymahoney1 04:20 (nick) paddymahoney1 -> paddymahoney 04:35 (join) soegaard 04:51 (join) kvda 05:13 (join) yeboot 05:13 yeboot: is there a way to get the current language 05:13 yeboot: like if I want to see if #lang is racket or typed/racket 05:17 (quit) Kaylin: Read error: Connection reset by peer 05:19 (join) Fare 05:25 (join) paddymahoney1 05:26 (nick) paddymahoney1 -> paddymahoney 05:30 (join) paddymahoney 05:42 (quit) kvda: Quit: x___x 05:50 (join) rmathews 06:09 (join) bjz_ 06:09 (quit) bjz: Read error: Connection reset by peer 06:10 (quit) rmathews: Ping timeout: 260 seconds 06:14 (join) rmathews 06:18 (quit) rmathews: Ping timeout: 248 seconds 06:21 (quit) ASau: Remote host closed the connection 06:22 (join) ASau 06:25 (quit) bjz_: Ping timeout: 248 seconds 06:26 (join) bjz 06:35 (join) netrino 06:45 (join) jeapostrophe 06:45 (quit) jeapostrophe: Changing host 06:45 (join) jeapostrophe 06:46 (quit) paddymahoney: Remote host closed the connection 06:50 (join) 16WAAHOCF 06:51 (nick) 16WAAHOCF -> paddymahoney 06:52 (join) paddymahoney 06:53 (quit) cdidd: Remote host closed the connection 06:58 (quit) paddymahoney: Quit: Ex-Chat 07:18 (join) jwdunne 07:20 (quit) yacks: Quit: Leaving 07:30 (quit) yeboot: Quit: foo 07:35 (join) ambrosebs 07:46 (join) mizu_no_oto 08:08 (quit) mizu_no_oto: Quit: Computer has gone to sleep. 08:10 (join) acarrico 08:19 (quit) ambrosebs: Remote host closed the connection 08:31 (join) cdidd 08:34 (quit) Fare: Ping timeout: 252 seconds 08:36 (join) mizu_no_oto 08:37 (quit) mizu_no_oto: Client Quit 08:40 (join) anonymous97890 08:40 anonymous97890: Hello everyone! 08:42 (join) yacks 08:45 (join) Fare 08:58 bremner: hmm. Anyone got a "free software friendly" version of http://www.infoq.com/presentations/Racket ? It seems to want to me install flash player. 08:58 anonymous97890: bremner: what about gnash? 08:59 bremner: doesn't seem to work with gnash 09:04 bremner: google suggests http://www.imdb.com/title/tt0043955/ ;) 09:06 bremner coughs politely at the suggestion on HN that PLT should hilight the Arc connection more. 09:19 (join) ijp 09:19 (part) jwdunne 09:19 (join) anRch 09:31 (quit) andres-v`: Remote host closed the connection 09:32 (join) shadgregory 09:35 (join) cnonim 09:36 cnonim: (map display '("1" "2" "3" "4" "5")) 09:36 cnonim: 12345'(# # # # #) 09:36 cnonim: wtf void void void ??? 09:38 cnonim: gabot: (map display '("1" "2" "3" "4" "5")) 09:39 anonymous97890: rudybot: (map display '("1" "2" "3" "4" "5")) 09:39 rudybot: anonymous97890: your sandbox is ready 09:39 rudybot: anonymous97890: ; Value: (# # # # #) 09:39 rudybot: anonymous97890: ; stdout: "12345" 09:40 anonymous97890: wtf display returns void? 09:40 anonymous97890: ...and prints 09:40 cnonim: yes 09:40 anonymous97890: rudybot: (eq? (display "a") (void)) 09:40 rudybot: anonymous97890: ; Value: #t 09:40 rudybot: anonymous97890: ; stdout: "a" 09:42 cnonim: ok, thx :) 09:43 cnonim: how i can call some procedure over list? 09:43 cnonim: i must use map? 09:44 cnonim: or it's wrong 09:45 anonymous97890: cnonim: I am a newbie, but... 09:45 anonymous97890: you can use recursion 09:45 anonymous97890: map is not a primitive function 09:45 anonymous97890: it is based on recursion 09:45 anonymous97890: http://docs.racket-lang.org/guide/Lists__Iteration__and_Recursion.html 09:48 cnonim: haskell have mapM_ for IO function like display 09:50 (join) rich1 09:51 anonymous97890: cnonim: ...and? 09:52 cnonim: i found for/list it's solution 09:55 anonymous97890 is very glad if he helped cnonim! 09:57 cnonim: rudybot: (for/list ([e '("1" "1" "1")] display e) 09:57 rudybot: cnonim: I can't figure out how to use sequence-lift. At first I figured it's basically "map" for sequences, but (for/list ([x (sequence-lift add1 (list 1 2 3))]) x) doesn't yield (2 3 4) as I'd expect; instead, it hangs 09:59 cnonim: rudybot: (for ([e '("1" "1" "1")] display e) 09:59 rudybot: cnonim: I do other things that are none of your god damn business. And further more, we dont need you preaching to everyone because youve e 09:59 (quit) noam_: Read error: Connection reset by peer 10:01 cnonim: rudybot: (for ([e '("1" "1" "1")]) display e) 10:01 rudybot: cnonim: your sandbox is ready 10:01 rudybot: cnonim: Done. 10:01 cnonim: rudybot: (for ([e '("1" "1" "1")]) (display e)) 10:01 rudybot: cnonim: ; stdout: "111" 10:02 cnonim: fuck yeah :) 10:03 anonymous97890 is very sad he late :( 10:10 (join) dnolen 10:15 (join) Kaylin 10:17 (quit) anRch: Quit: anRch 10:18 (join) mithos28 10:27 (quit) jeapostrophe: Ping timeout: 264 seconds 10:30 (join) hash_table 10:30 (join) Aune 10:37 (join) paddymahoney 10:41 paddymahoney: morning! 10:42 anonymous97890: that's great... 10:46 (quit) paddymahoney: Quit: Ex-Chat 10:46 rich1: will (rest lst) be slow by creating a new list with everything but the 1st, or fast because it will return the second part of the pair which makes the original list? 10:46 (join) paddymahoney 10:46 mithos28: rich1: fast 10:47 rich1: cool, so it will execute in constant time? 10:47 mithos28: there are some technical reasons why it wont, but yes consider it constant time 10:48 mithos28: rudybot: (time (rest '(1 2)) 10:48 rudybot: mithos28: give it a rest 10:48 rich1: ok, so it's not O(n) then 10:48 mithos28: rich1: technically yes, but not for the reasons you are thinking of 10:49 mithos28: rudybot: (time (rest '(1 2))) 10:49 rudybot: mithos28: your sandbox is ready 10:49 rudybot: mithos28: ; Value: (2) 10:49 rudybot: mithos28: ; stdout: "cpu time: 0 real time: 0 gc time: 0\n" 10:49 mithos28: rudybot: (time (rest (make-list 1000000 (lambda (x) x)))) 10:49 rudybot: mithos28: error: with-limit: out of memory 10:49 (join) SunMoonStar 10:50 mithos28: rudybot: (time (rest (make-list 10000 (lambda (x) x)))) 10:50 rudybot: mithos28: ; Value: (# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # paddymahoney 11:29 (join) Guest76437 11:31 (quit) ijp: Ping timeout: 252 seconds 11:34 cnonim: how i can parse HTTP error code which return from purify-port? 11:35 cnonim: extract-all-fields from net/head parse header but what parse HTTP code? 11:42 (quit) Guest76437: Remote host closed the connection 11:48 (quit) cnonim: Ping timeout: 248 seconds 11:50 (join) ijp 11:56 (quit) dnolen: Ping timeout: 248 seconds 11:58 (join) paddymahoney1 11:59 (nick) paddymahoney1 -> paddymahoney 12:11 (quit) ambrosebs: Remote host closed the connection 12:17 (join) ambrosebs 12:28 (join) rmathews 12:31 (quit) troydm: Read error: Operation timed out 12:32 (quit) ambrosebs: Remote host closed the connection 12:32 anonymous97890: it seems I've got a few in the documentation 12:33 anonymous97890: it seems I've got a few bugs* 12:33 anonymous97890: http://docs.racket-lang.org/guide/intro.html 12:33 mithos28: anonymous97890: Report them. There is a bug report tool in DrRacket, or at bugs.racket-lang.org 12:33 anonymous97890: Also, change the file permissions to executable using chmod +x ‹filename› on the command line. 12:34 anonymous97890: mithos28: I know. I am not sure whether I should 12:34 mithos28: If you are confused by it, then it is likely bad documentation 12:34 anonymous97890: I will report about this, but I've written here just for you to not think about me "again he is writing absurd" 12:35 anonymous97890: writing only* 12:35 (join) troydm 12:49 (join) jonrafkind 12:52 (quit) shadgregory: Read error: Connection reset by peer 13:05 (quit) hash_table: Ping timeout: 252 seconds 13:07 (quit) netrino: Ping timeout: 255 seconds 13:11 (quit) ASau: Remote host closed the connection 13:12 (join) ASau 13:22 (quit) jonrafkind: Ping timeout: 244 seconds 13:27 (join) noam 13:32 anonymous97890: so, even if this is "just bad documentation", but not exactly a bug, i should use bugreport? The question is next: in "reply" function in 2.2 has a bug. but the next version (reply-more) has fixed it. The next version has it again. The bug: function fails if you ask less than 5 symbols. 13:33 mithos28: anonymous97890: There is a setting on the bugreport that says documentation bug 13:34 (quit) cored: Ping timeout: 255 seconds 13:34 anonymous97890: mithos28: documentation works and description works perferct. It is perfect clear. The example "does do what should perfectly". Documentation - perfectly. 13:35 (join) jonrafkind 13:35 anonymous97890: ...but why has it fixed the bug then?.. 13:35 anonymous97890: in the example 13:35 (quit) yacks: Remote host closed the connection 13:35 anonymous97890: http://docs.racket-lang.org/guide/syntax-overview.html 13:35 (join) cored 13:36 mithos28: What is your question 13:36 mithos28: I agree that the example is buggy 13:36 mithos28: you should report it 13:39 anonymous97890: mithos28: please just tell me that these reports are ok to make me sleep well. I am going to try to sent reports like these without IRC if I am sure. But with this, i.e., I wasn't. 13:39 anonymous97890: so, 5 more 13:39 mithos28: you definitely found a bad example here 13:41 mithos28: Just go ahead and report them 13:41 anonymous97890: Unicode symbols in DrRacket in linux 13:41 anonymous97890: In an usual GTK program 13:42 mithos28: What about them? 13:42 anonymous97890: you can enter Ctrl+U, and enter a HEX number, and you will enter a unicode symbol 13:43 anonymous97890: Ctrl+Shift+U* 13:43 anonymous97890: i.e. 2031 ‱ 13:43 (quit) ARCADIVS: Quit: WeeChat 0.3.8 13:44 anonymous97890: You can see it in (almost) every GTK application. You can enter it in Racket, but you can't see numbers you enter 13:44 mithos28: that sounds like a bug 13:47 anonymous97890: I googled, but haven't found the bug on. The request was "unicode site:bugs.racket-lang.org" . 13:47 anonymous97890: So, the next: 13:48 anonymous97890: > (1 2 3 4) 13:48 anonymous97890: application: not a procedure; 13:48 anonymous97890: expected a procedure that can be applied to arguments 13:48 anonymous97890: given: 1 13:48 anonymous97890: arguments...: 13:48 anonymous97890: 2 13:48 anonymous97890: 3 13:48 anonymous97890: 4 13:48 anonymous97890: When you accidentally omit a function name or when you use parentheses around an expression, you’ll most often get an “expected a procedure” error like this one. 13:49 mithos28: Right, whats the bug? 13:51 anonymous97890: any identifier of a function that doesn't take argument is an expession. Also, I am not sure about my English, but even here (+ first_argument second_argument), the parentheses are around the first_argument, and the first_argument is an expression. 13:52 anonymous97890: parameters 13:52 anonymous97890: are often expressions surrounded by parentheses 13:53 anonymous97890: (I want you to pay attention: I haven't got parameters yet, I have read till chapter 5(I haven't read chapter 5), but haven't got a thing about a difference between let and parameterize 13:54 anonymous97890: ) 13:54 mithos28: parameters as in parameterize are a special racket concept 13:54 mithos28: parameters in english could also mean the same as arguments, but that meaning is not used in racket 13:54 anonymous97890: mithos28: I am going to re-read it later, today I am not sure I can get it :) 13:55 anonymous97890: right now 13:55 anonymous97890: ...before let 13:55 anonymous97890: this is very strange, but I haven't got let, it seems, but this is malphobably too^^ 13:56 anonymous97890: So, what about the last bug? 13:56 anonymous97890: Is it a bug? 13:56 mithos28: Which one? 13:56 (join) Kaylin 13:57 anonymous97890: When you accidentally omit a function name or when you use parentheses around an expression, you’ll most often get an “expected a procedure” error like this one. 13:57 mithos28: What do you think should happen? 13:57 anonymous97890: Have you got why do I think the chapter "when you use parentheses around an expression" should be deleted? 13:57 anonymous97890: It should be... 13:57 anonymous97890: When you accidentally omit a function name, you’ll most often get an “expected a procedure” error like this one. 13:58 bremner: rudybot: init racket 13:58 rudybot: bremner: your sandbox is ready 13:58 bremner: rudybot: eval ((+ 1 1)) 13:58 rudybot: bremner: error: application: not a procedure; expected a procedure that can be applied to arguments given: 2 arguments...: [none] 13:58 anonymous97890: bremner: are you speaking with me? 13:58 bremner: just giving an example to think about. 14:00 anonymous97890: bremner: you have skipped a function name. Also, you put _two_ parentheses around 1. I mean this is like say: 14:00 anonymous97890: When you accidentally omit a function name or when you put text into DrRacket, you’ll most often get an “expected a procedure” error like this one. 14:00 anonymous97890: (initialize-my-engine) 14:00 anonymous97890: (or) 14:00 anonymous97890: (and) 14:01 anonymous97890: I've put parentheses around an expression 14:01 bremner: well, I don't feel like arguing about it; to me the example I gave fits "put parentheses around an expression". Perhaps it should say "put extra parentheses around an expression" 14:01 mithos28: anonymous97890: Yes, because it is a broken program. It looks like you want a different error message. What is that error message? 14:03 (nick) FareWell -> Fare 14:04 anonymous97890: (what does your "Yes" replies to?) I don't want to to fix the error in DrRacket, i want to fix documentation. I want s/When you accidentally omit a function name or when you use parentheses around an expression, you’ll most often get an “expected a procedure” error like this one./When you accidentally omit a function name, you’ll most often get an “expected a procedure” error like this one. 14:04 anonymous97890: want to* 14:05 mithos28: ah, I think the word extra needs to be inserted there 14:05 mithos28: when you use 'extra' parentheses around an expression 14:06 mithos28: I didn't see that you were refering to the documentation, I thought it was just the error message 14:06 bremner: it doesn't hurt to add 'extra', I agree. 14:06 mithos28: I would file a documentation bug on that yes. 14:06 bremner: in my experience, most learners won't think of that as omitting a function 14:09 anonymous97890: Thanks. So, I am going to send. The next one: 14:09 anonymous97890: It can be just simplification 14:09 anonymous97890: 2.2.3: identifiers 14:10 anonymous97890: Racket’s syntax for identifiers is especially liberal. Excluding the special characters ( ) [ ] { } " , ' ` ; # | \ and except for the sequences of characters that make number constants, almost any sequence of non-whitespace characters forms an ‹id›. 14:10 anonymous97890: a* 14:10 anonymous97890: rudybot: (define |("{#\|| 3) (print |("{#\||)) 14:10 rudybot: anonymous97890: if you have the property list, just print it into the repl or whatever 14:11 anonymous97890: rudybot: (define |{|) (print |(|)) 14:11 rudybot: anonymous97890: And every symbol must have a print syntax. 14:11 anonymous97890: hm... 14:11 bremner: try telling rudybot to 'eval' things 14:11 mithos28: rudybot: (define |{| 'hello) 14:11 rudybot: mithos28: Done. 14:12 mithos28: anonymous97890: That documentation is not saying that those special characters cannot form ids 14:12 mithos28: its saying that things without them are ids 14:13 anonymous97890: Huh? Thanks. 14:14 anonymous97890 expected the word "Excluding" as they can't. Ok, thanks very much. 14:15 mithos28: It is saying that if you exclude them from the set of things under discussion 14:16 anonymous97890: Yes, I got it. Thanks. My English is not perfect, but I work on it^^. 14:16 anonymous97890: So, the next... 14:17 anonymous97890: About this one I am sure the least 14:17 anonymous97890: (a-procedure #:first 1) 14:17 anonymous97890: Is the #:first an argument? 14:18 mithos28: it is a keyword 14:18 anonymous97890: mithos28: is it an argument? 14:18 anonymous97890: is a keyword an argument? 14:18 mithos28: no 14:18 anonymous97890: where the number of ‹expr›s determines the number of arguments supplied to the function named by ‹id› 14:19 mithos28: rudybot: (define (f #:first x) 3) 14:19 rudybot: mithos28: Done. 14:19 anonymous97890: ...sorry, I am going to give a full quote 14:19 anonymous97890: We have already seen many function calls, which are called procedure applications in more traditional terminology. The syntax of a function call is 14:19 anonymous97890: +Function Calls (Procedure Applications) (later in this guide) explains more about function calls. 14:19 anonymous97890: ( ‹id› ‹expr›* ) 14:19 anonymous97890: where the number of ‹expr›s determines the number of arguments supplied to the function named by ‹id›. 14:19 mithos28: anonymous97890: You haven't gotten to keywords yet 14:19 mithos28: So it is not talking about them yet 14:20 mithos28: Section 4.3 has more detail 14:20 anonymous97890: I have read the section. But as I see it lies(simplifies, ok). 14:20 mithos28: well keywords aren't expressions 14:20 anonymous97890: I can accept that's ok. 14:21 anonymous97890: huh? 14:21 mithos28: rudybot: #:first 14:21 rudybot: mithos28: error: #:1:0: #%datum: keyword used as an expression in: #:first 14:21 anonymous97890: A program module is written as 14:21 anonymous97890: #lang ‹langname› ‹topform›* 14:21 anonymous97890: where a ‹topform› is either a ‹definition› or an ‹expr›. The REPL also evaluates ‹topform›s. 14:21 (join) Nisstyre-laptop 14:21 anonymous97890: (I can accept that's another simplification and ok) 14:21 anonymous97890: (but, please tell it if so) 14:22 mithos28: Almost all of the guide is a simplification 14:22 anonymous97890: tell me it* 14:26 anonymous97890: That's all, thank you! 14:26 bremner: what is the simplification that is bothering you? 14:26 bremner: (in the last example) 14:26 anonymous97890: very much! 14:26 anonymous97890: bremner: _me_? 14:26 bremner: yes 14:28 (quit) offby1: Quit: rebootin' time 14:29 (quit) cdidd: Read error: Connection reset by peer 14:30 (join) rudybot 14:31 anonymous97890: At fact, _I_ prefer like told Einstein "Everything Should Be Made as Simple as Possible, But Not Simpler". This one of many reasons why am I not going to study BSL. It seems Stroustrup doesn't like "study languages" too. But Stroustrup and many other masters (Knuth) temporary simplificate and see that OK. The most important for _me_ is trustfulness of completeness of a guide. At first I tried to read the Reference, but ha 14:33 (quit) jonrafkind: Ping timeout: 264 seconds 14:33 anonymous97890: In guides I prefer the philosophy "Be conservative in what you send, liberal in what you accept". It doesn't matter if the Guide is made for other people too. 14:41 (join) offby1 14:42 (quit) offby1: Changing host 14:42 (join) offby1 14:44 (join) dyoo 14:46 (quit) dyoo: Client Quit 14:47 (join) dyoo 14:57 (join) dnolen 15:00 Nisstyre-laptop: anonymous97890: the reference is a reference 15:00 Nisstyre-laptop: it is not meant to teach you about the language 15:00 Nisstyre-laptop: it's for people who already understand what they need to know 15:01 Nisstyre-laptop: the guide is meant for teaching you, but it's not meant for people with little experience with programming or functional programming 15:01 (quit) dnolen: Ping timeout: 252 seconds 15:08 (quit) anonymous97890: Ping timeout: 255 seconds 15:12 (join) gridaphobe 15:16 (join) rohni 15:24 (quit) gridaphobe: Remote host closed the connection 15:24 (join) anonymous97890 15:31 (join) Kaylin1 15:33 (quit) Kaylin: Ping timeout: 252 seconds 15:36 (join) RacketCommitBot 15:36 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/2h10HA 15:36 RacketCommitBot: racket/master b0343aa Robby Findler: add a contract on the interaction between the module-lexer and the... 15:36 (part) RacketCommitBot 15:39 (quit) Aune: Quit: Hath Deprated 15:40 (join) jao 15:41 (quit) jao: Changing host 15:41 (join) jao 15:42 (quit) anonymous97890: Quit: Lost terminal 15:43 (join) RacketCommitBot 15:43 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/6m7E0w 15:43 RacketCommitBot: racket/master 9dd8141 Danny Yoo: Use @racket[] on the unquote-splicing identifier so that we get good hyperlinking.... 15:43 (part) RacketCommitBot 15:45 (join) yeboot 15:51 (nick) offby1 -> offby1-home 15:52 (quit) dzhus: Ping timeout: 252 seconds 15:52 (join) offby1 15:52 (quit) offby1: Changing host 15:52 (join) offby1 15:59 (join) cnonim 16:00 cnonim: i'm try write module in typed racket http://bpaste.net/show/79311/ 16:00 cnonim: from shell it load and compile 16:01 cnonim: but in drracket got standard-module-name-resolver: cycle in loading 16:01 cnonim: what's wrong? 16:02 dyoo: cnonim: I think submodules and typed racket might still need some work. 16:03 dyoo: Does it work if you just use separate modules? 16:04 dyoo: cnonim: I note that in the pre-release version of Racket, what you have is fine in DrRacket. What version of DrRacket are you using? 16:05 cnonim: i'm newby separate module it's main module in subfolder of package? 16:05 cnonim: drracket 5.3.3 16:06 dyoo: cnonim: just checking: what version of DrRacket? It's also working for me in the released 5.3.2. You're seeing this in 5.3.3? Huh! 16:06 cnonim: yes 16:06 dyoo: give me a sec: trying to replicate what you're seeing.. 16:06 yeboot: how do I make a module declaration in my .rkt files 16:07 cnonim: (module ...) ? 16:07 (join) gridaphobe 16:07 dyoo: cnonim: how odd. I can't replicate this yet. Can you submit a bug report in DrRacket for this? It'll include the environmental information in your DrRacket. 16:07 yeboot: serious? in the past I've just used (require foo) 16:08 dyoo: yeboot: does http://docs.racket-lang.org/guide/module-basics.html address what you're asking? 16:09 cnonim: dyoo: i can write bug report in russian language? 16:10 dyoo: I think that might make things harder, but if you have to, well, there's always translate.google.com to help. :) 16:10 dyoo: but if you can write the bug report in english, that would be _much_ easier for the developers. 16:10 cnonim: ok 16:11 (quit) mithos28: Quit: mithos28 16:12 yeboot: `yeah I just opened that up :) thanks dyoo 16:13 cnonim: what i must write in resume? 16:13 (join) mithos28 16:14 (join) RacketCommitBot 16:14 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/I5K9QA 16:14 RacketCommitBot: racket/master 18889de Danny Yoo: Add 'extra' to emphasize the intended meaning.... 16:14 (part) RacketCommitBot 16:15 dyoo: cnonim: what do you mean by 'resume'? 16:16 bremner: "summary", maybe? 16:17 cnonim: yes summary 16:17 dyoo: if that's it, then maybe this: "cycle in loading" error when using main submodule in Typed Racket 16:17 cnonim: i already submit bug 16:17 (join) dnolen 16:18 dyoo: ok. Hopefully someone who knows the TR system (like Sam or mithos) should be able to look into the problem. 16:18 cnonim: but don't get confirmation 16:19 dyoo: give it a moment: I've noticed the bug submitter takes a few minutes or so to accept new bugs. 16:19 cnonim: ok 16:19 cnonim: ) 16:20 cnonim: http://bugs.racket-lang.org/query/?cmd=view&pr=13551 16:20 yeboot: is there a way to have methods generate other methods 16:21 yeboot: higher order object methods 16:21 cnonim: return from function lambda 16:22 dyoo: yeboot: do you have an example in mind? Not quite sure what you mean quite yet.. :) 16:22 yeboot: dyoo actually I do! 16:23 yeboot: http://ix.io/4vF 16:23 yeboot: somehow-override is what I'm talking about 16:23 dyoo: ok, reading... 16:24 dyoo: I don't think there is anything built-in to do this, if I understand the intent here. 16:24 dyoo: this has the feeling of parameters though. 16:25 dyoo: Let me see if I can cook something up. 16:25 yeboot: dyoo what I have in mind, though, is having a generated thread/object define the method to kill it within the object 16:25 yeboot: if that makes any sense 16:25 yeboot: that's largely a proof of concept towards that 16:27 (quit) mithos28: Quit: mithos28 16:28 dyoo: yeboot: this is probably not what you want: https://gist.github.com/dyoo/5021430 16:29 dyoo: not quite sure yet how to nicely do what you're intending. If I think of something better, I'll pipe up. 16:30 yeboot: I think having the class set up its thread on construction might be it 16:31 yeboot: that doesn't seem too bad 16:32 yeboot: I just wanted to encapsulate the idea of beginning and ending something within an object 16:32 yeboot: particularly with things that are threaded 16:32 (quit) bremner: Ping timeout: 248 seconds 16:33 (join) bremner 16:33 (quit) bremner: Changing host 16:33 (join) bremner 16:40 (quit) cnonim: Quit: WeeChat 0.4.0 16:40 yeboot: ah, so you can't have the public methods be changed, but methods that call local procedures, you can change the procedures 16:41 yeboot: thanks dyoo 16:43 (join) RacketCommitBot 16:43 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/H-MYSQ 16:43 RacketCommitBot: racket/master 18c0092 Robby Findler: fix up tests to reflect the module-lexer now behaves a little... 16:43 (part) RacketCommitBot 16:45 (join) masm 16:50 (quit) spanner: Remote host closed the connection 16:50 (join) spanner 16:51 rich1: as a learning exercise, i can simulate my own version of map using cons - however, i can't understand how i could do reverse 16:51 dyoo: rich1: you mean, try to define reverse in terms of recursion and cons? 16:52 rich1: dyoo: yes, because reversing the order of arguments to cons doesn't give the desired effect - it's just a pair at the top level 16:52 dyoo: rich1: if I remember right, there's a trick to that: keep an accumulator variable, and then it works out. 16:52 dyoo: let me see if I can find the reference... 16:53 dyoo: rich1: here: http://htdp.org/2003-09-26/Book/curriculum-Z-H-39.html#node_chap_31 16:54 rich1: ah chapter 31 - i've been switching between the racket guide and htdp - but haven't got that way far yet 16:54 dyoo: couldn't find the equivlaent prose in the 2nd edition of the text 16:54 rich1: thanks for the link 16:54 dyoo: but yeah, I think you need to do something like that to make an efficient reverse. Otherwise, you may end up having to do something with append, which can is painfully expensive. 16:55 dyoo: s/which can is/which can be 16:55 dyoo: I swear, I'm a native english speaker… :( 16:56 rich1: no worries 16:56 rich1: i assume the function we all should use, reverse in the racket library, already does the efficient way? 16:56 dyoo: yeah 16:56 dyoo: there's quite a few functions in racket/list that do much better than the naive approach 16:57 dyoo: flatten, in particular, is better than the intro-cs approach 16:59 (quit) yeboot: Ping timeout: 260 seconds 17:02 dyoo: Hmm… I should qualify that: "better than the 2nd-week intro cs approach". Accumulator-style is in the intro cs class too. :) 17:03 Nisstyre-laptop: dyoo: http://ideone.com/fake 17:03 Nisstyre-laptop: er 17:03 Nisstyre-laptop: wtf 17:03 Nisstyre-laptop: okay ideone is down 17:04 Nisstyre-laptop: http://codepad.org/pJhNQYDt 17:06 rich1: using let you can be explicit about using common expressions to stop being redundant, but if you don't use let, does racket "eliminate" common expressions on its own? 17:07 dyoo: Nisstyre-laptop: yup, the same idea as in the Racket library: http://git.racket-lang.org/plt/blob/HEAD:/collects/racket/private/reverse.rkt 17:07 rudybot: http://tinyurl.com/bjyc7ct 17:08 (quit) vkz: Read error: Connection reset by peer 17:08 (join) vkz_ 17:09 (quit) Nisstyre-laptop: Quit: Leaving 17:09 dyoo: rich1: dunno how clever the optimizer is. There's a little discussion in: 17:09 rich1: "New optimization pass: common subexpression elimination (CSE)" -> http://git.savannah.gnu.org/gitweb/?p=guile.git;a=blob;f=NEWS;h=ebf5d616986f0d9fe1d05c0dc65ccc99e2850eeb;hb=3b5390989d347b4ffd363d83d516f5d0dc56af77 17:09 rudybot: http://tinyurl.com/awy3dwx 17:09 dyoo: http://docs.racket-lang.org/guide/performance.html 17:10 (join) Nisstyre-laptop 17:10 rich1: also "Improvements to the partial evaluator" below that in the guile news - just found them after searching 17:11 (join) jeapostrophe 17:11 (quit) jeapostrophe: Changing host 17:11 (join) jeapostrophe 17:12 rich1: looks like racket does it: "The bytecode compiler applies all standard optimizations, such as constant propagation, constant folding, inlining, and dead-code elimination." 17:13 asumu: I don't think it actually does CSE, but I'm not sure. 17:15 ijp: for a long while, guile's cse pass mostly just slowed down compilation :/ 17:17 dyoo: http://git.racket-lang.org/plt/blob/HEAD:/src/racket/src/optimize.c makes me appreciate that there's some heavy-duty stuff going on in racket optimization 17:17 asumu: http://lists.racket-lang.org/users/archive/2011-May/045402.html <-- Racket does not do CSE, at least as of 2011. 17:18 ijp: I don't even think it has been much of a win, compared to the peval pass 17:22 asumu: BTW: neat link from Twitter: https://bitbucket.org/rohinmshah/forth-interpreter/wiki/Home 17:22 (quit) vkz_: Read error: Connection reset by peer 17:23 (join) vkz 17:23 dyoo: asumu: oh, cool! 17:24 dyoo: asumu: is this by the same folks from http://www.cs.berkeley.edu/~bodik/cs294fa12.html 17:24 (quit) masm: Ping timeout: 261 seconds 17:24 (quit) vkz: Client Quit 17:27 (quit) rohni: Quit: Leaving. 17:27 (join) RacketCommitBot 17:27 RacketCommitBot: [racket] plt pushed 2 new commits to master: http://git.io/0DlJKg 17:27 RacketCommitBot: racket/master 64d7911 Robby Findler: add has-option? to check if a value has an option contract or not 17:27 RacketCommitBot: racket/master 5e2cc34 Robby Findler: change the option setup: everyone has an option contract now and... 17:27 (part) RacketCommitBot 17:28 asumu: dyoo: I believe the author is a student at Berkeley, but I don't know otherwise. 17:36 (quit) jeapostrophe: Ping timeout: 244 seconds 17:36 dyoo: gah, it's snowing harder here now. Better get home before I get trapped in the cafe! 17:36 (quit) dyoo: Quit: dyoo 17:37 rich1: have a safe journey 17:39 (join) DaniG2k 17:40 rich1: is there a convention for naming singular and the related plural case in racket 17:41 rich1: e.g.pool-depth and pool-depths, or depth-of-pool and pool-depths 17:41 rich1: the plural case will take a list and apply the singular case to each element 17:52 (join) RacketCommitBot 17:52 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/X8Rruw 17:52 RacketCommitBot: racket/master d25cbed Robby Findler: add scrollbars 17:52 (part) RacketCommitBot 17:55 (join) tcsc 17:56 rich1: i'm only writing toy programs at the moment with racket, and although they are about a screenful or 2 including tests, the optimization coach in drracket still highlights things in red 18:02 (join) vkz 18:23 (join) Guest52870 18:45 offby1: asumu: thanks!! 18:50 (join) jonrafkind 19:06 (quit) soegaard: Quit: soegaard 19:08 asumu: offby1: NP. You'll hopefully see more pull requests in the future. :) 19:09 asumu is now using Laurent's rwind as his window manager on this machine. 19:10 offby1: asumu: it's funny -- I rarely even look at rudybot's source any more, but today I sat down and decided to do a little tweaking ... and then I saw your pull request. 19:10 offby1: Something in the air, I guess. 19:13 (quit) dnolen: Ping timeout: 252 seconds 19:14 (join) Kaylin 19:15 (quit) jao: Ping timeout: 244 seconds 19:16 (part) DaniG2k: "Leaving" 19:16 (quit) Kaylin1: Ping timeout: 256 seconds 19:37 (quit) vkz: Quit: vkz 19:38 (quit) bjz: Quit: Leaving... 19:39 (quit) rich1: Quit: Leaving. 20:03 (join) ambrosebs 20:19 (join) didi 20:20 (join) shadgregory 20:21 (quit) Kaylin: Read error: Connection reset by peer 20:34 (join) Kaylin 20:35 (join) bjz 20:44 (join) paddymahoney1 20:44 (nick) paddymahoney1 -> paddymahoney 20:51 (join) RacketCommitBot 20:51 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/aLlrBA 20:51 RacketCommitBot: racket/master 40363da Robby Findler: forgot to add this file in my previous commit 20:51 (part) RacketCommitBot 20:59 (quit) gridaphobe: Remote host closed the connection 21:06 (quit) ambrosebs: Remote host closed the connection 21:17 (quit) SunMoonStar: Remote host closed the connection 21:23 (join) jao 21:23 (quit) jao: Changing host 21:23 (join) jao 21:28 (join) RacketCommitBot 21:28 RacketCommitBot: [racket] plt pushed 3 new commits to master: http://git.io/3ejucA 21:28 RacketCommitBot: racket/master fe515e3 Robby Findler: fix bugs in unstable/2d lexer 21:28 RacketCommitBot: racket/master 814b9e4 Robby Findler: add a keystroke to widen a rectangle 21:28 RacketCommitBot: racket/master 4b8813b Robby Findler: adjust syntax browser to work better for literal hashes and vectors... 21:28 (part) RacketCommitBot 21:56 (join) jackhammer2022 22:06 (quit) Kaylin: Ping timeout: 255 seconds 22:07 (join) Kaylin 22:19 (join) jeapostrophe 22:19 (quit) jeapostrophe: Changing host 22:19 (join) jeapostrophe 22:31 (join) ijp` 22:33 (quit) ijp: Ping timeout: 252 seconds 22:34 (nick) ijp` -> ijp 22:35 (quit) jeapostrophe: Ping timeout: 260 seconds 22:40 (join) ambrosebs 22:41 (join) mithos28 22:41 (join) gridaphobe 22:46 (quit) gridaphobe: Ping timeout: 244 seconds 22:48 (join) yacks 22:49 (join) mizu_no_oto 22:52 (join) gridaphobe 22:55 (quit) mizu_no_oto: Quit: Computer has gone to sleep. 22:59 (join) mizu_no_oto 23:00 (quit) jao: Ping timeout: 256 seconds 23:06 (join) adu 23:15 (quit) ambrosebs: Remote host closed the connection 23:19 (join) ambrosebs 23:19 (join) cdidd 23:22 (quit) bjz: Quit: Leaving... 23:23 (join) DiagonalArg 23:25 DiagonalArg: Hey all - anyone around? In Ubuntu, trying to get "drracket -rv" or some equivalent with -fg/-bg to work. Having no luck. Ideas? 23:43 DiagonalArg: Very quiet here ... This thing's burning my eyes - I hope there's some way to do reverse video.... 23:44 (quit) mizu_no_oto: Quit: Computer has gone to sleep. 23:44 (quit) gridaphobe: Remote host closed the connection 23:53 jonrafkind: you can change the color theme 23:54 jonrafkind: file->preferences->color 23:54 (quit) karswell: Ping timeout: 255 seconds 23:59 (quit) mithos28: Quit: mithos28 23:59 DiagonalArg: jonrafking - thanks, but ... I'm finding no File>>Prefs. There is Edit>>Prefs, but no way to change color, only font.