00:05 Sgeo: Can I use eventspaces without using the GUI? 00:13 (join) RacketCommitBot 00:13 RacketCommitBot: [racket] plt pushed 3 new commits to master: http://git.io/hbrFUw 00:13 RacketCommitBot: racket/master 0f26aaf Robby Findler: Adjust DrRacket to not use on-demand to populate the... 00:13 RacketCommitBot: racket/master 0d0503b Robby Findler: adjust sync pattern to avoid cross-thread set! 00:13 RacketCommitBot: racket/master 836ce95 Robby Findler: added section on alpha blending to 2htdp/image guide 00:13 (part) RacketCommitBot 00:14 Sgeo: o.O send isn't a function 00:14 Sgeo: I feel slightly betrayed, although I do understand why 00:15 (join) dnolen 00:29 (quit) kofno: Remote host closed the connection 00:44 Sgeo: Should all the #lang scheme stuff on PLaneT scare me? 00:44 Sgeo: Obsolete code etc? 00:44 Sgeo: unmaintained 01:03 (quit) jackhammer2022: Quit: Textual IRC Client: http://www.textualapp.com/ 01:03 (join) spiderweb 01:12 (join) kvda 01:40 asumu: Sgeo: PLaneT doesn't have a system for non-maintainer uploads, unfortunately. That would help get rid of obsolete code. 01:43 Sgeo: I wonder if this should be enough to scare me from using Racket.. 02:03 (join) bniels 02:08 (quit) dnolen: Ping timeout: 240 seconds 02:13 (quit) eMBee: Quit: Lost terminal 02:14 (quit) ivan\: Ping timeout: 255 seconds 02:17 (quit) francisl: Quit: francisl 02:20 (join) ivan\ 02:21 (join) eMBee 02:37 (join) dented42 02:40 (join) Nisstyre-laptop 02:50 (quit) serhart: Quit: Leaving. 02:58 (join) mceier 02:59 (quit) jonrafkind: Ping timeout: 244 seconds 03:04 (quit) adu: Quit: adu 03:37 (quit) Fare: Ping timeout: 245 seconds 04:15 (join) noelw 04:33 (join) bitonic 04:55 (join) soegaard 05:12 (join) mizu_no_oto 05:14 (quit) juanfra__: Ping timeout: 252 seconds 05:14 (join) juanfra__ 05:17 (quit) mizu_no_oto: Ping timeout: 260 seconds 05:18 (join) mizu_no_oto 05:31 (join) kofno 05:36 (quit) kofno: Ping timeout: 255 seconds 05:36 (join) myx 05:37 (join) micro_ 05:54 (quit) mizu_no_oto: Quit: Computer has gone to sleep. 06:06 (join) mizu_no_oto 06:09 Sgeo: Is the stateless web server a possible security problem? 06:09 Sgeo: What could a sufficiently clever tamperer do to the continuation? 06:14 (quit) mizu_no_oto: Ping timeout: 244 seconds 06:19 (quit) soegaard: Quit: soegaard 06:27 noelw: Not much of a security hole 06:30 (join) didi` 06:31 (nick) didi` -> didi 06:32 (join) kofno 06:35 (quit) myx: Ping timeout: 264 seconds 06:37 (quit) kofno: Ping timeout: 245 seconds 06:44 (join) jeapostrophe 06:45 (quit) jeapostrophe: Changing host 06:45 (join) jeapostrophe 06:47 (join) myx 06:48 (quit) kvda: Quit: -___- 06:54 Sgeo: noelw, hm? 06:55 noelw: You don't have to serialise continuations to the client, so there is no security beyond session hijacking if you don't do that 06:55 noelw: If you do serialise continuations it is very difficult to reverse engineer them 06:57 (join) kofno 06:59 (join) mizu_no_oto 06:59 (join) MayDaniel 07:02 Sgeo: Hmm, I gather that the debugger is not exactly geared towards dealing with datalog? 07:02 Sgeo: If I want a debugger good for that I presume a real Prolog system would be better? 07:03 noelw: I don't have any experience there. Sorry 07:22 (quit) vu3rdd: Ping timeout: 240 seconds 07:25 (quit) mizu_no_oto: Quit: Computer has gone to sleep. 07:27 (quit) jeapostrophe: Ping timeout: 265 seconds 07:33 (join) serhart 07:34 (quit) serhart: Read error: Connection reset by peer 07:34 (join) serhart 07:36 (quit) serhart: Read error: Connection reset by peer 07:36 (join) serhart 07:37 (quit) serhart: Read error: Connection reset by peer 07:37 (join) serhart 07:39 (quit) serhart: Read error: Connection reset by peer 07:39 (join) serhart 07:42 (quit) serhart: Read error: Connection reset by peer 07:42 (join) serhart 07:44 (join) bitonic` 07:44 (quit) bitonic: Read error: Connection reset by peer 07:44 (quit) bitonic`: Remote host closed the connection 07:47 (join) bitonic 07:53 (join) soegaard 07:58 (quit) serhart: Read error: Connection timed out 07:59 (join) serhart 08:15 Sgeo: Does DrRacket have any keybindings for Paredit-like stuff? 08:25 (join) willem 08:26 willem: Are there any Redex pros in this channel? :) 08:27 willem: I have a function that returns a (values A B) and I wonder how I can get A and B using a where in a reduction relation 08:30 (quit) serhart: Quit: Leaving. 08:33 (join) RacketCommitBot 08:33 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/wtgJbQ 08:33 RacketCommitBot: racket/master 43e01d7 Matthew Flatt: rename test file... 08:33 (part) RacketCommitBot 08:36 noelw: willem: I don't understand the question 08:38 willem: noelw: I have a rule in a reduction relation that uses (where (A, B) ,(function-call) 08:38 willem: but that doesn't work 08:38 willem: so my question is, how do you access values from a returned tuple in a where clause 08:39 noelw: Ah 08:39 noelw: Sorry, I misread Redex and Regex 08:39 noelw: s/and/as 08:39 willem: np ;) 08:57 (quit) kofno: Remote host closed the connection 09:03 (join) kofno 09:05 (join) Sgeo 09:10 (join) serhart 09:23 (join) dca 09:24 dca: any ideas where can i find fresh rackets builds for debian testing? 09:25 noelw: dca: http://pre.racket-lang.org/ 09:26 (join) nielsb 09:28 dca: noelw: i see builds for debian squeeze, whereas current testing is wheezy 09:28 (quit) bniels: Ping timeout: 240 seconds 09:28 (quit) Nisstyre-laptop: Read error: Connection reset by peer 09:28 noelw: Oh, sorry. 09:28 noelw: Guess they don't do 'em 09:30 (quit) kofno: Remote host closed the connection 09:44 bremner: dca: I take you want something after 5.3.1? 09:46 willem: In Redex you can use ellipses to match any number of duplications. But how do you specify only 0 or 1 instance? 10:01 (join) mizu_no_oto 10:08 dca: bremner: yeah 10:10 (join) jeapostrophe 10:10 (quit) jeapostrophe: Changing host 10:10 (join) jeapostrophe 10:15 (quit) nielsb: Quit: WeeChat 0.3.8 10:23 (join) jao 10:24 (quit) jao: Changing host 10:24 (join) jao 10:24 (quit) jeapostrophe: Ping timeout: 260 seconds 10:33 (join) kofno_ 10:39 (nick) stamourv` -> stamourv 10:39 (join) stamourv 10:40 (join) anRch 10:48 (join) jeapostrophe 10:52 (quit) anRch: Ping timeout: 245 seconds 10:55 (quit) mceier: Quit: leaving 10:56 (nick) noelw -> noelw_away 10:58 (join) anRch 11:05 (quit) kofno_: Remote host closed the connection 11:19 (quit) anRch: Ping timeout: 244 seconds 11:19 (join) anRch 11:20 (join) RacketCommitBot 11:20 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/Wln36g 11:20 RacketCommitBot: racket/master ad579d0 Robby Findler: put the racket version number in the title bar for the splash screen 11:20 (part) RacketCommitBot 11:23 (quit) soegaard: Quit: soegaard 11:34 (join) soegaard 11:57 (join) mye 11:58 (join) jaimef 11:59 (quit) anRch: Ping timeout: 245 seconds 12:00 (join) francisl 12:01 (quit) mizu_no_oto: Quit: ["Textual IRC Client: www.textualapp.com"] 12:02 (join) RacketCommitBot 12:02 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/7bRBmA 12:02 RacketCommitBot: racket/master 715b0a7 Jens Axel Søgaard: Documentation for polymorphic matrix functions 12:02 (part) RacketCommitBot 12:05 (join) mceier 12:07 (join) anRch 12:08 (join) noelw_away 12:09 (quit) noelw_away: Client Quit 12:15 (quit) anRch: Quit: anRch 12:16 (quit) spiderweb: Quit: ERC Version 5.3 (IRC client for Emacs) 12:18 (join) RacketCommitBot 12:18 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/AH44Zg 12:18 RacketCommitBot: racket/master 1838953 Vincent St-Amour: Move define-inline to racket/performance-hint.... 12:18 (part) RacketCommitBot 12:47 (join) Nisstyre-laptop 13:01 (quit) francisl: Ping timeout: 276 seconds 13:10 willem: For the regex users/pros: If you call a function in a (where ...) clause in a reduction relation that returns multiple values, how do you cope with that? (where (a b) ,(function-call args)) doesn't seem to work 13:19 (join) francisl 13:28 (quit) karswell: Remote host closed the connection 13:28 (join) RacketCommitBot 13:28 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/TjHwsQ 13:28 RacketCommitBot: racket/master 69406bf Jens Axel Søgaard: Documentation on basic matrix operations and matrix-qr. 13:28 (part) RacketCommitBot 13:32 didi: willem: If you can't get an answer here, the mailing list is good place to ask questions too. 13:33 willem: didi: OK. I hoped that some .us based people would already be awake and lurking on this IRC channel, but I think I'll go for the mailing list ;) 13:34 (quit) Nisstyre-laptop: Quit: Leaving 13:35 (join) Nisstyre-laptop 13:35 (quit) Nisstyre-laptop: Read error: Connection reset by peer 13:36 (quit) jeapostrophe: Ping timeout: 260 seconds 13:38 (join) Nisstyre-laptop 13:38 (join) karswell 13:41 (join) Fare 13:51 (join) jonrafkind 14:20 (quit) jaimef: Remote host closed the connection 14:21 (join) jaimef 14:23 (quit) jaimef: Remote host closed the connection 14:38 (join) jrslepak 14:43 Sgeo: It flat out didn't occur to me that Racket's handling of keywords means I can use them before required arguments 14:43 Sgeo: I feel like a derp 14:44 Sgeo: I was thinking it just meant they wouldn't be collected into a rest argument 14:44 Sgeo: It also occurs to me that Racket languages really are more geared towards making new languages than implementing existing ones 14:46 (join) DanC_ 14:50 (quit) jonrafkind: Ping timeout: 255 seconds 15:01 (join) Kaylin 15:09 (quit) dca: Quit: ZNC - http://znc.in 15:16 (join) jeapostrophe 15:16 (quit) jeapostrophe: Changing host 15:16 (join) jeapostrophe 15:17 (join) jonrafkind 15:17 (join) sunwukong 15:21 Sgeo: Although at least Racket has a non-OO way of grouping pieces of data together and giving such a grouping a name 15:22 didi: Sgeo: You mean, a list? 15:22 Sgeo: didi, I intended to say that in Scheme 15:22 Sgeo: But I was referring to structs 15:22 didi: oic 15:24 (join) Kaylin1 15:26 (quit) Kaylin: Ping timeout: 248 seconds 15:26 (quit) sunwukong: Remote host closed the connection 15:26 Sgeo: Ugh, a threading macro like Clojure's -> would be more general than send+ which only works with methods on objects 15:28 didi: Nice, /me didn't know about `send+'. 15:30 Sgeo: Are method names identifiers that can be renamed in a require? 15:30 Sgeo: Because that would almost redeem Racket's OO in my eyes 15:35 (join) mizu_no_oto 15:36 (join) RacketCommitBot 15:36 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/4Tl8Og 15:36 RacketCommitBot: racket/master cfa9bd9 Neil Toronto: Exported `matrix-basis-cos-angle' with a contractable type 15:36 (part) RacketCommitBot 15:41 (join) anRch 15:45 Sgeo: I keep hearing about Racket being heavyweight 15:45 Sgeo: Is it lighter than Eclipse and Visual Studio, or is that a placebo effect? 15:46 Sgeo: Because I've seen claims that it sometimes uses more memory 15:46 didi: Sgeo: Racket or DrRacket? 15:46 Sgeo: DrRacket 15:47 didi: I see. I don't know, as I don't use it. 15:48 bremner: Sgeo: I'm nearly certain DrRacket uses less resources than Eclipse. I'm 100% certain the UI is simpler. 15:52 Sgeo: No disagreements about simpler. And it "feels" like it uses less resources, but could be placebo 15:52 Sgeo: Due to simpler UI 15:54 Sgeo: There's no way to redefine what function application means in a dynamically-scoped way, right? (change-it (foo bar)) not only changing what (foo bar) does but also what the function calls that foo uses do 15:55 bremner: rudybot: docs parameterize 15:55 rudybot: bremner: so if the lambda is *called* within the parameterize, it will get the parameters - but if it is passed to some code outside the parameterize, it will not get the parameters from that parameterize 15:55 bremner: rudybot: doc parameterize 15:55 rudybot: bremner: your sandbox is ready 15:55 rudybot: bremner: http://docs.racket-lang.org/reference/parameters.html#(form._((lib._racket%2Fprivate%2Fmore-scheme..rkt)._parameterize)) 15:59 Sgeo: Is there a way to define a lambda such that it captures the parameters where defined, and thus outside the parameterize, it still remembers the values? 16:00 bremner: use a let inside the lambda? 16:00 Sgeo: Hmm, you can get the parameterization 16:01 didi: rudybot: (define foo (let ((bar 42)) (lambda (x) (+ x bar)))) 16:01 rudybot: didi: your sandbox is ready 16:01 rudybot: didi: Done. 16:01 didi: rudybot: (foo 42) 16:01 rudybot: didi: ; Value: 84 16:10 (quit) mye: Quit: mye 16:11 (quit) Kaylin1: Quit: Leaving. 16:25 (quit) anRch: Quit: anRch 16:27 (join) anRch 16:29 (quit) serhart: Quit: Leaving. 16:30 asumu: willem: use let-values to capture the multiple values and put it in a list 16:30 asumu: willem: for matching 0/1 clauses, I'd just use two metafunction/reduction rule clauses. 16:30 (quit) anRch: Client Quit 16:45 (join) RacketCommitBot 16:45 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/XpKrJg 16:45 RacketCommitBot: racket/master 9465bc0 Jens Axel Søgaard: Documentation for inner product space operations 16:45 (part) RacketCommitBot 16:55 (join) RacketCommitBot 16:55 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/tcDwaQ 16:55 RacketCommitBot: racket/master 81cccb4 Vincent St-Amour: Fix fixnum comparisons to prove more bounds. 16:55 (part) RacketCommitBot 16:56 Sgeo: Trying to write a silly macro, I have to be screwing something up but error messages have stopped being helpful 16:56 Sgeo: Oh, n/m I see what I did 17:03 (join) kofno 17:04 Sgeo: https://www.refheap.com/paste/8040 17:04 Sgeo: I get Module Language: invalid module text 17:04 Sgeo: . . read: expected a `)' to close `(' 17:04 Sgeo: By the require 17:04 Sgeo: I think it's related to the attempt to use a string 17:05 Sgeo: Or I could just be missing a parenthesis 17:05 (join) mithos28 17:06 Sgeo: Does (require (submod "...")) do what I want there? I can't seem to see infix from there 17:06 Cryovat: Sgeo: Late answer 17:06 Cryovat: I don't know about heaviness 17:06 Cryovat: And DrRacket takes a while to start up 17:06 Cryovat: But I'd say that compared to .NET and Java, not having to have project files makes it feel a *lot* lighter to me 17:07 didi: DrRacket != (.NET | Java) 17:08 mithos28: Sgeo: Just use (module* reqtest #f ) 17:08 Sgeo: mithos28, but what I really want to test is changing the name that reqtest sees 17:09 Sgeo: I want to attempt to use rename-in on --> and <--, that's why I'm writing this in the first place 17:09 mithos28: well you need to provide it 17:09 Sgeo: Oh, good point 17:09 mithos28: and you will want bindings on --> and <-- 17:10 Cryovat: didi: I was thinking of the dev experience 17:10 Sgeo: mithos28, hmm? 17:10 Cryovat: Opening DrRacket and entering a few lines of code is a lot less work than doing the same in Visual Studio or Eclipse 17:11 didi: Cryovat: oic. Well, I love the REPL. 17:11 Sgeo: I still want to be able to change running programs easily 17:11 mithos28: the --> and <-- are matched by binding 17:11 Sgeo: And to the best of my understanding that requires either Emacs with Geiser or racket REPL and only opening DrRacket with that, and I'm not sure about that 17:12 mithos28: Sgeo: what do you mean changing a running program? 17:12 Sgeo: Say I write an IRC bot 17:12 Sgeo: I want to write it by having it connect to the server, enter the channel 17:12 Sgeo: And then from there write functions, reload source, etc. 17:12 Cryovat: eval? 17:12 Sgeo: Without having to disconnect from IRC 17:12 mithos28: Sgeo: Look at eval and namespaces 17:13 Sgeo: how do I require reqtest? 17:13 mithos28: raco test -s reqtest "file.rkt" 17:14 Sgeo: :/ so can't do it from DrRacket? Maybe if I call it main 17:14 Sgeo: Calling it main works 17:14 didi: Sgeo: IIUC, DrRacket restarts the running program every time you hit Run. 17:14 mithos28: look at language menu, select language, show details, submodules to run 17:15 didi: I might be wrong, though. 17:15 mithos28: didi: That is correct 17:16 Sgeo: didi, yeah :( 17:16 Sgeo: racket command line REPL should work, with DrRacket for editing files but not running? 17:17 mithos28: Sgeo: Why do you want to maintain the repl state between changes? 17:18 Sgeo: mithos28, because I don't want to, in this example, disconnect from IRC to change the bot's code 17:18 mithos28: Then you want to be doing eval and namespaces manually 17:19 mithos28: and you will have lots of issues, because there is usually an assumption that modules don't get redefined 17:21 Sgeo: :( 17:22 Sgeo was all set to really like Racket 17:22 mithos28: Sgeo: Racket can do what you want, it is just not standard 17:22 didi: Sgeo: I don't know about running IRC connections, but I always do Racket development interactively. 17:22 mithos28: look at enter! aswell 17:23 Sgeo: and you will have lots of issues, because there is usually an assumption that modules don't get redefined 17:24 mithos28: Right, not impossible just hard 17:24 (join) RacketCommitBot 17:24 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/RGWq3Q 17:24 RacketCommitBot: racket/master 5a4098f John Clements: added docs on requiring planet2 modules 17:24 (part) RacketCommitBot 17:24 mithos28: different namespaces can have different module definitions 17:26 Sgeo: Does enter! do that sort of thing, or would just using enter! or Geiser cause me to get bitten by the difficulties of module reloading? 17:27 mithos28: enter! does some crazy things, depending on your program it may be enough for you 17:27 DanC_ starts reading http://www.eecs.northwestern.edu/~robby/lightweight-metatheory/ ... finds motivation to install racket... 17:27 mithos28: it is usually useful in a repl to reload your module definitions 17:33 mithos28: stamourv: ping 17:35 (quit) mizu_no_oto: Quit: ["Textual IRC Client: www.textualapp.com"] 17:37 (quit) myx: Quit: ушёл 17:44 (quit) jeapostrophe: Ping timeout: 272 seconds 18:01 (quit) mithos28: Quit: mithos28 18:04 (quit) mceier: Quit: leaving 18:04 DanC_: something is wonky with the menu in drracket. (Ubuntu 12.04) 18:04 DanC_: it's just blank grey 18:04 DanC_: until I click, at which point, I get pop-up text 18:06 (quit) karswell: Remote host closed the connection 18:06 didi: DanC_: It's working fine here. 18:06 didi: DanC_: What's Racket's version? 18:13 DanC_: Installed: 5.1.3+dfsg1-1 18:14 DanC_: I've seen strangeness with windows not drawing in other apps. I wonder if my Ubuntu installation is crumbling 18:15 (join) serhart 18:16 didi: DanC_: I had some issues with the menu + Ubuntu some releases back. 18:16 didi: DanC_: It might be this one. 18:17 didi: DanC_: I recommend you download, compile and installed the last release from the website. 18:17 didi: s/installed/install 18:17 DanC_: bummer 18:17 didi: Indeed. 18:18 (join) karswell 18:18 didi: DanC_: There is a nice PPA with the last release but unfortunately it has some issues with the profiling library. 18:19 DanC_: hmm... such a PPA might be fine for me; it might be some time before I got anywhere near the profiling library 18:19 didi: DanC_: So go get it. :^) 18:19 DanC_: but building from source shouldn't be that big of a deal. 18:19 DanC_: I just don't have time just now. 18:19 didi: I see. 18:21 DanC_: I'm browsing around; I don't see much DrRacket docs 18:21 didi: DanC_: $ raco docs 18:22 didi: DanC_: or 18:22 DanC_: ah. there it is. I wonder why I ddin't see that on the web site 18:22 DanC_: blindness, evidently 18:32 (join) RacketCommitBot 18:32 RacketCommitBot: [racket] plt pushed 1 new commit to master: http://git.io/N3Ix2w 18:32 RacketCommitBot: racket/master 1b07cb4 Matthias Felleisen: fixed a @file-is mistake, race? 18:32 (part) RacketCommitBot 18:33 (part) serhart 18:45 (quit) karswell: Remote host closed the connection 18:51 (quit) bitonic: Ping timeout: 240 seconds 18:55 (join) karswell 19:08 (quit) MayDaniel: Read error: Connection reset by peer 19:12 (quit) soegaard: Quit: soegaard 19:18 (quit) kofno: Remote host closed the connection 19:19 (join) m_m 19:21 (join) dnolen 19:47 (quit) jonrafkind: Ping timeout: 248 seconds 19:51 (join) mithos28 19:58 (quit) m_m: Ping timeout: 255 seconds 19:59 (join) spiderweb 20:02 (join) jeapostrophe 20:02 (quit) jeapostrophe: Changing host 20:02 (join) jeapostrophe 20:10 Sgeo: I really want to port my mamb operator to Racket, but there isn't a sufficiently good monad library for Racket I think 20:11 didi didn't even know that Racket had monads 20:12 Sgeo: http://planet.racket-lang.org/package-source/toups/functional.plt/1/1/planet-docs/better-monads-guide/index.html 20:12 rudybot: http://tinyurl.com/bgz6rra 20:12 Sgeo: "better" is a lie 20:12 Sgeo: I don't see a way to write a function that can work with any monad 20:13 Sgeo: Hmm, actually, mapm is defined, I should look how 20:13 Sgeo: Oh, it takes the monad as an argument 20:14 mithos28: Sgeo: You need to take in a description of the monad to do it, just like in haskell 20:14 Sgeo: I wish that wasn't necessary though, that if it's inside a with-monad form it could take it straight from there 20:15 mithos28: well it is written by toups, which is a handle I don't recognize 20:15 (join) kofno 20:15 didi: I thought monads were things that Haskell used to cause side effects. 20:15 mithos28: So it might not be well maintained 20:16 Sgeo: didi, that's one use case (and it's more accurate to say "Haskell uses to build up a value describing a side effect representing the whole program"), but not the only use case 20:17 didi: Sgeo: I see. Complex stuff. 20:17 Sgeo: mithos28, in Haskell, the type checker gives the functions the description of the monad, no need to explicitly pass it as an argument 20:17 Sgeo: didi, do you understand continuations? 20:17 didi: Sgeo: Sure. 20:17 Sgeo: How about delimited continuations? 20:17 didi: Sgeo: Not so much. 20:17 mithos28: Sgeo: Yes, you need to explicitly give a class constraint 20:18 Sgeo: Hrm 20:18 Sgeo: I guess "delimited continuationness is an example of a monad, and could be called the mother of all monads" isn't too helpful then 20:19 didi: Hehe. 20:19 Sgeo: And I'm not quite sure how to be better at describing the connection, even if you understood delimited continuations perfectly 20:19 didi: Nah, that's fine. 20:20 Sgeo: mithos28, better-monads provides the state monad but not get or put? 20:20 mithos28: Sgeo: I have never used the library 20:21 Sgeo installs 20:22 Sgeo seriously doesn't want to pass in a monad every time he uses a function that needs the info 20:23 Sgeo: Even clojure.algo.monads which really gets on my nerves is better than this 20:23 mithos28: Sgeo: Then file a feature request or write your own library 20:23 didi: Sgeo: I might want to champion the issue then. 20:23 didi: s/I/You 20:24 mithos28: Its not written by anyone I recognize as a core racket developer though 20:25 Sgeo: I could make mamb a macro that expands into a function call and the ... lexical... crud, I'm not really good with hygienic macros and kind of want to break hygiene here 20:30 Sgeo: mithos28, ok, suppose I have a state-doublet. How do I get state from it? 20:31 Sgeo: It's just a struct, why does state-doublet-state not seem to exist 20:31 mithos28: Sgeo: I didn't write the library, I don't know who did 20:31 Sgeo: Ugh, maybe library author didn't export it? 20:31 Sgeo: mithos28, it was a "Am I a fail at basic Racket?" question 20:31 mithos28: Ah 20:32 Sgeo: As in, maybe I was confused as to how to get stuff out of structs 20:32 Sgeo: But monad-bind monad-return etc. exist 20:34 (quit) mithos28: Quit: mithos28 20:34 Sgeo needs to take a deep breath 20:35 Sgeo: And not desire to strangle the author of the library 20:35 Sgeo: As far as I can tell there is NO WAY to usefully use the provided state monad 20:36 Sgeo: Oh, I'm wrong 20:36 didi: Let's not talk bad about a person that offered a library for the whole world to enjoy. 20:39 Sgeo wasn't thinking properly, a bit embarrassed that I needed to read the source and see an example of use 20:45 (join) soegaard 20:53 Sgeo: http://planet.racket-lang.org/trac/ticket/506 20:53 Sgeo: Do maintainers get emailed when someone posts a ticket? 20:55 Sgeo: Uh. Crud I can't modify tickets can I 21:06 Sgeo: I wonder if having bind and return as dynamically-scoped would be a good idea or bad idea 21:06 Sgeo: Also, a syntax monad sounds like a wonderful idea 21:06 Sgeo: didi, so there is some good in better-monads 21:15 (quit) soegaard: Quit: soegaard 21:15 Sgeo: didi, ok, I think I can explain delimited continuations to you 21:16 Sgeo: You know how a regular call/cc continuation represents the entire future of the program? 21:16 Sgeo: Since it represents the entire future, it never actually returns 21:16 (quit) spiderweb: Quit: leaving 21:17 Sgeo: A delimited continuation represents the future of the program up to a certain point. It then returns the value computed by the program at that end 21:19 (join) spiderweb 21:21 didi: Sgeo: I might understand the concept, but I guess I need to use it in anger to experience it. 21:36 (join) mizu_no_oto 21:50 Sgeo: > (with-mamb the-list-monad (+ (mamb the-list-monad (list 1 2 3)) (mamb the-list-monad (list 4 5 6)))) 21:50 Sgeo: '(5 6 7 6 7 8 7 8 9) 21:51 Sgeo: If I have a function and a macro to make using that function easier, what should I call it? 22:13 (quit) spiderweb: Quit: ERC Version 5.3 (IRC client for Emacs) 22:16 (join) mithos28 22:17 (quit) mizu_no_oto: Quit: Computer has gone to sleep. 22:18 (join) spiderweb 22:24 (join) don9z 22:28 (join) adu_ 22:31 (join) mizu_no_oto 22:32 (join) vu3rdd 22:32 (quit) vu3rdd: Changing host 22:32 (join) vu3rdd 22:33 offby1: "Tim" 22:33 (quit) don9z: Ping timeout: 252 seconds 22:34 Sgeo: As in, are there any conventions for that situation>? 22:35 Sgeo: A function that makes sense to use by itself, but in some circumstances it may be easier to use a macro to do essentially the same thing 22:35 mithos28: Sgeo: can you give a paste? 22:36 Sgeo: Is there a preferred pastebin for Racket code? 22:36 Sgeo: https://www.refheap.com/paste/8047 22:36 Sgeo: mamb needs to take a monad. But often (not necessarily always), mamb will be used with the lexically defined current-monad 22:41 (quit) jeapostrophe: Ping timeout: 264 seconds 22:45 mithos28: Sgeo: I'm not sure exactly what that does, but it seems like a reasonable naming scheme 22:46 mithos28: There is not a standard pastebin, I use gist.github.com 22:46 Sgeo: mithos28, the question is how to name a function and then a macro that makes using the function easier 22:46 Sgeo: My paste doesn't have an answer to that 22:47 mithos28: It depends on how the function makes it easier 22:49 (quit) mizu_no_oto: Quit: Computer has gone to sleep. 22:49 mithos28: for example call-with-exception-handler vs. with-handlers 22:50 Sgeo: Hmm 22:50 Sgeo: mamb-cm for mamb current monad 22:50 Sgeo: The name is rather verbose for its intended uses as it is 22:51 mithos28: Huh? its 7 characters 22:51 mithos28: Racket names, inherit the scheme tradition of long descriptive names 22:58 Sgeo: It's intended to be used a lot in a short amount of space 22:58 Sgeo: It's similar to amb 22:58 mithos28: than name it cm 22:58 Sgeo: :/ 22:58 Sgeo: b2c or btc makes sense, for bind to continuation 22:59 Sgeo: Since that's what it does 22:59 mithos28: Some modules expect you to rename the on import if you want unique names 22:59 Sgeo: mamb was because it was analogous to amb generalized on all monads, or at least I thought so 23:00 Sgeo: The better solution would really be fixing better-monads so functions that deal with monads don't need to be explicitly passed the monad itself 23:11 (join) mye 23:14 (join) fbernier 23:14 (part) fbernier: "Leaving" 23:23 (quit) Shviller: Ping timeout: 245 seconds 23:23 (join) Shviller 23:26 Sgeo: I note that it's easier to process forms with pattern matching where you use parentheses around each group, rather than doing a Clojure-like thing where, say, in a let you have symbol and code to make a value alternative 23:26 Sgeo: *alternating 23:26 Sgeo: Are there other advantages of using more parentheses? 23:28 (quit) jrslepak: Quit: What happened to Systems A through E? 23:33 didi <3 parentheses 23:33 (quit) mithos28: Quit: mithos28 23:34 Sgeo: I wish DrRacket had some paredit-ish stuff 23:35 Sgeo: Oh hey there's an automatic parentheses mode 23:35 Sgeo: But I still have to use right-arrow instead of ) 23:36 Sgeo: Which seems annoying 23:38 (join) univyrse 23:48 (quit) jao: Ping timeout: 255 seconds 23:59 (quit) dented42: Ping timeout: 264 seconds