00:00:31 rien: That sounds horrible 00:01:03 a lisper disagreeing with me? that's quite surprising ;) 00:01:29 actually, that "with me" is not needed in that sentence 00:01:45 -!- githogori [~githogori@adsl-66-123-22-146.dsl.snfc21.pacbell.net] has quit [Remote host closed the connection] 00:01:45 please tell me what is better and I'll use it 00:01:57 if it's not too much trouble for me to switch 00:02:06 emacs of course 00:03:13 two extra conditions: it should be an editor and it should have a scripting language not looking like a legacy burden 00:03:35 MichaelRaskin: That's funny 00:03:42 Needing extra movements for lexical scope of variables looks like a legacy burden 00:03:50 Customizing vim is way harder than emacs 00:04:43 Only when you really need real-time feedback from external continiously running process 00:04:50 drdo: I'm 100% sure that emacs is better for lisp than vim, however I don't have time now to make that switch 00:04:53 githogori [~githogori@adsl-66-123-22-146.dsl.snfc21.pacbell.net] has joined #scheme 00:05:17 it is too bad indeed that emacs uses elisp 00:05:19 rien: I use it for everything 00:05:36 right, like I use vim for everything right now. 00:05:40 I have written my own tab system for Vim in Vimscript way before tabs were considered for inclusion 00:06:33 tab system? what's that? 00:06:51 rien: Sure, but emacs is just way nicer 00:07:06 you know, I actually started with emacs before I switched to vim 00:07:10 To have a list of open files arranged in rows in the top and to switch by comfortable bindings 00:07:17 the reason I did so is because emacs felt flimsy and unreliable 00:07:43 which is too bad because I do like how emacs is less modal than vim 00:07:45 rien: What do you mean? 00:07:45 Emacs needs more simultaneous combos than Vim 00:07:57 Which is just too bad 00:08:05 emacs needs what? 00:08:34 Pressing Ctrl for no apparent reason except Emacs not liking the concept of modes 00:08:46 drdo: I couldn't trust it because it seemed as if it were built on top of flimsy tools that barely interacted with each other 00:08:55 it feels like a huge monkey patch 00:09:12 what? 00:09:14 MichaelRaskin: well isn't there like Viper mode? 00:09:33 And now I want to issue a command.. 00:09:34 MichaelRaskin: I'm sorry, emacs is not designed for war veterans who lost all fingers except one 00:09:40 What, I need Meta-x?? 00:10:04 Editor wars are so '90s. 00:10:05 You can't possibly be serious 00:10:10 Also it is obviously not designed for people with any non-standart keyboard 00:10:15 How is ESC : 00:10:19 better than M-x 00:10:57 rien: Can you provide an example? 00:11:00 I have all my Metas under thumbs? 00:11:30 Jafet [~Jafet@unaffiliated/jafet] has joined #scheme 00:12:12 MichaelRaskin: what? 00:12:28 drdo: an example of how emacs feels to me? that's hard. I still have it installed and I want to give it another chance. I have 0 things against it 00:12:53 drdo: also, vim users don't really use the ESC key, just the code. I for instance map ESC to jj. 00:13:34 rien: I find emacs really nice to use, all the tools work quite well together 00:13:46 And it's really easy to make it do what i want 00:13:56 drdo: I'm a minimalist at heart and I have trouble trusting big systems, I guess that's it. 00:13:56 To put Meta somewhere where it would be comfortable for frequent combinations, I need to much remapping design 00:14:08 I'm on IRC in emacs right now 00:14:17 ERC, right? 00:14:23 MichaelRaskin: meta is really easy to press 00:14:28 It's right below my thumb 00:14:33 rien: yes 00:14:38 drdo: you on a macbook? 00:14:43 rien: yes 00:14:47 <_danb_> control on the other hand... well, I just curl up my pinky :) 00:14:51 Maybe if I manage to make Climacs work reliably with gtk backend and XIM I will make a sane Vi mapping set and switch 00:14:53 _danb_: That's dumb 00:14:57 remap control and caps lock 00:15:04 <_danb_> sure, I know about that 00:15:17 yes, caps lock is the original place of control anyway 00:15:28 Some idiots thought it would be a good idea to have a useless key like caps lock in such a prime position 00:15:34 Just switch them around 00:15:40 Indeed, I'd remap Caps Lock to Control even if I didn't use Emacs. 00:15:45 that's what I do, switch'em 00:15:47 I always do 00:15:51 me too and I use vim. 00:15:55 <_danb_> I'm quite happy using the 3rd knuckle 00:16:00 lol 00:16:02 drdo: CapsLock is a very useful key 00:16:10 MichaelRaskin: It is, when it's a control 00:16:17 No, as itself 00:16:29 MichaelRaskin: I haven't used caps lock in years 00:16:31 What else should I be using for layout switch, I wonder 00:16:31 -!- vpalle [~vpalle@0x3ec65448.inet.dsl.telianet.dk] has quit [Ping timeout: 246 seconds] 00:16:57 MichaelRaskin: How often do you layout switch versus how often do you need to press control? 00:17:15 drdo: I switch layout more often, I am afraid 00:17:15 *rien* doesn't even know what layout switch is... 00:17:24 MichaelRaskin: Then you are weird 00:17:28 rien: my native language is Russian 00:18:34 oh 00:18:52 drdo: at least in the case where speed matters I need a lot of layout switches 00:19:07 MichaelRaskin: When do you need layout switches' 00:19:09 ? 00:19:46 MichaelRaskin: I have to finally discover the mystery behind the layout switch. Every time I want to type something in Russian i rightclick and chose Cyrillic from the menu... 00:19:59 When I have to discuss layout changes in an official publication release candidate and edit both Russian text and tag/command layout (be it TeX or HTML) 00:20:23 MichaelRaskin: even then, you'd use control more often 00:20:26 At least i would 00:20:32 What for? 00:20:37 moving around 00:20:48 When I shift blocks around, I have Vim normal mode 00:21:07 It needs zero presses of control per operation 00:21:22 It needs a lot of ESC presses instead 00:22:02 Convenient wrist hand movement to press one key is easier to learn than for complex combinations 00:22:39 That makes no sense 00:22:49 But hey, whatever floats your boat, just know that you're missing out 00:23:21 Well, I saw Emacs, I am not missing out on that 00:23:44 *f|l* curses standard keyboards. 00:23:51 I do know that if gtkairo CLIM backend starts working sanely, there is a better toolset with CLIM 00:24:02 Standard keyboard? What is it? 00:24:04 ok, then proceed 00:24:09 -!- rgrau [~user@62.Red-88-2-20.staticIP.rima-tde.net] has quit [Read error: Connection reset by peer] 00:24:49 -!- parcs [~patrick@ool-45741d7d.dyn.optonline.net] has quit [Ping timeout: 255 seconds] 00:24:53 Last time I tried to fix Climacs, I succeeded with XIM@Gtkairo, but failed with making Gtkairo redraw as well as CLX 00:24:58 It was a real pity 00:25:07 What does climacs do that emacs doesn't? 00:25:28 drdo: has a real programming language as an extension language? 00:25:43 sure, i'd prefer CL over elisp 00:25:50 Also, once I fix CLIM redraws I get Clouseau for free 00:25:56 And it is a nice thing 00:26:07 But the trouble of reimplementing decades of emacs wisdom 00:26:12 parcs [~patrick@ool-45741d7d.dyn.optonline.net] has joined #scheme 00:26:19 We-ell 00:26:38 And the fact that dynamic scope mostly isn't a problem for the kind of code you write in emacs 00:26:49 Doesn't it make it very attractive to start over 00:26:54 drdo: it is even for code in my browser event manager 00:27:50 What we really want though, is a lisp os 00:28:10 With a powerful enough language, implementing sane modal bindings is easier 00:28:28 It shouldn't be too hard actually 00:28:35 We don't need to do it on the bare metal 00:28:41 Can just use linux 00:30:00 schmir [~schmir@p54A91CC5.dip0.t-ipconnect.de] has joined #scheme 00:30:29 Is there a compiled Scheme with a Scheme-way enough ecxtensible GUI toolkit? 00:30:40 racket 00:30:55 Does it have AOT compiler nowadays? 00:31:05 Think it's JIT 00:32:07 -!- schmir [~schmir@p54A91CC5.dip0.t-ipconnect.de] has quit [Remote host closed the connection] 00:32:46 lewis1711 [~lewis@125-239-255-244.jetstream.xtra.co.nz] has joined #scheme 00:37:17 -!- Genosh [~Genosh@119.Red-79-145-47.dynamicIP.rima-tde.net] has quit [Quit: http://quasiquote.me] 00:38:16 -!- dzhus [~sphinx@95-28-125-150.broadband.corbina.ru] has quit [Remote host closed the connection] 00:39:30 Well, I was wondering whether I am missing out on something for Lisp-family-based user environment in Scheme land.. 00:39:41 For that I would prefer AOT as an option. 00:39:58 Genosh [~Genosh@249.Red-81-38-180.dynamicIP.rima-tde.net] has joined #scheme 00:41:21 I'm currently reading the little schemer. And I'm in a part of the book that it talks about whether a function terminates or not. It's kinda interesting, but not my thing. Is it relevant to software development? 00:41:35 Or that kind of thing is just mathematically relevant? 00:42:19 phao: as a software developer you are supposed to be able to predict whether your code actually returns any results or just hangs 00:42:57 phao: that's calld the halting problem 00:43:09 yeah, sure, as you should be able to do a lot of stuff.. 00:43:18 phao: it's important that you know what it is and why it is theoretically impossible to solve even though practically it's possible 00:43:31 but, is it relevant studying this kind of thing? I mean.. I never seen a code I had trouble deciding if it ends or not 00:43:56 phao: like I said, it's only important to know that it is a theoretical problem with practical solutions 00:44:04 hmm 00:44:05 ok. 00:44:19 nobody actively thinks about the halting problem when programming 00:44:38 rien: sometimes you do. 00:44:50 example? 00:45:00 When you start choosing an algorithm for your task. 00:45:06 phao: plus that's only a problem with Turing machines 00:45:32 With Scheme you can put a simpler explanation, that's true 00:46:49 Yes, the intractability of halting problem itself only comes up when you program some programming tools 00:47:19 so it's rarely a problem at all 00:48:04 But understanding that kind of argument helps when you start modifying an algorithm to fit your problem and need to check whether it is going to return 00:48:25 josephholsten [~josephhol@64.134.6.71] has joined #scheme 00:48:36 Undecidability isn't only a problem with Turing machines. And I guess the `practical application' of it is making sure that your program doesn't go into an infinite loop on some inputs 00:49:10 fds: understanding it for Turing machines is slightly more complex 00:50:22 Right, those two statements weren't very related. I just meant the halting problem, in some form, applies to any theory of computation (lambda calculus, etc) 00:50:35 Than (define (self-applicable x) (should-halt x x)) (define paradox (x) (if (self-applicable x) (hang) 1)) (paradox paradox) 00:50:36 http://people.csail.mit.edu/jaffer/r5rs_9.html the formal syntax for scheme ends up looking very ML-like, lol 00:51:53 _p4bl0 [~user@berthold.shebang.ws] has joined #scheme 00:52:45 There's a reason ML is used for theorem provers and the like. :-) 00:52:54 fds: if you can loop and if then you're a turing machine. the halting problem only affects turing machines. 00:53:37 fds: yeah, I am fast coming to the opinion that ML and scheme are the best languages i have ever seen. something so fundamental and powerful about both of them 00:53:58 lewis1711: me too! 00:54:29 came to the same conclusion. I'm doing scheme now, came from haskell, and will go for ocaml next and make scheme and ocaml my comfortable languages. 00:54:30 rien: Turing machines are just one model of computation, it just so happens that they have been proven equivalent to every other model of computation that's interesting. :-P 00:55:01 -!- rien_ [~unkanon@rrcs-69-193-217-130.nyc.biz.rr.com] has quit [Ping timeout: 240 seconds] 00:55:08 fds: well yes, but what I mean is you can have a basic language that is not turing complete and you can prove that programs in that language always halt. 00:55:31 lewis1711: how did you reach that opinion? I'm curious to know 00:55:39 masm [~masm@bl19-144-49.dsl.telepac.pt] has joined #scheme 00:55:59 -!- masm [~masm@bl19-144-49.dsl.telepac.pt] has quit [Client Quit] 00:56:47 Yeah, my point was that's not really something special about Turing machines, it's true for all sufficiently powerful formal systems, or something. 00:56:53 rien: possibly the honey mood period, I am using both languages at the same time (ocaml and scheme respectively). BUT... basically ocamls type system makes every other static language I've used look clumsy, crude and ugly. and I can't much imagine writing dynamic stuff that isn't schemey now. but we'll see 00:57:49 fds: yes, but it's kinda like the chicken and the egg, because a suficiently powerful system is then a turing machine. it's easy to cross the line and become a turing machine. 00:58:21 lewis1711: that's because ocaml uses Algebraic Data Types which are superior to "types". I fell in love with ADTs in haskell. 00:58:43 that's why I also think that nothing beats ocaml for static programming and scheme for dynamic 00:58:57 interesting to find someone got to the same conclusion I did :) 00:59:19 oh yes, and recursive types, they took me a while to grok but then it was like "woah" 00:59:51 -!- pdelgallego [~pdelgalle@1385159852.dhcp.dbnet.dk] has quit [Read error: Operation timed out] 00:59:57 yep! 01:00:08 lewis1711: what made you pick scheme over common lisp? 01:00:16 the fact that it's functional? 01:01:10 rien: scheme just looked much simpler and much nicer. and the fact that were was a "computer bible" written with it (SICP) swayed me 01:01:33 those are great reasons. 01:01:50 *rien* has to find the time to read SICP 01:01:53 I tried out CL the other week, didn't make sense to me 01:01:59 how so? 01:02:40 CL is like C in the sense that it's very fast and still procedural, but it's funny how it doesn't compile to C, while Scheme does. 01:02:51 I never understood that. 01:03:18 drdo: please disagree with me now :) 01:03:49 rien: How CL doesn't compile to 01:03:52 C? 01:03:53 well, ok, this is what i tried 01:03:55 ECL 01:03:57 MichaelRaskin: yes 01:04:19 It's not that Scheme compilation is without dirty tricks 01:04:27 I was trying to see if + and all that were special forms or what in CL 01:04:37 so I did + in the interperter, and got back "NIL" 01:05:12 MichaelRaskin: at least scheme's executables are not hundreds of megabytes like lisps are. 01:05:19 Hundreds? 01:05:23 MichaelRaskin: so if ECL exists, why do people still prefer SBCL? 01:05:35 rien: on what? 01:05:36 MichaelRaskin: yes, hello world in lisp works and SBCL are 80MB+ 01:06:13 lewis1711: yeah CL has a weird affection for NIL 01:06:21 That is "tens" 01:06:31 what I did is called hyperbole 01:06:47 SBCL has a better compiler 01:06:55 And less performance gotchas 01:07:07 but still, hello world will be dozens of megabytes, like somebody just told me on #lisp 01:07:19 also, I really want a lisp that has first class access to C. CL had ECL, which seemed a bit messy. scheme had gambit which everyone seemed to rave about so.. 01:07:23 I don't get why scheme can make small executables and lisp can't. 01:07:25 Of course it will silly boy 01:07:31 You have to include everything 01:07:37 lewis1711: yes gambit does look awesome 01:07:55 drdo: which is silly because "hello world" doesn't use everythinh. 01:07:57 everything* 01:08:08 I quite like it. a bit minimalist, but just more excuse to learn scheme i guess (have to learn macros so I can do my own module system lol) 01:08:12 and it does have tables:) 01:08:14 rien: eval and compile need to be available at runtime 01:08:23 lewis1711: what do you mean by tables? 01:08:34 drdo: I don't want them to be available at runtime. 01:08:37 they're a data structure. have you ever used Lua? 01:08:37 I should have a choice. 01:09:00 lewis1711: yes! I love Lua's tables and metatables. they're associative arrays. Lua is based on scheme! 01:09:05 rien: Then write an implementation that supports that 01:09:12 rien: he means associative arrays... Lua calls them tables 01:09:17 they're not quite associative arrays 01:09:22 drdo: if I have to do that I'll just stick to scheme. 01:09:25 It's not a problem in practice, so no one bothered 01:09:33 groovy2shoes: yep :) 01:09:35 rien: my bad... I'm slow on the typing tonight -_- 01:10:02 Lua tables morph anyway, they have linked list representation when you try and do some things with them 01:10:04 drdo: also if it still needs the image around then it's not machine executable. 01:10:18 rien: wrong 01:10:22 rien: what? 01:10:43 It needs image around as it needs glibc 01:11:01 I'll put it this way: if the executable for "hello world" is larger than 5 MBs then your language can't generate compiled machine executable code. 01:11:15 rien: Let me put it this way, you are clueless 01:11:38 that's why it's better to say "does it compile to C?" because then everybody understands and we don't get bogged down arguing semantics 01:11:39 rien: GCC can't generate compiled machine executable code 01:11:40 groovy2shoes: "Tables are heterogenous structures whose elements are indexed by keys which are arbitrary objects. Tables are similar to association lists but are abstract and the access time for large tables is typically smaller. " 01:11:51 i can grab a link to table implementation if you're interested 01:11:57 point is they're not the same as associative arrays 01:11:58 Because hello world will need a libc 01:12:20 how large is libc? 01:12:39 MichaelRaskin: I remember there was this article on slashdot a while back where some C hacker made a hello world that didn't need libc, for speed1!!1 some people :D 01:12:48 drdo was arguing the executable is large because it needs eval and compile, but you're saying it's large because of libc? 01:13:03 What's the cardinal difference? 01:13:12 It is question of scale only 01:13:16 lewis1711: they're associative arrays. I've read the implementation. 01:14:01 rien: It's the same in every fucking language 01:14:02 MichaelRaskin: it's hard to sell programs for users if everything will be 100MB 01:14:06 yeah well until you've made a scheme used in industry I am going to go with the gambit manuals definition over yours 01:14:10 ;) 01:14:27 drdo: you're insane. in haskell "hello world" isn't even 5 MB 01:14:41 Haskell can't compile or eval at runtime either 01:14:48 Well, ECL will give you 5 megabytes - everything included 01:14:48 That's the majority of the size 01:14:51 lewis1711: from the Lua refman: "The type table implements associative arrays, that is, arrays that can be indexed not only with numbers, but with any value (except nil)." 01:14:53 the implementation 01:14:58 I *don't* want to compile and eval at runtime!!! 01:15:04 that is the point 01:15:16 groovy2shoes: yes, they implement it. doesn't mean they are associative arrays 01:15:28 rien: there was something like CLoCC with that idea. 01:15:33 since if you continue reading, they emulate linked lists in certain situations 01:15:49 lewis1711: "associative array" refers to an interface, not a single data structure in particular. 01:15:52 common lisp is too good of a language to not generate tiny executables. it would be too good to be true. 01:15:56 MichaelRaskin: I'll google that 01:16:12 rien: I don't see how that is even an issue 01:16:23 lewis1711: I'd say if tables "implement associative arrays" then they can be thought of as associative arrays. 01:16:26 MichaelRaskin: are you familiar with ECL? would you recommend it? I few people on #lisp told me it was quite buggy 01:16:40 groovy2shoes: alright, I see the semantic misunderstanding 01:16:47 drdo: what are you failing to see exactly? 01:17:14 Medium-buggy, but actively developed 01:17:21 Just distribute the source like a normal person 01:17:43 or FASLS if you are evil for some reason 01:17:48 And debugging is somewhat encumbered 01:18:15 that's beside the point. I am pro-BSD but that doesn't mean I want the source code hanging around inside the executable as there's just no need for that at all. 01:18:18 Those programming books on scheme, like SICP,a lso the little scheme, they recomment a bunch of stuff on math... books on sets, logic, etc... What is that for? 01:18:41 rien: what? I mean, distribute the source code and the user can compile it on his machine 01:19:19 drdo: I don't believe in that model. you'll lose a lot of money, depending on your application, if you require your users to compile your source code. plus, you're avoiding the argument. 01:19:23 phao: there's a rich relationship between computer science and maths. I don't know what maths you've done, but I find sets and logic much nicer than real number calculus, which turns most people off anything with "maths" in it forever:) 01:19:34 I guess the only salvation for common lisp is to implement it in Gambit Scheme 01:19:43 lol 01:19:56 gambit scheme is very ram greedy. that, or I have a leak 01:20:09 rien: How are you planning to distribute your application? 01:20:44 drdo: I don't have words to explain that because everytime I say "executable binary" you guys misconstrue it... 01:21:01 rien: This happens in every language 01:21:11 I don't know how to say what I mean anymore. static machine executable binary? 01:21:20 for instance: 01:21:34 You either distribute the source, or the compiled code and expect the user to have an implementation to run it 01:21:41 Or you have to distribute the implementation too 01:21:51 Name one language that doesn't do this 01:21:55 if I say "can I compile ruby to an executable binary" and you say "yes, you can merge the interpreter and the source code in an executable", for me that's a NO. 01:22:09 C, Ocaml, Haskell 01:22:10 many languages 01:22:12 most languages. 01:22:23 rien: It's certainly not true for C 01:22:24 nobody has to have a haskell implementation to run my haskell programs 01:22:29 okay, not for C 01:22:35 but for haskell and ocaml it is 01:22:36 rien: any language that can be interpreted can compile to machine code, you just need a compiler that does so :) 01:22:46 rien: It's not 01:22:52 groovy2shoes: right, and I wish such a compiler existed for CL 01:22:55 drdo: how so? 01:23:02 It's just that the code is in the executable 01:23:09 -!- dfkjjkfd [~paulh@86-9-ftth.onsnetstudenten.nl] has quit [Quit: Lost terminal] 01:23:16 then let's have that for CL 01:23:17 Just like you can put a static lib in your binary in C 01:23:18 rien: they do... 01:23:23 rien: You have that 01:23:37 SBCL can do that, CLISP can do that for example 01:23:41 but then why is it 1 MB for ocaml and haskell and 100 MB for CL for the same program? 01:23:51 that's the part I don't understand 01:24:01 rien: It's not 100MB, that depends on the implementation 01:24:11 but no implementation does 1 MB, why? 01:24:14 clisp for example generates something around 5MB 01:24:22 rien: Because it does a lot more 01:24:27 kanru [~kanru@61-30-10-70.static.tfn.net.tw] has joined #scheme 01:24:37 drdo: then how do I turn off the "a lot more"? 01:24:48 That would depend on your implementation 01:24:53 nobody with brains ships an application that allows eval and compile, come on 01:24:54 That's not standard 01:24:58 that's just not real world 01:25:15 rien: What's not real world is wanting to distribute Hello World applications 01:25:19 rien: it depends on a number of factors... all compiled programs still need some sort of runtime support. It's likely your compiler is statically linking a large runtime library or something. It'll probably say in the documentation somewhere how to fiddle with the settings. 01:25:26 that's just an example. 01:25:42 drdo: can you email me a small compiled hello world application to prove your point? 01:26:10 I don't understand how that even matters 01:26:13 groovy2shoes: then how come are the runtime for most languages so tiny? and for CL so huge? 01:26:40 drdo: because a program needs to be sized in MBs proportionally to what it does. 01:26:43 rien: Because the CL runtime does a lot more 01:26:58 And that is implementation dependant anyway 01:27:01 It's not about CL per se 01:27:20 drdo: not in a hello world program. that's the point you're missing. it should only include in the executable the functions it needs to run *my* program, not *every* program. 01:27:44 rien: like I said, there are likely compiler settings for trimming the amount of runtime. But that's implementation-dependent so you'll need to look at the docs. 01:27:56 rien: maybe this helps? (i haven't used it) http://pgc.com/commonlisp/ 01:27:58 that's like #including EVERY .h file in the world when writing a program in C. I just include what I need. 01:28:12 rien: what? 01:28:20 -!- gravicappa [~gravicapp@ppp85-141-165-224.pppoe.mtu-net.ru] has quit [Remote host closed the connection] 01:28:24 I'm not sure you understand what #include means in C 01:28:42 rien: C programs have to include glibc if you want to do anything useful 01:28:46 It's the same thing 01:28:50 *libc 01:28:51 it's different from what we're talking about but the point remains. 01:28:57 how large is glibc? 01:29:02 or libc, rather 01:29:11 ballpark 01:29:23 That would depedent on your particular libc implementation 01:29:43 Genosh: "For example, the executable for a Lisp version of the canonical ``Hello World!'' program requires only 20k bytes." - cool, thanks for the link :) 01:29:50 drdo: well give me an estimate 01:30:29 rien: the thing about libc is that it's often linked dynamically, because it's practically a guarantee that the target system will have that already. With CL, almost no one has "libCL" already, so it can be statically-linked instead 01:31:01 groovy2shoes: yes I understand that, that's why I'm asking how large some libc is instead of compiling "hello world" in C and saying "see!" 01:31:13 I honestly don't know how large libC is 01:31:23 rien: libc does very very little 01:31:26 but if it's 50MBish then I'll stand corrected 01:31:32 compared to CL 01:32:34 I believe that. but what I'm arguing is, CL is so fast compared to C that it's a good substitute for many user desktop application. but that is now hampered by the fact that libc is much smaller than libCL 01:32:37 It's like claiming your hammer is smaller that a whole toolbox that includes that hammer as well 01:32:39 -!- rdd [~rdd@c83-250-48-164.bredband.comhem.se] has quit [Ping timeout: 260 seconds] 01:32:48 *than 01:33:15 rien: the CL standard library does things that a C programmer would need multiple nonstandard libraries to do 01:33:38 well, what you're saying is that for me to use a better tool than a hammer to nail the same nail, I need to carry a whole box with me, while I really want just that one better tool for that one nail 01:33:40 That's why i don't understand what his problem is 01:33:50 If his application is going to do anything useful 01:33:58 He's going to need a lot of CL anyway 01:34:10 let me put it another way 01:34:11 That would need lots of libraries in C 01:34:23 let's say my application does X, where X is a Useful Thing (tm) 01:34:58 let's say I will make two versions of that application, one in C and the other in Lisp. I will link everything statically and assume the target system has nothing for either C or lisp 01:35:06 yes that needs lots of c libs 01:35:07 yes 01:35:17 then now I compile it. 01:35:43 well actually I compile a C, a Lisp, a Haskell and an Ocaml version of the same app 01:36:34 then now after compilation, C ~= Haskell ~= Ocaml in size, but Lisp is much more. now you can't say "because Lisp needs eval and compile" because my program doesn't need it as it clearly works in Haskell and Ocaml which do not have eval and compile. 01:36:50 ~= means "about the same size" 01:37:07 rien: Actually, that's not true at all 01:37:16 rien: that depends on the standard library is implemented as a single library, or as a bunch of complimentary libraries... another implementation-dependent detail, not a feature of CL or Haskell or OCaml or any other language 01:37:20 I wish I would believe that 01:38:05 I guess then truly the bad thing about lisp is it doesn't have a "one" implementation, like GHC is for Haskell and inria's is for OCaml 01:38:12 How is that bad? 01:38:15 which is funny because that doesn't seem to hinder Scheme 01:38:30 right, it isn't. CL just can't get things straigh I guess. 01:38:43 No, you just don't understand shit about language implementation 01:38:52 And are speaking nonsense 01:39:09 even if I understood, CL compiled programs would still be larger :) 01:39:36 They warned me not to argue with fools 01:39:56 also, the community is not friendly enough that I can just waltz into #lisp and ask "how do I make my program compile to executable without carrying eval and compile", as people there will crucify me. 01:39:58 drdo, we've come full circle now :) 01:40:22 rien: That is not the case at all 01:40:32 #lisp is very friendly 01:40:52 drdo, all you know how to do is say "that's not the case at all". you never present anything material and palpable. 01:41:01 look at #lisp right now 01:41:07 that looks pretty friendly to me 01:41:19 if I were you and you were me I would have emailed you a tiny lisp app without eval and compile by now :) 01:41:56 I don't know if any implementation supports that 01:42:02 :( 01:42:02 I've never had such need 01:42:24 And i don't think it's an issue at all 01:42:51 There's no real practical benefit of being able to do that 01:43:23 you may think I'm a fool but hear me when I say that it woud contribute greatly to the widespread use of CL if people could use it instead of C and still have programs of the same size. 01:43:36 maybe I can't convince you of that and maybe it's my wishful thinking. 01:43:49 rien: No one cares about CL popularity 01:43:52 At least i don't 01:43:53 but lisp is probably one of the closest languages to C in terms of speed 01:43:58 yes that is unfortunate 01:44:07 CL will never repalce C 01:44:15 I don't mean to say that 01:44:26 they're completely different beasts 01:44:33 I find it hilarious how people write a lot of stuff in C 01:44:34 not completely. 01:44:44 me too, when they could choose CL. 01:45:04 I can't think of many problems where it'd be a toss up between C and a LISP :/ 01:45:11 except they can't, because of the problems I pointed out, which are no concern to you, but in the real world they are. 01:45:23 rien: I live in the real world, never was a problem 01:45:25 lewis1711: I can't think of many where it wouldn't. 01:45:35 drdo: you don't code for the real world in CL I bet. 01:45:45 rien: What is the real world? 01:45:54 right, escape into rhetoric. 01:45:57 I don't think you understand the real world 01:45:57 hmmm... device driver....yeah i think I'll program that in common lisp:P 01:46:05 rien: Give me a real world example 01:46:06 AI simulation...clearly i must do it in C! 01:46:06 er 01:46:20 drdo: programs that are sold for *users* over the wbe 01:46:21 web* 01:46:46 lewis1711: device drivers in one extreme example. I can't think of others. 01:46:49 rien: Do you really think a user gives a shit if your binary is 20MB or 80MB? 01:47:03 on a phone, they do. 01:47:22 rien: graphics library 01:47:37 drdo: they do. 01:47:49 rien: Most people i know wouldn't 01:48:09 also, you have competition 01:48:17 other similar programs will be smaller than yours 01:48:19 rien: If you are competing on binary size 01:48:27 It means your application doesn't do much 01:48:39 That's just ridiculuos 01:49:03 you're right, drdo, since it matters so much to you to be right. 01:49:09 drdo: of course app size matters, don't be daft 01:49:13 you're totally right and I'm totally wrong. *shrugs* 01:49:13 lewis1711: Just for the record, device drivers have been written in Lisps 01:49:39 hcb: Give me an example where it matters 01:49:57 casual users, downloadable app, dial-up market, idiots 01:49:57 embedded systems. 01:49:58 fds: I'm sure they have. i am also sure someone wrote a compiler in brainfuck 01:50:09 old systems 01:50:15 seriously, people using fucking Photoshop that is a few gigs 01:50:19 poor people 01:50:20 hcb: poor people who can't use too much internet 01:50:23 yeah 01:50:26 *lewis1711* raises hand 01:50:36 I don't see people running to the competition 01:50:40 Because they have smaller binaries 01:50:41 drdo: there you go, for all that, I can't choose CL. see? 01:50:56 *you* don't see that. so what? 01:51:00 lewis1711: ever heard of lisp machines? 01:51:01 doesn't mean it doesn't happen. 01:51:03 being green, saving watts, using old hardware because you want to 01:51:17 jao: sure have. they're now extinct 01:51:18 hcb: older hardware usually wastes more power actually :P 01:51:34 lewis1711: Right, but I meant for real large-scale practical/commercial software, for example: http://en.wikipedia.org/wiki/Lisp_Machine_Lisp 01:51:48 rien: Are you talking about small phone apps? 01:52:02 lewis1711: they're not extinct because they were implemented in lisp 01:52:17 fds: sure. I meant in this d and age, you wouldn't write device drivers in LISP 01:52:19 also, don't smart phones run apps made in C (I know the iPhone prefers Obj-C but I think they allow C as well?) 01:52:24 jao: never claimed that was the case 01:52:26 drdo: smart phone apps 01:52:31 rien: Android for example uses java 01:52:49 does it accept C? 01:52:50 rien: apple uses objective C and its gargantuan framework 01:52:53 I think the iPhone does. 01:52:56 They don't distribute the entire java runtime, that's hundreds of megabytes 01:53:04 they just have it on the phone 01:53:15 objective C has a smallish run time. though dunno about apples version 01:53:18 Which is the same way lisp software is usually distributed 01:53:27 And software in every language 01:53:36 No one includes the entire runtime in each binary 01:53:42 lewis1711: I wouldn't write device drivers in any language. But I don't think there's anything intrinsically about Lisp that makes it unsuitable. *shrug* 01:54:06 drdo: you have failed to notice that I was listing different reasons 01:54:19 drdo: ok, then just like for .Net there you need the ".Net frameword" installed *once* to be able to run .net programs, what's the equivalent for Lisp? 01:54:28 rien: A lisp implementation 01:54:39 then if I have 2 programs do they both need to be huge? 01:54:45 rien: on the Android, there's the primary SDK which is all Java bytecode converted to Dalkvik bytecode, and there's the "native" SDK for using C. The iPhone is all Objective-C. 01:54:46 if I'm shipping two programs 01:54:59 rien: If you have the implementation available, you don't need to distribute it 01:54:59 groovy2shoes: so one can use C to code for the Android? cool. 01:55:10 if there was one CL VM that ran all conforming CL's, which their isnt 01:55:25 rien: It works like this in every language, python, ruby, java, whatever ,you name it 01:55:30 maybe there's one for Parrot:) 01:55:32 rien: yeah, but you have particular APIs to use. 01:55:35 drdo: so in other words, is there a way to compile a CL program so that it links dynamically do libCL and thus is smallish? 01:55:40 groovy2shoes: right. 01:55:40 rien: yes 01:55:44 rien: FASLs 01:55:54 a compiled lisp file usually has the extension .fasl 01:56:00 just try it on your machine 01:56:06 (compile-file "foo.lisp") 01:56:36 with a Fasl users can see my code, right? 01:56:45 no 01:56:53 It's either native code or bytecode usually 01:57:01 sbcl for example generates native code 01:57:07 drdo: actually older hardware hardly wastes energy because you failed to take into account the *massive* amount of energy that went into R&D, much of it makes zero practical difference 01:57:08 while clisp generates bytecode 01:57:21 ok then now we've gotten to where I want. 01:57:42 unfortunately I can't install SBCL to try it out 01:57:53 any lisp implementation generates fasls 01:57:57 just try compile-file 01:58:00 CCL? 01:58:04 any 01:58:06 it's standard 01:58:13 compile-file is standard 01:58:14 ok, hold on lemme try 01:58:48 damn it, I forgot how CCL calls its interpreter 01:59:02 lx86cl 01:59:08 yes! thanks! 01:59:09 lx86cl64 01:59:26 rien: It's the same everywhere, that's why i couldn't see your problem 01:59:33 C has object files 01:59:37 python has some .pyc i think 01:59:43 java has .class files 01:59:53 etc 02:00:17 so if I distribute a fasl that's the equivalent of distributing a .o for C? that's weird as nobody does that for C. 02:00:25 and dont they distribute .jar for java? 02:00:31 ye 02:00:34 (I don't know what .jar is tbh) 02:00:41 JAR is similar to a tarball 02:00:54 ok I think I deleted my CCL :) 02:00:57 downloading again... 02:01:00 I need to try that 02:01:06 It just has a bunch of class files 02:01:13 And you need a java implementation to run it 02:01:25 People don't see to have a problem distributing java applications 02:01:27 *seem 02:01:32 right 02:01:33 And the runtime is even bigger 02:01:35 way way bigger 02:01:39 than most CL implementations 02:01:54 no one includes it in the distribution 02:02:00 I'mdownloading ready lisp to try that compile-file function 02:02:26 then it's SBCL so it should be not bytecodes but actual native code like you said 02:03:57 SBCL generates native code only 02:04:03 it doesn't even have an interpreter 02:04:07 everything is compiled 02:04:22 awesome. it's still downloading. for now let's try sbcl 02:04:41 can I do it all in one go? (compile-file (code here pretending it's a file)) ? 02:04:49 let's just print "hello world" 02:04:53 what? 02:05:09 rien: of course *no* 02:05:23 why of course? 02:05:24 compile-FILE needs a file, not code 02:05:30 *sigh* 02:05:40 I can't count how many times I've fed a string to functions that take a file 02:05:51 so it's not "of course" 02:05:55 huh? 02:06:04 you can feed a string designating a path 02:06:15 Bad code written by others doesn't justify anything. 02:06:55 it's not bad code inherently, it's just to bypass having to have a file. you know, transforming a string into a stream, etc. 02:07:14 rien: And what is it supposed to do exactly? 02:08:20 if function x takes a file, then I call a function that turns a string into a "simulation" of a file, that is, it'll make a file handle and stream the string through it so that the function that takes a file is happy 02:08:31 rien: No, I don't know. When I see a function called HANDLE-FOO that can accept something which has nothing to do with FOO, I consider the guy who did the API should be shot. 02:08:45 rien: And then you do what with the result? 02:09:06 And where would it store the compiled code? In a string too? 02:10:19 compile-file takes an output-file as a parameter. it would store the compiled code there. 02:10:32 lay down your arms, people. 02:11:12 rien: You don't seem to think things through before saying them 02:11:32 I'm impulsive, what can I do. 02:11:40 at least I'm not rude. 02:12:12 I'm not rude either 02:12:29 that's fine I'm not offended :) 02:12:32 anyhoo 02:12:35 I did compile-file 02:13:03 I can see (princ "hello world") when I do "cat file.dx64fsl" 02:13:05 rien: In practice, what people use is ASDF for distributing systems 02:13:22 xwl_ [~wixu@nat/nokia/x-cophmrnshdoordqc] has joined #scheme 02:13:28 rien: That's debugging information 02:13:30 It probably stored some source code information for debugging 02:13:39 You can tune compilation options 02:13:53 then now we need to find the option to turn that off :) 02:14:08 try putting this in your file 02:14:28 Axioplase_: did you have any other questions about my apparent misunderstanding of file-compile? 02:14:31 compile-file* 02:14:33 (declaim (optimize (speed 3) (debug 0) (safety 0))) 02:14:52 No. Did it seem that I had any other? 02:15:23 Axioplase_: just teasing you. 02:15:50 Axioplase_: you were all angry when you thought I was dumb but when you saw I had answers then you got quiet ;) 02:16:03 -!- scheibo [~scheibo@CPE0026f3358958-CM0026f3358955.cpe.net.cable.rogers.com] has quit [Quit: Lost terminal] 02:16:03 drdo: trying it now 02:16:30 Axioplase_: it's ok to recognize when one's wrong. 02:16:32 :) 02:16:38 *rien* teases 02:16:50 -!- Genosh [~Genosh@249.Red-81-38-180.dynamicIP.rima-tde.net] has left #scheme 02:16:52 rien: I think you should start thinking a bit about stuff instead of jumping and saying "this is shit" 02:17:03 And i mean this as general life advice 02:17:28 I've always jumped and said "this is shit" and then people usually prove me wrong on the spot. 02:17:43 the CL guys are the only people I've found that avoid arguing. 02:18:07 rien: People on the internet don't owe you shit 02:18:07 rien: I'm asking questions. You answer. Good. Why *should* I ask more? 02:18:12 ok, now in the fasl I can see the declaim line you gave me verbatim, and also ??cc "hello world")?9 etc 02:18:20 I have more important things to do. 02:18:23 Most people are happy to help if someone poses good questions 02:18:31 Axioplase_: don't let me interrupt you. 02:18:54 But we are not your school teachers, we don't get paid to explain stuff to you 02:19:05 And even school teachers won't put up with trolling 02:19:08 Azuvix [~Azuvix@71-215-25-216.bois.qwest.net] has joined #scheme 02:19:23 I can't see my "princ" anymore but I can see "cc "hello world"" 02:19:24 in the fasl 02:19:35 -!- timj_ [~timj@e176194087.adsl.alicedsl.de] has quit [Remote host closed the connection] 02:19:38 Oh i don't know 02:19:44 Maybe it's because, let's see 02:19:53 There's a string with those characters? 02:20:21 is there also a string with "TEB??T?(declaim (optimize (speed 3) (debug 0) (safety 0)))?" :O 02:20:46 rien: That's implementation dependant, i don't know anything about CCL's internals 02:20:54 masm [~masm@bl19-144-49.dsl.telepac.pt] has joined #scheme 02:21:06 also, when I cat a binary I see strings but not neatly surrounded by quotes, you know 02:21:15 and parentheses lol 02:21:20 rien: Like i said, i know nothing about CCL's internals 02:21:32 Try doing the same in SBCL and you'll see different code 02:22:06 I will right now 02:22:10 download's done 02:23:07 You can also DISASSEMBLE functions btw 02:23:42 I'm just cat'ing them, it's more impartial 02:23:48 that's much better :) 02:23:58 file.fasl now looks like a genuine binary 02:24:08 with my string *without quotes or parentheses* 02:24:17 and the function call with a somewhat mangled name 02:25:05 how do I make it executable as ./file.fasl after having already done chmod +x file.fasl? 02:25:29 rien: How would you run, say, a python application 02:25:49 :) 02:25:58 that was a dumb question, I admit it 02:26:03 sorry 02:26:48 rien: you can do exactly that with clisp fasls and a kernel module (binfmt) in linux 02:26:56 I have nothing to put in a shebang line or call in the command line because I did it with Ready Lisp and I think SBCL is kinda hidden in there 02:27:17 jao: ic 02:27:21 I have no idea what ready lisp is 02:27:38 they just packaged emacs and sbcl and some other stuff into a dmg image 02:27:51 so you can double click a program and BAM you're in emacs with sbcl 02:28:04 I've tried installing SBCL the proper wya but it wouldn't 02:28:31 I compiled sbcl from source 02:28:32 on OS X 02:28:49 Didn't have any problem 02:29:00 would you add "easily" to that sentence? 02:29:01 oh ok 02:29:06 yes i would 02:29:21 it's just running a script 02:29:21 well it's not like I doubt that the fasl would run :) 02:29:31 How about doing CL discussions on #lisp? 02:29:42 they'd eat me alive! :) 02:29:48 I'm done though 02:29:50 thanks drdo 02:30:03 don't get too mad at me :) 02:30:32 Like i said, just try to think things through a bit before asking dumb questions :P 02:30:46 timj [~timj@e176194087.adsl.alicedsl.de] has joined #scheme 02:31:01 drdo: I will, honestly. 02:37:36 wtf, that's bullshit 02:37:43 asking dumb questions is fantastic 02:37:54 hey everyone, why does scheme have so many brackets?????? 02:38:12 Why does your question have so many question marks? 02:38:26 No language is complete without loads of brackets. 02:38:46 drdo: once you write like this enough, you no longer see the question marks;) 02:38:53 I find it funny people when people complain about parenthesis 02:39:00 And then the equivalent code in their language 02:39:03 Has more 02:39:06 lol 02:39:23 -!- Azuvix [~Azuvix@71-215-25-216.bois.qwest.net] has quit [Read error: Connection timed out] 02:39:34 Also, lisp is hard to read 02:39:46 I find it funny when you guys claim the parantheses don't matter, but get ready to lynch people who use [] or {} when their implementation allows it 02:39:48 Azuvix [~Azuvix@71-215-25-216.bois.qwest.net] has joined #scheme 02:39:55 Having to remember and think about precedence rules and shit is readable and nice 02:40:20 lewis1711: I hate that [] idea 02:40:28 why not? I use it a lot 02:40:31 *why 02:40:39 Because it adds nothing 02:40:41 it makes code more readable IMO 02:40:46 give me an example 02:40:55 cond 02:41:06 example? 02:41:41 (cond [(eq? lewis is-right) (slap drdo)] [else (self-destruct)]) 02:42:11 I'd prefer if cond didn't have those parenthesis at all 02:42:22 same with let 02:42:25 oh 02:42:28 well I agree with you there 02:42:44 What?! 02:42:47 but as a substitution, square brackets break it up. and I will use them 02:43:01 I just hope you guys still help me if i lisppaste code with square brackets. or I am screwed 02:43:05 (let (x 1 y 2) (do-stuff)) instead of (let ((x 1) (y 2)) (do-stuff)) 02:43:31 I liked that SRFI that used indentation 02:43:35 it was quite nice 02:43:47 You can argue that this doesn't let you define uninitialized varibles 02:43:50 *variables 02:43:59 And i'll really with "that's bad style die in a fire" 02:44:02 *i'll reply 02:44:19 lol 02:44:26 lewis1711: If you have an editor with bracket highlighting (ie., lisp rainbow), there's no readability difference. 02:44:39 also, that indentation SRFI 02:44:43 Is a terrible idea 02:44:53 so you guys are hypocrites 02:45:01 what? 02:45:07 the brackets don't matter, but as soon as someone interferes with them...out come the pitch forks 02:45:16 the either matter or they don't:P 02:45:17 lewis1711: It doesn't add anything 02:45:23 It doesn't make code more readable 02:45:42 -!- mwolfe [~michael@cpe-67-49-72-40.socal.res.rr.com] has quit [Remote host closed the connection] 02:45:44 It just makes automatic indentation not work 02:45:47 so you're neutral on them? glad to hear;) 02:46:18 automatic indentation is rather annoying. lisp has really weird indenting rules 02:46:23 I don't like them. at all 02:46:28 for example? 02:46:40 lewis1711: In Soviet Russia, Lisp hates you. 02:46:52 I never said I don't like LISP 02:47:04 Okay. Retry: In Soviet Russia, Lisp indentation rules hate you. 02:47:06 :-P 02:47:08 I just wish it didn't come with all this indentation and emacs baggage 02:47:14 lewis1711: It adds another stylistic convention that coders now have to agree on while simultaneously robbing implementations from using the other bracket styles for something useful. 02:47:29 -!- em [~em@unaffiliated/emma] has quit [Ping timeout: 255 seconds] 02:47:55 Obfuscate: when did I imply it should be part of an RnRS?:P 02:48:24 drdo: why don't you give me an example of how you indent lisp code, and I'll indent it how i think looks nice 02:48:57 drdo: It's a trap! Don't do it! 02:49:02 :-P 02:49:39 and seriously, I think this obsession with emacs is absolutely terrible for the whole lisp community. to the point where people insist noobs learn emacs too. 02:50:02 what obsession with emacs? 02:50:38 the one prevalent in most of the lisp community. it seems to be worse in CL 02:50:53 you people like using emacs and that offends you? 02:51:31 lewis1711: Why does the fact that people like to use good editors bother you? 02:51:32 that sentence doesn't make sense 02:51:43 insert "mean" somewhere. 02:51:45 drdo: twisting my words, not going to reply 02:51:55 bremner: do it yourself, then come back to me 02:52:05 man 02:52:16 vu3rdd [~vu3rdd@nat/cisco/x-cjxupiykqltnjjvw] has joined #scheme 02:52:16 -!- vu3rdd [~vu3rdd@nat/cisco/x-cjxupiykqltnjjvw] has quit [Changing host] 02:52:16 vu3rdd [~vu3rdd@fsf/member/vu3rdd] has joined #scheme 02:52:19 lewis1711: People don't insist beginners learn emacs 02:52:26 People suggest it as a good editor 02:52:34 lewis1711: haha. Yes your majesty. 02:52:36 lewis1711: You don't have to: it already has its negative effect as part of r6rs. 02:52:36 drdo; take for example, the book practical common lisp 02:52:43 lewis1711: What about it? 02:52:46 lewis1711: no need to be unpleasant 02:52:50 it insits you must learn emacs 02:52:58 no it doesn't 02:53:00 copumpkin: huh? 02:53:20 bremner: do it yourself, then come back to me 02:53:59 copumpkin: what's so bad about that? I couldn't be bothered inserting meain in somewhere. I had already wasted precious time trying to figure out what he meant. jeez:) 02:54:02 -!- tupi [~david@186.205.37.15] has quit [Quit: Leaving] 02:54:56 lewis1711: Your time is more precious than bremner? Impossible. Impossible. 02:55:17 lewis1711: still waiting for the quote showing PCL demands the reader to use emacs 02:55:26 ahh my favourite sport, arguing against several people whoa gree with each other at once 02:55:37 drdo: yes, getting onto it 02:55:48 lewis1711: I am not a member of Anonymous. Happy now? 02:56:58 (I'm not coordinating my comments with the others in this channel. There is no Cabal. etc., etc.) 02:57:24 drdo: ok my mistake, perhaps I mis read it or it has been recently edited 02:57:36 lewis1711: I don't even use emacs except for one application where I have to 02:57:43 I agree with everything cky says about lack of collusion 02:57:48 :D 02:58:13 I don't mind it 02:58:19 I just don't really use it 02:58:29 emacs fans must have different anatomy. I used it for three months, and that was also the only time I ever had serious rsi pain 02:58:35 -!- masm [~masm@bl19-144-49.dsl.telepac.pt] has quit [Quit: Leaving.] 02:58:37 rpg [~rpg@216.243.156.16.real-time.com] has joined #scheme 02:58:42 lewis1711: As a vimist, I insist. You should make a patch for vim so that I can have a decent slime running in vim. 02:58:49 hcb: I've used emacs for years on end 02:59:02 I'm talking on irc right now in emacs 02:59:02 drdo: my point exactly 02:59:05 *Axioplase_* got RSI after a year of emacs too 02:59:11 hcb: I didn't get any RSI 02:59:35 hcb: I even modified it heavily to use modern keybindings. then I had to deal with minor language modes and I gave up 02:59:40 drdo: you are a bit slow on the uptake 02:59:43 My remedy to RSI is Dvorak, but, I haven't tried using Emacs with Dvorak for an extended period of time to see if that mitigates RSI. :-P 02:59:49 I should, though. :-P 02:59:50 i use dvorak 02:59:50 hcb: what? 02:59:54 tried viper 02:59:57 hcb: Nice. :-D 03:00:00 lewis1711: What are modern keybindings? 03:00:03 Axioplase_: what does slime even do? send s expressions to a buffer quickly? 03:00:15 Urgh, emacs users... I hate them... 03:00:16 drdo: Modern keybindings == Dvorak. :-P :-P :-P 03:00:26 drdo: don't be obtuse, you know exactly what i mean. go back to your 1980s keybindings for a keyboard map that isn't your own on machines that don't exist:P 03:00:30 For RSI (which hasn't healed in 4 years), I use kinesis keyboard, dvorak, a pentablet instead of a mouse, and xwrits 03:00:44 lewis1711: What? 03:00:46 Axioplase_: Nice. :-D 03:00:48 *f|l* uses Colemak. 03:00:59 f|l: I find Colemak too similar to qwerty for my liking. :-( 03:01:02 No i don't exactly what you mean, i have no problem with emacs 03:01:04 lewis1711: it's the base of what makes the interactions between emacs and the running lisp, if I remember correctly 03:01:07 *don't know 03:01:23 drdo: I am not saying that you can't use emacs without RSI. Hence the "different anatomy" comment! Some people get RSI from emacs (like me), others don't (like lucky you) 03:01:26 Let's troll #emacs. 03:01:32 ah, I misread. 03:01:39 didi: nah, #emacs is quite helpful 03:01:40 hcb: Where is your control key? 03:01:41 I like them 03:01:48 even if i can't agree with the editor 03:01:52 drdo: I *liked* emacs while I used it 03:01:57 hcb: lol he's taking a while to get it but keep at it! 03:02:03 I could probably get it set up perfectly with years of practice and 10000 lines of elisp 03:02:22 hcb: I'm just saying, if your control is in the position that it is in most current keyboards, i can see how that can cause RSI 03:02:40 drdo: yeah 03:02:46 that's because emacs is based on anothey keyboard map 03:02:52 What sane people do 03:02:52 drdo: you're insulting him now by saying he wouldn't have thought of switching it to caps lock 03:02:54 but it's so archaic they never changed it to reflect what most people use 03:02:59 Is switching caps lock and control 03:02:59 lewis1711: slime is what lets you run lisp and interact with emacs yes. Not only quickly sending expressions, but also accessing completion of names that are known to the interpreter, even if they are not in any buffer. It also gives you the interface of functions as you type the names, and so on. 03:03:18 lewis1711: Give me an example of a keybind that's based "on another keyboard" 03:03:21 Axioplase_: hype 03:03:23 :) 03:03:30 nah but it doesn't sound compelling to me 03:03:36 lewis1711: there's a video 03:03:42 showing slime usage 03:03:43 drdo: I'm a vimmer and I must admint hjkl is based on another keyboard 03:03:43 lewis1711: that's why I fire emacs for coding in CL. It's just *too* convenient. 03:04:10 rien: It is? 03:04:12 hjkl is based on qwerty and all derivatives thereof 03:04:31 drdo: yes, gimme 2 mins and I can show you the pic if you care 03:04:32 I however use vim for scheme, since I'm more proficient with gambit, and thus need less interactive help. 03:04:47 *Axioplase_* now vanishes again. 03:04:48 You people are crazy 03:05:04 drdo: http://xahlee.org/emacs/emacs_kb_shortcuts_pain.html 03:05:17 Axioplase_: gambit vim high-five! 03:05:17 drdo: basically I gave up trying to reconfigure everything. If viper plus vimpulse would work without breaking a lot of stuff I'd probably use emacs 03:05:49 lewis1711: That's pointless 03:06:04 If you swap control and caps lock 03:06:14 It's even better than it was with that LM keyboard 03:07:01 or 03:07:05 emacs could modernise 03:07:09 drdo: http://rollmops.files.wordpress.com/2006/04/Lear_Siegler-ADM3A_1805.jpg 03:07:24 (for the rercord i am a big fan of Xahlees ergoemacs, it made emacs near partially usable for me:)) 03:07:41 and #emacs is still nice to you? 03:07:43 lewis1711: And what exactly would "modernise" mean? 03:07:45 near partially usable lol 03:07:51 drdo: make like windows 03:08:05 bremner: more like make like GNOME 03:08:07 Oh modernize means being brain dead 03:08:13 windows is fucking hilarious 03:08:26 Keyboard shortcuts in windows change depending on your Language 03:08:56 rien: It looks exactly the same as my keyboard 03:09:00 in firefox i switch tabs or buffers, by ctrl+up or ctrl-down. I open things with ctrl o. ctrl-c, c-v for copy pasta 03:09:07 same with almost every app I use 03:09:14 drdo: your keyboard has arrows drawn on the HJKL keys? 03:09:14 except for emacs, because it's stuck in the 80s 03:09:19 rien: no 03:09:22 so someone has to write a whole mode for it to be modern 03:09:31 but what does that matter, my keyboard could be all blank 03:09:38 and even then, it's very archaic. 03:09:40 drdo: then "exactly" doesn't mean what you think it means. 03:09:41 I don't look at the keyboard ,i look at the screen 03:09:49 lewis1711: +1 on ergoemacs (except that it breaks stuff too, obviously) - ergoemacs + viper + vimpulse == nice when it works 03:09:59 lewis1711: And how exactly are those shortcuts you described 03:10:06 Superior to emacs shortcuts 03:10:25 they're standard, shorter, and less RSI inducing 03:10:35 shorter? 03:10:41 standard? 03:10:55 How do you measure RSI induction? 03:11:02 if you are defining predicates, use rudbot 03:11:09 *rudybot 03:11:16 -!- Azuvix [~Azuvix@71-215-25-216.bois.qwest.net] has quit [Quit: Leaving] 03:11:29 hcb: yeah I am pretty sure ergoemacs breaks some scheme mode stuff 03:11:48 what the hell is ergomacs? 03:12:13 something you won't like 03:12:35 "ErgoEmacs is as easy to use as Notepad, If you are familiar with Microsoft Notepad, you can be productive with it the minute you download it. " 03:12:41 this is hilarious 03:13:07 i didn't know it was possible to be productive using ms notepad 03:13:25 the keybindings are familiar to almost everyone who owns a computer 03:13:31 emacs keybindings are not 03:14:01 drdo: it's called ergoemacs, just read their docs to get an overview 03:14:10 and he never said productive as notepad, he said as easy to use:P 03:14:36 emacs is pretty easy to use 03:14:36 it's cua mode on steroids 03:14:43 if you don't know anything 03:14:50 you can use emacs exactly like you use notepad 03:14:50 -!- josephholsten [~josephhol@64.134.6.71] has quit [Quit: josephholsten] 03:14:53 and learn gradually 03:15:22 I shouldn't have to learn a text editor. I already went through vim:P 03:15:34 that's your choice 03:16:07 It's like learning anything, you can learn it and be way more productive after 03:16:22 Or you can choose to use inferior tools and be very unproductive forever 03:16:56 *cky* pukes at ^X, ^C, and ^V for cutting, copying, and pasting. 03:17:01 Seriously gross. 03:17:24 cky: Come on, that's "modern" and "good" 03:17:30 yes, everyone who doesn't learn an archaic, bloated editor will be unproductive for ever 03:17:31 drdo: Hahahahahaha. 03:17:45 what is this circumflex thing? I just use ctrl 03:17:53 or in vim, y 03:17:59 lewis1711: Whatever floats your boat 03:18:04 I couldn't care less 03:18:14 cky: what's better? 03:18:17 I just laugh when i do stuff faster and with more ease 03:18:18 you obviously could, seeing who upset you've clearly become;) 03:18:20 lewis1711: ^C is shorthand for Ctrl-C. 03:18:29 cky: yeah I was trying to make a joke;) 03:18:32 :-P 03:18:54 lewis1711: Also, why are you here? 03:18:58 That. 03:19:00 Scheme is archaic and inferior 03:19:16 nah I like scheme 03:19:20 Why don't you go use something modern 03:19:24 Like Java 03:19:26 s expressions are great 03:19:28 lol 03:19:29 Java is awesome 03:19:30 <_danb_> :) 03:19:31 It's modern 03:19:33 and good 03:20:00 <_danb_> yes, and because it's more modern it must be an improvement 03:20:13 _danb_: That is his argument 03:20:13 <_danb_> it's just logic really 03:20:14 -!- rpg [~rpg@216.243.156.16.real-time.com] has quit [Quit: rpg] 03:20:19 scheme is pretty modern isn't it? I mean r6 was a few years ago 03:20:21 emacs is bad because it's not "modern" 03:20:37 windows is good because it's modern 03:20:39 nope, that's you getting butthurt and misconstruing my argument 03:20:43 vim isn't exactly modern either 03:20:44 never mentioned windows 03:20:52 hcb: yeah that's true, but it's easier to learn 03:20:52 lewis1711: No, you are just saying retarded shit 03:21:19 *cky* sits back and watches the trainwreck. 03:21:27 it's the history to vi's prehistory 03:21:31 You clearly said that firefox keybinds are better because they are modern 03:21:39 yeah i put him on ignore, I'm bored of it 03:21:39 drdo: you know you can get by without saying things like "retarded" and "shit" all the time :) 03:21:41 :) 03:21:50 i use vimperator for firefox 03:21:55 hcb: :D 03:21:58 rien: I don't like to lie :) 03:22:03 I keep forgetting vim commands though 03:22:10 i have a terrible brain-RAM 03:22:25 lewis1711: you need to write crap down 03:22:34 lewis1711: So, you're really saying that you fear Emacs because of your own shortcomings, not because it's inherently bad. 03:22:35 saccade [~saccade@209-6-54-113.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 03:22:37 :-P 03:22:38 lewis1711: then look at your notes! 03:22:51 notes? really? 03:23:01 drdo: :) btw I have some questions for you later on, I'll even let you insult me 03:23:04 drdo: It's reified muscle memory. 03:23:13 rien: Ooooh! 03:23:19 cky: I guess 03:23:30 cky: You do incur a huge overhead though! 03:23:44 drdo: I know, which is why I work exclusively off muscle memory. 03:23:52 cky: yeap, I'll happily admit that 03:24:29 cky: it's the same reason i don't code everything in binary, my own shortcomings;) 03:24:29 lewis1711: As mentioned above, I use both vi and Emacs off of muscle memory. I don't even think about the specific steps any more. 03:24:32 lewis1711: It's like driving. 03:24:32 cky: I find it really hilarious when i see other people edit stuff at the univ 03:24:39 drdo: Oh, tell me more. :-D 03:25:03 lewis1711: I don't have to "think" about driving; I just have to be alert and look out for people who don't know how to drive. :-P 03:25:08 The average guy will have gedit and a terminal open 03:25:16 do manual indentation 03:25:24 ok. but I feel i can make better use of my term than learn emacs 03:25:28 click around with the mouse 03:25:33 hahahahah 03:25:39 my coworker clicks around too, it's pretty funny 03:25:50 drdo: Oh wow, no way. 03:25:52 rien: hey, i don't click, I use vim usually:) 03:25:54 rien: :-) 03:25:56 they will count parenthesis too 03:26:05 it's hilarious to watch 03:26:18 sometimes clicking sneaks back in though. i use openbox with a buncha shortcuts 03:26:25 drdo: I can count brackets (only when I must, like when typing to rudybot) faster than the Emacs bouncing matcher. :-P 03:26:42 cky: Or you can use paredit 03:26:57 drdo: You can use paredit for IRC? 03:27:06 <_danb_> until someone types ( 03:27:12 cky: sure 03:27:17 ( 03:27:19 not sure why you would want to though 03:27:33 josephholsten [~josephhol@ip70-185-215-221.ok.ok.cox.net] has joined #scheme 03:27:35 drdo: Well, "only when I must, like when typing to rudybot" refers to IRC. 03:28:00 <_danb_> autopair-mode sort of works actually 03:28:03 drdo: I don't write in a paredit buffer and cut and paste to rudybot; I type directly in my IRC client. :-P 03:28:17 cky: sure 03:28:40 I'm just saying, it's not like it's very common, and it's not like the code is going to be very complicated anyway 03:30:47 Indeed. Which is exactly why I don't mind having to count brackets in that context. 03:30:51 But most other contexts, hell no. 03:31:08 You don't actually need to count, just spam them 03:31:08 03:31:13 until emacs doesn't find a match 03:31:17 :D 03:33:13 drdo: :-D 03:34:35 drdo: maybe I don't understand something here. so when I dumbly asked how to run .fasl, you said "how would you run a .pyc", it turns out I don't really know because I don't use python, however I thought we were comparing C and Lisp with the libC and libCL talk, and with C I can indeed to ./mycprogram 03:34:43 s/to/do/ near the end 03:35:13 omg i haven't done any scheme programming today. what a terrible human being i am. 03:35:26 O_o 03:35:36 also, right. here me know #scheme. I am going to sort this macro business out once and for all before the day is out:) 03:35:39 *now 03:36:05 rien: I don't know what you know, i was just thinking you might :) 03:36:23 It sure seemed to make you understand it 03:38:17 drdo: well I understand the gist of it, which is to say, some other program would need to be invoked to run that 03:38:49 but more importantly, I thought you were showing me how we could have a lisp program dynamically linked to libCL like ./mycprogram is dynamically linked to libc, you see? 03:39:13 rien: That would mean you would have to be compatible with C 03:39:19 ECL does that 03:39:35 oh then that's what sets ECL apart? 03:40:53 what's the right name for these executables that can be executed like ./program ? executable binaries compatible with C? 03:41:23 "elf" 03:41:48 well... yes, but... :) 03:41:49 "elf binary". Under linux at least. 03:41:55 Or "standalone" maybe? 03:42:05 But but but, you're making COFF and a.out feel left out! :-O 03:42:08 -!- f|l is now known as f8l 03:42:10 but "compatible with C" is meaningless. 03:42:12 unix is my system of choice and all but I was looking for a more generic name. maybe it doesn't exist though. 03:42:31 Axioplase_: drdo said it first! :) 03:42:55 You could compile C such that "./program" doesn't work, while putting code directly in memory would (just like a shellcode) 03:42:57 standalone seems like a good name 03:43:17 right, so saying "I want my program to be run as ./program" is not clear enough, I get it 03:43:25 is "elf" linux or unix? 03:44:10 Still, the OS hijacks a lot, a runs your program along with libc and probably many other things, so it's probably not really stand alone 03:44:41 well it's not *really* standalone because it needs a computer etc 03:44:59 we draw the line somewhere, and that is ... I don't know where :) 03:45:14 If you compile C to some embedded system, you could do some real standalone 03:45:14 You also need a universe 03:45:42 Just generate pure machine code that is run when you boot the machine 03:45:42 is it considered bad scheme to write type checking functions? sometimes I just miss them 03:46:00 lewis1711: no. Why would it? 03:46:16 Axioplase_: I guess it would be frowned up in other dynamic languages, say ruby 03:46:30 Dynamic typing means you can do without strict typechecking, not that you mustn't use it. 03:46:39 I like your philosophy 03:46:58 Well, that's the point of freedom: you can still make your own rules 03:47:40 leppie [~lolcow@196-210-245-178.dynamic.isadsl.co.za] has joined #scheme 03:48:07 drdo: lol that universe statement was ridiculous but very funny 03:52:39 timj_ [~timj@e176193017.adsl.alicedsl.de] has joined #scheme 03:55:20 http://paste.pocoo.org/show/318014/ why is line 10 an "ill-placed define" ? 03:55:54 because you have some shit before it? 03:56:22 -!- timj [~timj@e176194087.adsl.alicedsl.de] has quit [Ping timeout: 276 seconds] 03:56:44 drdo++ for attitude. :-D 03:57:47 What attitude? 03:58:01 "because you have some shit before it?" <-- that :-) 03:58:57 ...is he still typing butthurt things after i stopped arguing with him and put him on ignore? man, I'm good:) 03:59:15 cky: so the first thing in any procedure must be the defines inside that procedure? 04:05:47 cky: drdo++ for rhetorical questions :) 04:06:29 lewis1711: Yes, correct, internal defines must come first, just like variables declarations in C89. :-P 04:06:49 -!- f8l [~f8l@87-205-51-214.adsl.inetia.pl] has quit [Quit: Why do I go to sleep when I'm supposed to get up?] 04:07:00 I shoulda known 04:07:45 lewis1711: But but but, realise that bodies of let forms are functions too. 04:08:20 So you can do, say, (let ((foo bar)) (define baz (+ foo 42)) ...) if you want. 04:09:08 who was talking about lua to me? was it lewis? 04:09:17 s/to/with 04:09:46 What about Lua? 04:10:17 Lua is very Scheme-y (being scheme-based) and some things I only know how to do in Lua and not in Scheme 04:10:20 Lua reminds me of MISC, which is this map-based lazily-evaluated Lisp-like language. :-P 04:10:50 rien: possibly me 04:11:18 -!- josephholsten [~josephhol@ip70-185-215-221.ok.ok.cox.net] has quit [Quit: josephholsten] 04:11:30 blergh, gambitt keeps giving me nonsense errors like "*** ERROR IN "typecheck"@1.5 -- Illegal character: #\x01" 04:11:39 rien: the Lua authors have mentioned Scheme as part of inspiration for the design of Lua... obviously it's still quite different 04:11:53 I'm about to post a question in the form of a pastie but no pastie isn't working for me... 04:12:42 groovy2shoes: quite? perhaps. it's quite similar too. all functions are pointers to lambdas, let over lambda is available, etc 04:13:26 bitweiler [~bitweiler@adsl-99-58-93-196.dsl.stl2mo.sbcglobal.net] has joined #scheme 04:13:34 lewis1711: if there is no source code, there is no error. 04:13:50 em [~emma@unaffiliated/emma] has joined #scheme 04:14:11 rien: I meant syntactically. But even semantically, some things that are useful in Scheme aren't in Lua - like macros and call/cc for example 04:14:32 -!- em [~emma@unaffiliated/emma] has quit [Client Quit] 04:14:47 groovy2shoes: it has very powerful macros and I made call/cc work in with the help of a few people 04:15:00 Axioplase_: I was sort of just vaguely complaining to the internet about my woes. but you've inspired me to paste up my code just incase someone wants to help;) 04:15:02 lewis1711: and it's not nonsense. It line 1, character 5. 04:15:13 well maybe they're not macros, they're more like ocaml's language extensions 04:15:21 there's no illegal character in my source 04:15:26 hence me calling it nonsense 04:15:26 rien: you mean Lua has macros? Not stock Lua. 04:15:42 but anyway, how do I instantiate this several times so I can have 2 counters? http://paste.lisp.org/display/118474 04:15:46 groovy2shoes: stock Lua is barebones :) 04:15:52 maybe there is Or in the macro expansion of your code. 04:16:07 rien: and you can't *quite* get call/cc, but you can use coroutines to do some things you'd normally use call/cc for in Scheme. 04:16:23 groovy2shoes: I *really* got call/cc 04:16:33 rien: in stock Lua? 04:16:41 groovy2shoes: I recompiled Lua with a patch that copies the entire environment and stack 04:16:46 no, not stock Lua ,sir :)) 04:16:49 lol 04:17:00 rien: that's cheating :p It's not Lua anymore at that point :p 04:17:04 scheibo [~scheibo@CPE001dba06b84c-CM0026f3358955.cpe.net.cable.rogers.com] has joined #scheme 04:17:15 (define (make-counter) (lambda () ...)) 04:17:32 aww come one I just added coroutine.clone which is what was missing from coroutines to make call/cc doable 04:17:32 (define counter1 (make-counter)) (define counter2 (make-counter)) 04:17:35 :) 04:17:36 et voilà. 04:17:55 Axioplase_: I thought I had tried that ... 04:18:18 You obviously did not :) 04:18:32 Axioplase_: yes I tried half of that :) unfortunately only the second half :( 04:18:42 trying that now... 04:19:08 https://gist.github.com/772350 anyone familiar in gambit wanna help with the error at the bottom?:) 04:19:36 rien: and please, use symbols for message, unless you really need strings, which I doubt 04:19:58 Axioplase_: ok, I just hadn't come across symbols yet. are they :symbols or symbols: ? 04:20:29 (case msg ((inc) ...) ((dec) ...)) (else ...)) And you do (my-counter 'inc) or (my-counter 'dec) 04:20:48 Symbols are not keywords. No colon. 04:20:48 those aren't symbols :P they're just suspended 04:20:52 oh 04:20:57 rien: You seem to have a lot of symbols in your program for someone who hasn't come across symbols :P 04:21:11 *rien* looks harder 04:21:24 I thought we were talking about keywords 04:21:31 so a symbol is a suspended form? 04:21:40 em [~emma@unaffiliated/emma] has joined #scheme 04:21:45 a what? 04:21:59 lewis1711: works here. 04:22:48 -!- didi [~user@unaffiliated/didi/x-1022147] has quit [Ping timeout: 240 seconds] 04:22:49 Axioplase_: could it be a compilation thing? it only started happening once i compiled, but i don't get how that'd effect load 04:23:12 drdo: when you do '(1 2) you're suspending evaluation of that form, right? 04:23:14 didi [~user@unaffiliated/didi/x-1022147] has joined #scheme 04:23:34 lewis1711: haa. 04:24:04 rien: no, it just means "don't evaluate this" 04:24:21 Nisstyre65 [~nisstyre@infocalypse-net.info] has joined #scheme 04:24:26 kittens [~eric@7.80.244.66.jest.smithvilledigital.net] has joined #scheme 04:24:42 drdo: which is suspension because it can be evaluated later, no? 04:25:09 Whatever floats your boat 04:25:21 -!- kittens [~eric@7.80.244.66.jest.smithvilledigital.net] has quit [Client Quit] 04:26:14 rien: "suspension" is not a technical term. Don't use it. 04:26:22 erjiang [~eric@7.80.244.66.jest.smithvilledigital.net] has joined #scheme 04:26:31 Axioplase_: what's better? 04:26:39 -!- erjiang [~eric@7.80.244.66.jest.smithvilledigital.net] has quit [Client Quit] 04:26:46 thunk? 04:26:50 as far as symbols are concerned, "symbol" 04:27:03 Axioplase_: haa? you laugh at me?:/ 04:27:07 ano no. A thunk is a term of the form (lambda () ...) 04:27:21 erjiang [~eric@7.80.244.66.jest.smithvilledigital.net] has joined #scheme 04:27:41 rien: '(1 2) is just a list 04:27:47 lewis1711: "haa" as in "you should've said that 2 hours ago, because we don't have superpowers that let us guess what you did to get the error" 04:28:28 -!- em [~emma@unaffiliated/emma] has quit [Quit: Smile! ] 04:28:30 Axioplase_: Suspension isn't a technical term? Try telling SRFI 41 that. :-P 04:28:57 em [~emma@unaffiliated/emma] has joined #scheme 04:29:05 Axioplase_: I didn't have the error two hours ago:P but alright, i'll get rid of the object files 04:29:47 lewis1711: I mean "tell us how to produce the error, don't make us guess." You gave that information too too late 04:30:01 Axioplase_: that better? http://paste.lisp.org/display/118474#1 04:31:22 lewis1711: I don't know why it fails. All I know is that it's because of "LOAD". Ask on the mailing list, it might be a bug. 04:31:27 rien: That's some pretty awkward style 04:31:52 the code isn't idiomatic you say? 04:32:50 What's the point of that last line with parenthesis only? 04:33:08 that's a mistake 04:33:14 but other than that? 04:33:45 rien: yes, it's better. 04:34:02 -!- bgs100 [~ian@unaffiliated/bgs100] has quit [Quit: nighty night] 04:34:10 rien: looks reasonable. 04:34:11 Axioplase_: thanks for the tips 04:34:19 thanks guys :) 04:34:27 Although I suspect it'd be more useful if the 'p message simply -returned- the value, rather than printing it 04:34:31 (define (make-counter) (lambda (msg) ...)) is easier to read though 04:34:40 -!- leppie [~lolcow@196-210-245-178.dynamic.isadsl.co.za] has quit [Read error: Connection reset by peer] 04:34:50 offby1: oh yes, of course :) I believe in being side-effect free too :) I was just playing with this 04:34:58 to draw parallels between Lua and Scheme 04:35:06 It's also easier if you put the let in a new line 04:35:33 Axioplase_: but don't I have to have the let over the lambda to create the closure? 04:35:39 mwolfe [~michael@cpe-67-49-72-40.socal.res.rr.com] has joined #scheme 04:36:13 rien: He just made a mistake 04:36:26 -!- bitweiler [~bitweiler@adsl-99-58-93-196.dsl.stl2mo.sbcglobal.net] has quit [Ping timeout: 250 seconds] 04:36:39 rien: good man :) 04:36:39 He just meant that (define (foo bar) ...) is easier to read than (define foo (lambda (bar) ...)) 04:36:41 yes, let in a new line, you're right 04:36:58 oh yeah 04:37:43 -!- erjiang [~eric@7.80.244.66.jest.smithvilledigital.net] has quit [Quit: ttfn] 04:39:18 rien: your messages seem like they're good candidates for symbols: 'inc 'dec 'p ... 04:39:33 groovy2shoes: read further down 04:39:35 :) 04:39:38 hehe 04:40:03 d'oh... :) 04:40:48 -!- Nisstyre65 is now known as nisstyre 04:41:32 better now: http://paste.lisp.org/display/118474#2 04:42:30 yes, that's as good as it gets 04:42:58 josephholsten [~josephhol@ip70-185-215-221.ok.ok.cox.net] has joined #scheme 04:43:20 leppie [~lolcow@196-210-245-178.dynamic.isadsl.co.za] has joined #scheme 04:43:36 cool 04:49:01 -!- offby1 [~user@pdpc/supporter/monthlybyte/offby1] has quit [Ping timeout: 276 seconds] 04:49:27 Well, you might want an "else" case 04:49:50 So that your system does not crash when it receives an unexpected message 04:53:23 I love that in Chicken, at a high enough optimisation level, many of the error conditions in Scheme turn into undefined behaviour. :-P 04:53:35 (Re "so that your system does not crash") 04:54:43 e.g., calling functions with the wrong number of arguments, or calling car/cdr on non-pairs, or ... 04:54:51 haha 04:54:58 sounds crazy:) 04:55:24 cky: Only makes sense 04:55:34 Yes...since Chicken compiles to C, and with high optimisation levels Chicken strips out most of the sanity checks, then if you do do insane things, you run into nasal demon territory. 04:55:39 drdo: Indeed. 04:56:36 Axioplase_: yes yes 04:59:01 -!- groovy2shoes [~guv@unaffiliated/groovebot] has quit [Read error: Connection reset by peer] 05:00:04 groovy2shoes [~guv@wvc32564rh.rh.ncsu.edu] has joined #scheme 05:00:04 -!- groovy2shoes [~guv@wvc32564rh.rh.ncsu.edu] has quit [Changing host] 05:00:04 groovy2shoes [~guv@unaffiliated/groovebot] has joined #scheme 05:01:41 -!- homie` [~levgue@xdsl-84-44-176-140.netcologne.de] has quit [Read error: Operation timed out] 05:01:49 homie`` [~levgue@xdsl-78-35-181-11.netcologne.de] has joined #scheme 05:01:54 wbooze`` [~levgue@xdsl-78-35-181-11.netcologne.de] has joined #scheme 05:04:07 -!- wbooze` [~levgue@xdsl-84-44-176-140.netcologne.de] has quit [Ping timeout: 240 seconds] 05:19:07 -!- groovy2shoes [~guv@unaffiliated/groovebot] has quit [Read error: Connection reset by peer] 05:20:09 groovy2shoes [~guv@wvc32564rh.rh.ncsu.edu] has joined #scheme 05:20:09 -!- groovy2shoes [~guv@wvc32564rh.rh.ncsu.edu] has quit [Changing host] 05:20:09 groovy2shoes [~guv@unaffiliated/groovebot] has joined #scheme 05:20:21 -!- groovy2shoes [~guv@unaffiliated/groovebot] has quit [Client Quit] 05:35:46 -!- StephenFalken [email@89-180-232-197.net.novis.pt] has quit [Remote host closed the connection] 05:36:14 StephenFalken [email@2001:470:1f14:135b::2] has joined #scheme 05:39:07 -!- saccade [~saccade@209-6-54-113.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has quit [Quit: This computer has gone to sleep] 05:39:37 saccade [~saccade@209-6-54-113.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 05:42:22 -!- mooglenorph [~marco@70-90-96-161-ma-ne.hfc.comcastbusiness.net] has quit [Quit: Lost terminal] 05:43:43 -!- mwolfe [~michael@cpe-67-49-72-40.socal.res.rr.com] has quit [Remote host closed the connection] 05:44:35 -!- drdo [~user@91.205.108.93.rev.vodafone.pt] has quit [Ping timeout: 240 seconds] 05:47:28 dskippy [~dskippy@209-6-46-202.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 05:50:04 kniu [~kniu@DOHOHO.RES.CMU.EDU] has joined #scheme 05:52:51 -!- phao [~phao@189.107.215.72] has quit [Quit: Leaving] 05:56:37 http://paste.pocoo.org/show/318023/ line 23 seems to get reached no matter what arguments the function recieved. is there something quite obvious i am doing wriong here? 06:01:54 What's an example of something you're passing in that shouldn't? 06:02:29 dskippy: (define x (object '( ('public 2 1)))) 06:03:07 it will even print out (car x) as 'public 06:03:32 lewis1711: Your public is over-quoted. 06:03:42 It should be public, not 'public. 06:03:43 (eqv? (car '('private)) 'private) 06:03:59 Exactly. 06:04:13 you clever cookies:) thanks 06:04:21 You're welcome. 06:04:21 :-P 06:04:48 -!- josephholsten [~josephhol@ip70-185-215-221.ok.ok.cox.net] has quit [Quit: josephholsten] 06:04:58 pavelludiq [57f63ac1@gateway/web/freenode/ip.87.246.58.193] has joined #scheme 06:16:15 -!- DrDuck [~duck@216.186.151.63] has quit [Ping timeout: 240 seconds] 06:19:39 rudybot: (define l '(1 2 3)) 06:19:39 lewis1711: your sandbox is ready 06:19:39 lewis1711: Done. 06:19:47 rudybot: (car l) 06:19:48 lewis1711: ; Value: 1 06:19:57 rudybot: (define define define) 06:19:57 jonrafkind: your sandbox is ready 06:19:57 jonrafkind: error: eval:1:15: define: not allowed in an expression context in: define 06:20:01 rudybot: (cddr l) 06:20:01 lewis1711: ; Value: (3) 06:20:29 why does car give me an element, but cddr give me a list? 06:20:42 a list is an element and a list 06:20:50 car gives you the element, cdr gives you the list 06:21:31 so I would have to do 06:21:34 rudybot: (let ([x (list 1 2 3)]) (define yx (cons 'y x)) (values (car yx) (cdr yx)) 06:21:35 jonrafkind: error: eval:1:0: read: expected a `)' to close `(' 06:21:37 rudybot: (let ([x (list 1 2 3)]) (define yx (cons 'y x)) (values (car yx) (cdr yx))) 06:21:37 jonrafkind: ; Value: y 06:21:38 jonrafkind: ; Value#2: (1 2 3) 06:21:54 rudybot: (caddr l) 06:21:54 lewis1711: ; Value: 3 06:21:55 you want to get like the 2nd element or something? 06:22:00 yeah 06:22:16 what scheme system are you using? i would suggest not using the cddaradradr things 06:22:23 gambit 06:22:23 better names are `first', `second', `third', etc 06:22:25 ok 06:22:28 -!- Hal9k [~Lernaean@unaffiliated/kusanagi] has quit [Ping timeout: 276 seconds] 06:22:29 or you can define those yourself 06:22:35 (third l) 06:22:37 (define first car) (define second cadr) 06:22:41 rudybot: (third l) 06:22:41 lewis1711: ; Value: 3 06:22:48 racket has third which is why that works 06:22:51 i dont know if gambit has it 06:23:10 it does not 06:26:37 why recommend against it? just hard to read? 06:28:09 -!- bzzbzz [~franco@modemcable240.34-83-70.mc.videotron.ca] has quit [Quit: leaving] 06:29:10 didn't you just have a problem using it? 06:29:32 lol 06:29:35 touche:P 06:29:39 I am a noob however 06:29:42 how many milliseconds does it take you to know what cadddadaddr does 06:30:14 hehe 06:30:20 yeah, but I want to feel like a leet LISP hacker. and typing stuff like caddadaddadr makes me 1337, doesn't it? 06:30:35 Hal9k [~Lernaean@24-107-60-232.dhcp.stls.mo.charter.com] has joined #scheme 06:30:35 -!- Hal9k [~Lernaean@24-107-60-232.dhcp.stls.mo.charter.com] has quit [Changing host] 06:30:35 Hal9k [~Lernaean@unaffiliated/kusanagi] has joined #scheme 06:30:37 I feel like Eric Raymond is giving me the thumbs up whenever i do it 06:30:58 car/cdr is a complete embarassment 06:31:14 You can feel "1337" only once at (define really-large-numeral caddadaddadr) :-) 06:31:44 -!- Hal9k [~Lernaean@unaffiliated/kusanagi] has quit [Disconnected by services] 06:31:50 Hal9k- [~Lernaean@24-107-60-232.dhcp.stls.mo.charter.com] has joined #scheme 06:32:07 s/really-large-numeral/really-large-ordinal/ 06:32:32 i just list-ref 06:32:36 *I just used list-ref 06:36:00 -!- parcs [~patrick@ool-45741d7d.dyn.optonline.net] has quit [Ping timeout: 240 seconds] 06:36:37 -!- dskippy [~dskippy@209-6-46-202.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has quit [Quit: Leaving.] 06:37:47 parcs [~patrick@ool-45741d7d.dyn.optonline.net] has joined #scheme 06:38:24 -!- Hal9k- [~Lernaean@24-107-60-232.dhcp.stls.mo.charter.com] has quit [Ping timeout: 240 seconds] 06:44:12 Hal9k [~Lernaean@24-107-60-232.dhcp.stls.mo.charter.com] has joined #scheme 06:44:12 -!- Hal9k [~Lernaean@24-107-60-232.dhcp.stls.mo.charter.com] has quit [Changing host] 06:44:12 Hal9k [~Lernaean@unaffiliated/kusanagi] has joined #scheme 06:44:25 josephholsten [~josephhol@ip70-189-106-111.ok.ok.cox.net] has joined #scheme 06:44:27 -!- josephholsten [~josephhol@ip70-189-106-111.ok.ok.cox.net] has quit [Client Quit] 06:49:52 -!- leppie [~lolcow@196-210-245-178.dynamic.isadsl.co.za] has quit [Read error: Connection reset by peer] 06:52:33 phao [~phao@189.107.215.72] has joined #scheme 06:54:34 sanduz2 [~sanduz2@75-149-186-118-Miami.hfc.comcastbusiness.net] has joined #scheme 06:57:22 leppie [~lolcow@196-210-245-178.dynamic.isadsl.co.za] has joined #scheme 06:58:32 lolcow [~lolcow@196-210-245-178.dynamic.isadsl.co.za] has joined #scheme 06:59:39 -!- lolcow [~lolcow@196-210-245-178.dynamic.isadsl.co.za] has quit [Read error: Connection reset by peer] 06:59:52 -!- leppie [~lolcow@196-210-245-178.dynamic.isadsl.co.za] has quit [Read error: Connection reset by peer] 07:06:58 rexim [~rexim@91.204.184.177] has joined #scheme 07:08:00 lewis1711: I found your bug with oop.scm 07:08:02 leppie [~lolcow@196-210-245-178.dynamic.isadsl.co.za] has joined #scheme 07:08:10 Axioplase_: really? 07:08:21 I just deleted my compiled files and it started working 07:08:26 lewis1711: instead of doing (load "typecheck"), pleas do (load "typecheck.scm") 07:08:34 ah 07:08:36 -!- leppie [~lolcow@196-210-245-178.dynamic.isadsl.co.za] has quit [Read error: Connection reset by peer] 07:10:23 dfhsd [~dfhsd@82-170-45-113.ip.telfort.nl] has joined #scheme 07:10:34 . 07:11:30 .. 07:11:37 ... 07:11:42 ...- 07:11:45 ...-- 07:11:47 ...--- 07:11:52 ...---... 07:11:57 morse ftw 07:12:01 ;_) 07:12:11 that ain't morse 07:12:20 njet 07:12:48 eta oesjibka ;_) 07:13:53 sOS 07:14:07 save Our Soles 07:15:26 lewis1711: and the bug is probably because it compiles typecheck, loads it, and tries to compile it again. For some reason. 07:15:36 eta nada :-))))))))))))))))))))))0 07:16:10 lewis1711: You may want "include" instead anyway. And ask on the mailing list, cause I really think it's weird. 07:16:53 I will do. though not right now, starting to get somewhere with my object system. sort of. 07:17:44 leppie [~lolcow@196-210-245-178.dynamic.isadsl.co.za] has joined #scheme 07:22:22 -!- leppie [~lolcow@196-210-245-178.dynamic.isadsl.co.za] has quit [Ping timeout: 265 seconds] 07:32:24 adu [~ajr@c-76-23-82-40.hsd1.in.comcast.net] has joined #scheme 07:33:47 rdd [~rdd@c83-250-48-164.bredband.comhem.se] has joined #scheme 07:37:07 -!- jonrafkind [~jon@jonr5.dsl.xmission.com] has quit [Ping timeout: 240 seconds] 07:38:58 leppie [~lolcow@196-210-245-178.dynamic.isadsl.co.za] has joined #scheme 07:40:40 http://paste.lisp.org/display/118480 on the very last line, it just returns the list of the function itself. how would I actually send something that *preforms* the function? 07:43:12 TheRebutler [~TheRebutl@cpe-76-175-192-194.socal.res.rr.com] has joined #scheme 07:44:29 -!- leppie [~lolcow@196-210-245-178.dynamic.isadsl.co.za] has quit [Read error: Connection reset by peer] 07:44:30 -!- rdd [~rdd@c83-250-48-164.bredband.comhem.se] has quit [Read error: Connection reset by peer] 07:45:53 leppie [~lolcow@196-210-245-178.dynamic.isadsl.co.za] has joined #scheme 07:45:54 lewis1711: I'd probably suggest making a third category (alongside public and private) called method. 07:46:48 lewis1711: You might consider that too much bother, though. In that case, check whether the result of table-ref is a procedure. 07:46:55 lewis1711: And if so, apply the args to it. 07:49:24 -!- leppie [~lolcow@196-210-245-178.dynamic.isadsl.co.za] has quit [Read error: Connection reset by peer] 07:52:02 hmm 07:52:14 sounds good (the latter suggestion) 07:53:18 :-) 07:57:18 if I made method a category, it would preclude the use of private methods, which can be quite helpful IME 07:57:22 leppie [~lolcow@196-210-245-178.dynamic.isadsl.co.za] has joined #scheme 08:01:48 -!- leppie [~lolcow@196-210-245-178.dynamic.isadsl.co.za] has quit [Read error: Connection reset by peer] 08:02:12 notsonerdysunny [~chatzilla@121.243.182.185] has joined #scheme 08:02:21 -!- notsonerdysunny [~chatzilla@121.243.182.185] has left #scheme 08:05:31 cky: so do they actually teach scheme at U of A, or what? 08:06:17 leppie [~lolcow@196-210-245-178.dynamic.isadsl.co.za] has joined #scheme 08:07:53 lewis1711: No, at least not in the CS courses I took. 08:15:43 -!- timj_ [~timj@e176193017.adsl.alicedsl.de] has quit [Ping timeout: 276 seconds] 08:15:43 -!- leppie [~lolcow@196-210-245-178.dynamic.isadsl.co.za] has quit [Read error: Connection reset by peer] 08:23:10 leppie [~lolcow@196-210-245-178.dynamic.isadsl.co.za] has joined #scheme 08:24:04 -!- kilimanjaro [~kilimanja@unaffiliated/kilimanjaro] has quit [Ping timeout: 255 seconds] 08:27:03 timj_ [~timj@e176199223.adsl.alicedsl.de] has joined #scheme 08:27:26 -!- leppie [~lolcow@196-210-245-178.dynamic.isadsl.co.za] has quit [Read error: Connection reset by peer] 08:33:30 leppie [~lolcow@196-210-245-178.dynamic.isadsl.co.za] has joined #scheme 08:40:40 -!- leppie [~lolcow@196-210-245-178.dynamic.isadsl.co.za] has quit [Ping timeout: 265 seconds] 08:45:18 -!- TheRebutler [~TheRebutl@cpe-76-175-192-194.socal.res.rr.com] has quit [Remote host closed the connection] 08:47:06 leppie [~lolcow@196-210-245-178.dynamic.isadsl.co.za] has joined #scheme 08:51:33 -!- leppie [~lolcow@196-210-245-178.dynamic.isadsl.co.za] has quit [Read error: Connection reset by peer] 08:52:34 chylli [~lchangyin@119.181.66.75] has joined #scheme 08:56:46 levi [~user@c-174-52-219-147.hsd1.ut.comcast.net] has joined #scheme 08:57:59 leppie [~lolcow@196-210-245-178.dynamic.isadsl.co.za] has joined #scheme 09:03:01 -!- leppie [~lolcow@196-210-245-178.dynamic.isadsl.co.za] has quit [Ping timeout: 276 seconds] 09:05:42 -!- adu [~ajr@c-76-23-82-40.hsd1.in.comcast.net] has quit [Quit: adu] 09:07:48 leppie [~lolcow@196-210-245-178.dynamic.isadsl.co.za] has joined #scheme 09:11:54 -!- leppie [~lolcow@196-210-245-178.dynamic.isadsl.co.za] has quit [Read error: Connection reset by peer] 09:13:16 kilimanjaro [~kilimanja@unaffiliated/kilimanjaro] has joined #scheme 09:17:44 leppie [~lolcow@196-210-245-178.dynamic.isadsl.co.za] has joined #scheme 09:18:56 drdo [~user@91.205.108.93.rev.vodafone.pt] has joined #scheme 09:19:04 -!- MapMan [mapman@2001:470:1f0a:120e::fe] has quit [Read error: Operation timed out] 09:19:23 -!- yorick [yorick@gateway/shell/shellium.org/x-rftwyutjzswymmxa] has quit [Read error: Operation timed out] 09:19:40 -!- phao [~phao@189.107.215.72] has quit [Quit: Leaving] 09:20:05 yorick [yorick@gateway/shell/shellium.org/x-trswaiyiaguohzxz] has joined #scheme 09:20:10 MapMan [mapman@2001:470:1f0a:120e::fe] has joined #scheme 09:23:36 -!- dfeuer [~dfeuer@wikimedia/Dfeuer] has quit [Ping timeout: 240 seconds] 09:25:26 dfeuer [~dfeuer@pool-74-96-191-205.washdc.fios.verizon.net] has joined #scheme 09:25:26 -!- dfeuer [~dfeuer@pool-74-96-191-205.washdc.fios.verizon.net] has quit [Changing host] 09:25:26 dfeuer [~dfeuer@wikimedia/Dfeuer] has joined #scheme 09:27:50 -!- jao [~user@pdpc/supporter/professional/jao] has quit [Ping timeout: 240 seconds] 09:31:16 -!- rexim [~rexim@91.204.184.177] has quit [Quit:    ] 09:32:07 pdelgallego [~pdelgalle@1385159852.dhcp.dbnet.dk] has joined #scheme 09:35:43 rudybot: (define syntax foo (syntax-rules() [(a b) (b a)])) 09:35:43 lewis1711: error: eval:1:0: define: bad syntax (multiple expressions after identifier) in: (define syntax foo (syntax-rules () ((a b) (b a)))) 09:37:36 why is [(a b) (b a)] not a valid pattern/template pair, I wonder 09:39:35 -!- drdo [~user@91.205.108.93.rev.vodafone.pt] has quit [Ping timeout: 240 seconds] 09:40:26 lewis1711: do you *really* understand what you wrote? 09:41:36 shit no 09:41:42 jao [~user@82.Red-79-154-129.dynamicIP.rima-tde.net] has joined #scheme 09:41:42 -!- jao [~user@82.Red-79-154-129.dynamicIP.rima-tde.net] has quit [Changing host] 09:41:42 jao [~user@pdpc/supporter/professional/jao] has joined #scheme 09:42:04 here's a hint: 09:42:09 rudybot: (define foo 1 2) 09:42:09 Axioplase_: your sandbox is ready 09:42:09 Axioplase_: error: eval:1:0: define: bad syntax (multiple expressions after identifier) in: (define foo 1 2) 09:42:11 none the bits on macros i've read made any sense. I thought maybe they were like pattern matches 09:42:24 in ocam 09:42:26 *ocaml 09:42:36 they are pattern matches 09:42:38 you did not even try to define a macro in the above code 09:42:46 your problem starts earlier 09:42:47 lewis1711: read better my example 09:43:59 -!- leppie [~lolcow@196-210-245-178.dynamic.isadsl.co.za] has quit [Read error: Connection reset by peer] 09:44:06 that's how it starts off in the book 09:44:21 1/ I have no idea what book you're reading 09:44:27 define-syntax it is a type 09:44:29 Your photocopier needs new ink! 09:44:29 TSPL 09:44:30 2/ I'm sure you're wrong and didn't read properly 09:44:31 typo 09:45:14 lewis1711: READ what I told 3 minutes ago rudybot to eval. 09:45:27 yeah I did 09:45:32 you tried to bind boht 1 and 2 to foo 09:45:41 it was some clue for me 09:45:44 somehow:P 09:45:46 and what did *you* try to do? 09:46:05 10 minutes ago. What did you tell rudybot to do? 09:46:18 make a macro called foo 09:46:24 with a pattern template pair 09:46:29 no 09:46:35 no, you did clearly not. 09:47:06 compare my code to yours. 09:47:42 I honestly do not understand what you are getting at 09:47:59 my code has the *same* error as yours. 09:48:07 yes I cottoned on to that 09:48:10 *maybe* you did the *same* error. 09:48:15 and I can't seem to find it 09:48:19 lewis1711: the form for defining a syntax transformer is called define-syntax 09:48:29 rudybot: (define syntax 1 2) 09:48:30 Axioplase_: error: eval:1:0: define: bad syntax (multiple expressions after identifier) in: (define syntax 1 2) 09:48:33 lewis1711: you forgot the '-' 09:48:34 look there's no need to be patronising:P I am not good at scheme does not mean I'm a moron 09:48:51 lewis1711: it's not related to scheme. Related to reading what you write. 09:49:41 If you wrote "A" don't claim you wrote "B". I'm telling you to see that you did not write "B". 09:50:15 ok 09:50:28 C-Keen: ah 09:50:58 qhe [~qhe2@134.134.139.72] has joined #scheme 09:51:25 rudybot: (define-syntax foo (syntax-rules [(a b) (b a)])) 09:51:25 lewis1711: error: eval:1:19: syntax-rules: bad syntax in: (syntax-rules ((a b) (b a))) 09:51:52 Now, the problem is, you did not read how define-syntax works. 09:52:03 leppie [~lolcow@196-210-245-178.dynamic.isadsl.co.za] has joined #scheme 09:52:05 i read. i never understood it 09:52:05 or syntax-rules actually. 09:52:28 Look at *any* example, you'll see the structure is different from yours. 09:52:46 yes 09:53:14 I am on a quest Axioplase_ 09:53:31 It's almost as if you tried to write "(cons a)" while all the code around clearly shows that CONS needs two arguments. 09:54:07 syntax-rules is a function, is has parameters. And those parameters have a certain structure/look 09:54:43 is this just the way you talk, or am I giving you a case of internet rage? 09:55:07 I'm trying to get you understand what you do, not just write expressions in random order. 09:55:07 well, syntax-rules is not a function because it does not evaluate its arguments 09:55:22 -!- xwl_ [~wixu@nat/nokia/x-cophmrnshdoordqc] has quit [Ping timeout: 255 seconds] 09:55:25 (and no, I'm not all red, shouting at my screen :P) 09:55:37 Axioplase_: ok, thought I'd check, y'know how text is 09:55:38 aoh: indeed 09:55:44 -!- leppie [~lolcow@196-210-245-178.dynamic.isadsl.co.za] has quit [Read error: Connection reset by peer] 09:55:44 lewis1711: I understand 09:56:05 TSPL 8.2 says (syntax-rules (literal ...) clause ...) 09:56:05 alright, well i have TSPL here. bits i am not understanding 09:56:07 at least i used to confuse some of the special forms and functions earlier when learning scheme 09:56:20 pattern/template pairs 09:56:31 I don't see your code fitting this signature/interface 09:56:51 _ is a wild card, right? 09:56:55 except it's a convention 09:56:59 which is just confusing 09:57:03 in ocaml, it's actually a wild card 09:57:12 At least, yours is rather (syntax-rules foo) instead of (syntax-rules foo bar) 09:57:17 also, I don't need a wildcard for a function that swaps 09:57:29 or a pattern match that swaps 09:57:35 and no, it's not a wild card. It's not related to Ocaml's pattern matching. 09:57:36 that's all i am doing, right? pattern matching? 09:57:52 Well, yes and no. 09:58:08 "a sequence of rules, or pattern/template pairs" 09:58:13 lewis1711: the first token is always the first of your macro form which is the macro name itself, hence lots of patterns start with _ 09:58:47 -!- yorick [yorick@gateway/shell/shellium.org/x-trswaiyiaguohzxz] has quit [Read error: Operation timed out] 09:59:03 The thing is that it has nothing to do with Ocaml. You're defining a *new syntax*, not trying to match a value. 09:59:18 right 10:00:08 what is a "structured expression" ? 10:00:30 not a random expression 10:00:33 "The pattern should always be a structured expression whose first element is an underscore" 10:00:34 ok 10:01:06 C-Keen: that hence doesn't make sense. why hence _? I am not defining a macro called _ :/ 10:01:24 lewis1711: http://www.shido.info/lisp/scheme_syntax_e.html 10:01:34 lewis1711: yes, you (almost) are. 10:01:52 lewis1711: if you call your makro swap and it has the form (swap something else) you need to match this 10:02:01 You just have no clue what "_" means here :) 10:02:14 C-Keen: right 10:02:23 lewis1711: so the match has to be (name a b), but since you won't need name it is custom to use _ 10:02:25 Axioplase_: reading 10:03:17 lewis1711: you can use whatever you like but it makes it easier to read for others 10:03:21 C-Keen: why won't I need name? 10:03:23 including yourself 10:03:41 the car of the pattern is just assumed to be the name of the macro, no matter what it is? 10:03:43 lewis1711: because that will refer to 'swap'. is there anything you wanto to do with it? 10:03:47 leppie [~lolcow@196-210-245-178.dynamic.isadsl.co.za] has joined #scheme 10:04:13 right, so I'd be trying to refer to my macro before it has been defined? 10:04:14 it is not assumed. it *is* the name of the macro 10:04:23 you are matching the full form 10:04:28 not just some arguments 10:04:48 lewis1711: you're extending the language. You must tell scheme that whenever it *reads* (from source code) your macro's name, it will have to do magic. 10:05:07 yorick [yorick@gateway/shell/shellium.org/x-elvwvlusqnnipvjc] has joined #scheme 10:05:15 -!- kilimanjaro [~kilimanja@unaffiliated/kilimanjaro] has quit [Ping timeout: 265 seconds] 10:06:01 And there, you tell the language that there may be several distinct ways to use your new syntax. 10:06:04 rudybot: (define-syntax nil! (syntax-rules () [ (_ x) (set! x '())])) 10:06:04 lewis1711: Done. 10:06:15 rudybot: (nil! x) 10:06:15 lewis1711: error: set!: cannot set undefined variable: x 10:06:30 rudybot: (define x 3) (nil! x) 10:06:30 lewis1711: Done. 10:06:35 rudybot: x 10:06:35 lewis1711: ; Value: () 10:06:37 hmm 10:07:31 that is a great link btw Axioplase_ 10:09:06 rudybot: (define-syntax foo (syntax-rules () ((_) (list 'macro-was-used-alone)) ((_ bar) (list 'macro-was-used-with-one bar)) ((_ x y ...) (list 'macro-was-used-with-many x y ...)))) 10:09:06 Axioplase_: Done. 10:09:23 rudybot: (list (foo) (foo 1) (foo 1 2) (foo 1 2 3)) 10:09:23 Axioplase_: ; Value: ((macro-was-used-alone) (macro-was-used-with-one 1) (macro-was-used-with-many 1 2) (macro-was-used-with-many 1 2 3)) 10:09:41 put the code in your editor, and indent to see what it does 10:10:38 it is the same thing as (define-syntax foo (syntax-rules () ((foo) (list 'macro-was-used-alone)) ((foo bar) (list 'macro-was-used-with-one bar)) ((foo x y ...) (list 'macro-was-used-with-many x y ...)))) 10:11:04 but when "foo" is a 100 characters-long name, it's a pain to write. So, we use "_" instead. 10:13:28 -!- leppie [~lolcow@196-210-245-178.dynamic.isadsl.co.za] has quit [Ping timeout: 265 seconds] 10:14:37 Axioplase_: I get an ill-formed expression with that code (in gambit scheme) 10:14:54 though i can sort of see what it wouild do 10:14:56 or what it does 10:14:58 oh, you used it there 10:15:00 :) 10:20:33 rudybot: (define-syntax same (syntax-rules () ((same a a) #t) ((same a b) #f))) 10:20:34 aoh: your sandbox is ready 10:20:34 aoh: error: eval:1:46: syntax-rules: variable used twice in pattern at: a in: (_ a a) 10:20:59 many systems allow that, but i'm not sure how standard it is 10:21:15 one would think that the matchin is just one-way unification 10:22:51 alaricsp [~alaric@relief.warhead.org.uk] has joined #scheme 10:23:02 -!- lewis1711 [~lewis@125-239-255-244.jetstream.xtra.co.nz] has quit [Quit: Leaving.] 10:23:22 rudybot: (define-syntax last (syntax-rules () ((last a ... n) n))) 10:23:23 aoh: Done. 10:23:30 rudybot: (last 1 2 3 4) 10:23:30 aoh: ; Value: 4 10:25:16 gravicappa [~gravicapp@ppp85-140-65-205.pppoe.mtu-net.ru] has joined #scheme 10:28:41 -!- Caleb-- [thedude@bzq-109-65-199-183.red.bezeqint.net] has quit [] 10:28:44 HG` [~HG@xdsl-92-252-101-121.dip.osnanet.de] has joined #scheme 10:31:06 Caleb-- [thedude@109.65.199.183] has joined #scheme 10:34:41 rudybot: (define-syntax pick (syntax-rules () ((last a ... n 42 b c ... 43 c d ...) n))) 10:34:41 aoh: error: eval:1:59: syntax-rules: misplaced ellipses in pattern (follows other ellipses) at: ... in: (_ a ... n 42 b c ... 43 c d ...) 10:35:05 ok, and left last in there :/ 10:42:12 He left 10:42:55 -!- copumpkin [~pumpkin@unaffiliated/pumpkingod] has quit [Ping timeout: 240 seconds] 10:43:23 In gambit, you need to (load "~lib/define-syntax.scm") 10:43:31 copumpkin [~pumpkin@209-6-232-56.c3-0.sbo-ubr1.sbo.ma.cable.rcn.com] has joined #scheme 10:43:33 -!- copumpkin [~pumpkin@209-6-232-56.c3-0.sbo-ubr1.sbo.ma.cable.rcn.com] has quit [Changing host] 10:43:33 copumpkin [~pumpkin@unaffiliated/pumpkingod] has joined #scheme 10:44:05 In gambit, you need to (load "~~lib/syntax-case.scm") 10:46:12 schmir [~schmir@mail.brainbot.com] has joined #scheme 10:49:30 -!- vu3rdd [~vu3rdd@fsf/member/vu3rdd] has quit [Remote host closed the connection] 10:58:03 -!- sanduz2 [~sanduz2@75-149-186-118-Miami.hfc.comcastbusiness.net] has quit [Quit: Leaving] 11:13:05 rexim [~rexim@91.204.184.177] has joined #scheme 11:13:17 f8l [~f8l@d77-204.icpnet.pl] has joined #scheme 11:22:13 lewis1711 [~lewis@125-239-255-244.jetstream.xtra.co.nz] has joined #scheme 11:24:30 -!- araujo [~araujo@gentoo/developer/araujo] has quit [Quit: Leaving] 11:42:30 -!- f8l [~f8l@d77-204.icpnet.pl] has quit [Quit: Good night (UGT).] 11:53:09 -!- pygospa [~pygospa@kiel-d9bfc5d7.pool.mediaWays.net] has quit [Disconnected by services] 11:53:18 pygospa [~pygospa@kiel-d9bfd1e5.pool.mediaWays.net] has joined #scheme 12:00:18 tupi [~david@186.205.37.15] has joined #scheme 12:12:18 araujo [~araujo@gentoo/developer/araujo] has joined #scheme 12:18:29 -!- dfhsd [~dfhsd@82-170-45-113.ip.telfort.nl] has quit [Quit: Leaving] 12:21:58 -!- pavelludiq [57f63ac1@gateway/web/freenode/ip.87.246.58.193] has quit [Ping timeout: 265 seconds] 12:23:49 -!- _danb_ [~user@124-149-166-62.dyn.iinet.net.au] has quit [Ping timeout: 246 seconds] 12:24:54 DrDuck [~duck@216.186.151.63] has joined #scheme 12:47:16 nilg` [~user@77.70.2.229] has joined #scheme 12:51:10 pavelludiq [57f63ac1@gateway/web/freenode/ip.87.246.58.193] has joined #scheme 12:51:25 masm [~masm@2.80.144.49] has joined #scheme 12:53:37 leppie [~lolcow@196-210-177-90.dynamic.isadsl.co.za] has joined #scheme 12:59:42 -!- leppie [~lolcow@196-210-177-90.dynamic.isadsl.co.za] has quit [Read error: Connection reset by peer] 13:10:03 leppie [~lolcow@196-210-177-90.dynamic.isadsl.co.za] has joined #scheme 13:15:13 -!- leppie [~lolcow@196-210-177-90.dynamic.isadsl.co.za] has quit [Ping timeout: 276 seconds] 13:15:18 zevarito [~zevarito@r186-48-212-101.dialup.adsl.anteldata.net.uy] has joined #scheme 13:16:36 zevarito_ [~zevarito@r186-48-238-38.dialup.adsl.anteldata.net.uy] has joined #scheme 13:16:36 -!- zevarito [~zevarito@r186-48-212-101.dialup.adsl.anteldata.net.uy] has quit [Read error: Connection reset by peer] 13:19:16 -!- masm [~masm@2.80.144.49] has quit [Remote host closed the connection] 13:20:10 leppie [~lolcow@196-210-162-106.dynamic.isadsl.co.za] has joined #scheme 13:20:59 masm [~masm@bl19-144-49.dsl.telepac.pt] has joined #scheme 13:27:55 -!- leppie [~lolcow@196-210-162-106.dynamic.isadsl.co.za] has quit [Read error: Connection reset by peer] 13:35:32 leppie [~lolcow@196-210-162-106.dynamic.isadsl.co.za] has joined #scheme 13:39:20 rien_ [~unkanon@static-71-249-187-201.nycmny.east.verizon.net] has joined #scheme 13:44:21 unkanon2 [~unkanon@static-71-249-187-201.nycmny.east.verizon.net] has joined #scheme 13:44:25 -!- leppie [~lolcow@196-210-162-106.dynamic.isadsl.co.za] has quit [Read error: Connection reset by peer] 13:46:24 -!- rien_ [~unkanon@static-71-249-187-201.nycmny.east.verizon.net] has quit [Ping timeout: 240 seconds] 13:51:42 leppie [~lolcow@196-210-162-106.dynamic.isadsl.co.za] has joined #scheme 13:54:03 -!- leppie [~lolcow@196-210-162-106.dynamic.isadsl.co.za] has quit [Read error: Connection reset by peer] 13:54:48 -!- unkanon2 [~unkanon@static-71-249-187-201.nycmny.east.verizon.net] has quit [Read error: Connection reset by peer] 13:55:06 rien_ [~unkanon@static-71-249-187-201.nycmny.east.verizon.net] has joined #scheme 14:02:30 -!- lewis1711 [~lewis@125-239-255-244.jetstream.xtra.co.nz] has left #scheme 14:02:36 leppie [~lolcow@196-210-162-106.dynamic.isadsl.co.za] has joined #scheme 14:09:14 karme [~user@stgt-5f70a7e1.pool.mediaWays.net] has joined #scheme 14:21:04 -!- kanru [~kanru@61-30-10-70.static.tfn.net.tw] has quit [Ping timeout: 246 seconds] 14:21:17 incubot [incubot@klutometis.wikitex.org] has joined #scheme 14:32:51 femtoo [~femto@95-89-196-150-dynip.superkabel.de] has joined #scheme 14:44:57 bgs100 [~ian@unaffiliated/bgs100] has joined #scheme 14:46:15 -!- rexim [~rexim@91.204.184.177] has quit [Remote host closed the connection] 14:57:32 unkanon2 [~unkanon@static-71-249-187-201.nycmny.east.verizon.net] has joined #scheme 14:59:10 -!- unkanon2 [~unkanon@static-71-249-187-201.nycmny.east.verizon.net] has quit [Read error: Connection reset by peer] 14:59:12 -!- samth_away is now known as samth 14:59:21 bweaver [~user@host-68-169-158-230.WISOLT2.epbfi.com] has joined #scheme 14:59:25 hkBst [~quassel@79.170.210.174] has joined #scheme 14:59:25 -!- hkBst [~quassel@79.170.210.174] has quit [Changing host] 14:59:25 hkBst [~quassel@gentoo/developer/hkbst] has joined #scheme 15:00:47 -!- rien_ [~unkanon@static-71-249-187-201.nycmny.east.verizon.net] has quit [Ping timeout: 240 seconds] 15:01:17 rien-work [~unkanon@static-71-249-187-201.nycmny.east.verizon.net] has joined #scheme 15:01:39 -!- copumpkin [~pumpkin@unaffiliated/pumpkingod] has quit [Quit: Computer has gone to sleep.] 15:05:46 Is there a way to make 'apply' not unroll a list of arguments and use it like an actual list? 15:07:20 As in, just calling a procedure? (f list) 15:08:01 Jafet: The thing is, I am running it using map. Let me explain it. 15:08:02 -!- rien-work is now known as rien_ 15:08:05 bitweiler [~bitweiler@99.40.239.167] has joined #scheme 15:08:49 didi: (apply f (list (map ...))) 15:09:32 (f (map ...)) 15:09:45 Hum... 15:10:45 I have a list of entries, and each entry is another list with a procedure as its car, like: '((foo, "foo")(bar,"bar")...'. I want to run each procedure of this list against another list. This is the way I'm doing it: (map (lambda (x) (apply (car x) another-list)) entries). 15:11:41 Hum... Actually, I think I'm doing it wrong. 15:11:52 Dang. 15:12:14 -!- dsmith [~dsmith@cpe-184-56-129-232.neo.res.rr.com] has quit [Ping timeout: 260 seconds] 15:12:31 there are no commas, right? 15:12:39 Haha. 15:12:40 Right. 15:12:51 that wasn't the problem though? 15:12:57 No. 15:13:01 It was just here. 15:13:06 did you fix it now? 15:13:13 The source is safe. 15:13:27 also you could use (map (lambda (a b) ...) list another-list) 15:14:13 C-Keen: The thing is, I don't want to break another-list into pieces. I want it all passed. 15:14:32 didi, since (car x) is the procedure, and a procedure call looks like this (f ...), then calling the procedure at (car x) should look like this ((car x) ...) 15:14:45 didi: stare at that until you get it. 15:14:57 Jafet: I'll try it. 15:15:25 didi: ah I see 15:16:27 Jafet: It still error, but it's more clean. Thank you. Now I think it has something to do with my own procedure. 15:16:33 aisa [~aisa@173-10-243-253-Albuquerque.hfc.comcastbusiness.net] has joined #scheme 15:18:12 And (caar '((foo))) isn't a procedure, it's a symbol. If you want to interpolate values into quoted forms, use backquote. 15:20:21 hmm I was trying to help but then I confused myself, why doesn't this work 15:20:37 rudybot: (map apply (list print print) (list 2 3)) 15:20:38 rien_: your sandbox is ready 15:20:38 rien_: error: apply: expects type as 2nd argument, given: 2; other arguments were: # 15:21:08 -!- twem2` [~tristan@puma-mxisp.mxtelecom.com] has quit [Remote host closed the connection] 15:21:09 in haskell I'd do it with zipWith ($) [list of functions] [list of arguments] 15:21:44 Hm, homework comes in pairs, now 15:21:47 isn't map zipWith in scheme (because it's variadic)? 15:22:01 rien_: (map (lambda (f x) (f x)) functions arguments) 15:22:02 I'm not doing homework... 15:22:05 rien: scheme's apply is not haskell's ($). 15:22:23 oh really? everybody at haskell kept saying it was like scheme's apply 15:22:24 rien_: apply does expect a proper list, map is not giving it one 15:22:32 In lisp, apply refers specifically to the companion procedure of eval 15:22:54 Jafet, i don't think that's right at all 15:23:16 rien_, the people "at haskell" are wrong -- they're related, but not the same 15:23:46 at #haskell I meant 15:24:06 rien_, if you're using racket, then you can use `call' from `unstable/function' -- that's the same as ($) 15:24:35 I'm using chicken, I'll just define a good name for (lambda (f x) (f x)) :) 15:24:37 Genosh [~Genosh@32.Red-81-36-108.dynamicIP.rima-tde.net] has joined #scheme 15:24:39 I need ($) 15:25:03 well, you really want (define (call f . x) (apply f x)) 15:25:29 copumpkin [~pumpkin@17.101.89.205] has joined #scheme 15:25:29 -!- copumpkin [~pumpkin@17.101.89.205] has quit [Changing host] 15:25:29 copumpkin [~pumpkin@unaffiliated/pumpkingod] has joined #scheme 15:26:23 didi: is this what you were trying to d? 15:26:25 do 15:26:29 rudybot: (map (lambda (f x) (f x)) (map car (list (list print 2) (list print 3))) (list 4 5)) 15:26:29 rien_: ; Value: (# #) 15:26:45 (it prints 4 and 5 in chicken) 15:26:49 incubot: (map (lambda (f x) (f x)) (map car (list (list print 2) (list print 3))) (list 4 5)) 15:26:50 (# #) 15:27:05 rien, that's the return value, not the output 15:27:12 right 15:29:34 rien_: Sorry, I didn't follow the discussion, but I'm still having problems with the call. It keeps shouting 'Wrong type to apply'. But that's OK. 15:29:49 didi: can you show an example of the lists? 15:29:55 rien_: Sure. 15:30:21 -!- pavelludiq [57f63ac1@gateway/web/freenode/ip.87.246.58.193] has left #scheme 15:33:38 rien_: Just one sec. paste.lisp seems to be having some difficult. 15:34:12 rien_: Here: http://paste.lisp.org/display/118491 15:34:12 it always does for me 15:34:14 Azuvix [~Azuvix@71-215-25-216.bois.qwest.net] has joined #scheme 15:34:15 ok 15:35:03 what result do you want to achieve? 15:35:44 -!- zevarito_ [~zevarito@r186-48-238-38.dialup.adsl.anteldata.net.uy] has quit [Remote host closed the connection] 15:36:35 rien_: A list of true and falses? 15:37:01 you can rewrite badge-first? like this: (define (badge-first? entries) (> (length entries) 0)) 15:37:05 no need for the if 15:37:15 rien_: Much nicer. 15:37:19 Thank you. 15:37:43 a list of true and falses... hmm 15:38:13 you want gen-badges to be the function that applies badge-first? to all elements of badge-list ? 15:40:07 rien_: gen-badges should run a list of procedures -- there's just 'badge-first? now -- against a list of entries. 15:40:14 -!- schmir [~schmir@mail.brainbot.com] has quit [Remote host closed the connection] 15:40:46 Each procedure will respond #t or #f, based on 'entries'. 15:40:50 ok 15:41:01 I don't get it. (map (lambda(x) ((car x) '((3 4)(3 8))) '((badge-first? "first.png" "Primerio"))) 15:41:09 that makes no sense at all 15:41:27 right, that's why we need to fix it :) 15:41:53 1. The badge-first? is not a function in the list 15:42:11 -> `((,badge-first? "foo" "bar")) 15:42:35 2. it does not map over the '((3 4) (3 8)) 15:42:58 3. but you do map over the '((badge-first?...) list 15:43:08 which makes no sense at all since you use the car onlz 15:43:11 timepilot [~timepilot@66.71.230.167] has joined #scheme 15:44:35 also the length test of you function amounts to null? 15:44:46 or better (not (null? list)) 15:45:58 C-Keen: 3. It should map over badge-list because I'm treating 'entries' like a single piece of data. 15:46:32 didi: can you write out all the function application you want as a result? that would be clearer 15:46:38 C-Keen: Nice, I'll change the length part. Thanks. 15:47:11 didi: but you need another map in the lambda then 15:48:16 (map (lambda (x) (map (cut (car x) <>) entries)) badge-list) 15:48:33 rien_: I'm generating them now. If the other members of 'badge-first?' are bothering, I say that lambda actually is going to load a gdk-pixbuf and return a list with this pixbuf and the second string. It's not there yet because I still don't have it. 15:50:26 hm 15:52:04 -!- copumpkin [~pumpkin@unaffiliated/pumpkingod] has quit [Ping timeout: 246 seconds] 15:54:53 Yay, it worked! 15:55:13 Thank you. 15:55:15 -!- pdelgallego [~pdelgalle@1385159852.dhcp.dbnet.dk] has quit [Ping timeout: 240 seconds] 15:55:50 great 15:56:34 pdelgallego [~pdelgalle@1385159852.dhcp.dbnet.dk] has joined #scheme 15:59:24 incubot: (define ($ f x) (f x)) (map $ (list sqrt sqrt) (list 4 64)) 15:59:25 (2.0 8.0) 15:59:27 :) 16:04:09 samth_ [~samth@nomad.ccs.neu.edu] has joined #scheme 16:04:24 copumpkin [~pumpkin@17.101.89.205] has joined #scheme 16:04:24 -!- copumpkin [~pumpkin@17.101.89.205] has quit [Changing host] 16:04:24 copumpkin [~pumpkin@unaffiliated/pumpkingod] has joined #scheme 16:04:50 rien_: in chicken scheme there is compose http://3e8.org/chickadee/data-structures/compose 16:05:26 -!- pdelgallego [~pdelgalle@1385159852.dhcp.dbnet.dk] has quit [Ping timeout: 240 seconds] 16:07:58 C-Keen: right, but compose is different from ($) 16:08:01 compose is (.) 16:08:06 pdelgallego [~pdelgalle@1385159852.dhcp.dbnet.dk] has joined #scheme 16:08:34 rien_: ah, right. it has been a while since I wrote code in haskell 16:08:36 ($) is " " (a space) with the lowest precedence 16:08:41 zevarito [~zevarito@r186-48-238-38.dialup.adsl.anteldata.net.uy] has joined #scheme 16:10:56 -!- samth_ [~samth@nomad.ccs.neu.edu] has quit [Quit: Ex-Chat] 16:13:58 -!- rien_ [~unkanon@static-71-249-187-201.nycmny.east.verizon.net] has quit [Read error: Connection reset by peer] 16:14:41 rien_ [~unkanon@static-71-249-187-201.nycmny.east.verizon.net] has joined #scheme 16:17:38 dfkjjkfd [~paulh@158-9-ftth.onsnetstudenten.nl] has joined #scheme 16:20:57 -!- karme [~user@stgt-5f70a7e1.pool.mediaWays.net] has quit [Remote host closed the connection] 16:38:28 -!- hkBst [~quassel@gentoo/developer/hkbst] has quit [Remote host closed the connection] 16:53:38 jewel [~jewel@196-215-117-47.dynamic.isadsl.co.za] has joined #scheme 17:06:23 jeapostrophe_ [~jay@lallab.cs.byu.edu] has joined #scheme 17:06:32 -!- jeapostrophe_ [~jay@lallab.cs.byu.edu] has quit [Client Quit] 17:06:40 corruptmemory [~jim@96.246.167.18] has joined #scheme 17:08:28 WonTu [~WonTu@p57B55FAB.dip.t-dialin.net] has joined #scheme 17:08:42 -!- WonTu [~WonTu@p57B55FAB.dip.t-dialin.net] has left #scheme 17:09:20 unkanon2 [~unkanon@static-71-249-187-201.nycmny.east.verizon.net] has joined #scheme 17:13:01 -!- rien_ [~unkanon@static-71-249-187-201.nycmny.east.verizon.net] has quit [Ping timeout: 272 seconds] 17:13:25 jeapostrophe_ [~jay@lallab.cs.byu.edu] has joined #scheme 17:19:41 tonyg [~tonyg@navarone.ccs.neu.edu] has joined #scheme 17:20:31 Genosh|Off [~Genosh@32.Red-81-36-108.dynamicIP.rima-tde.net] has joined #scheme 17:22:40 rgrau [~user@62.Red-88-2-20.staticIP.rima-tde.net] has joined #scheme 17:23:35 -!- Genosh [~Genosh@32.Red-81-36-108.dynamicIP.rima-tde.net] has quit [Ping timeout: 260 seconds] 17:24:25 -!- homie`` [~levgue@xdsl-78-35-181-11.netcologne.de] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 17:24:32 -!- wbooze`` [~levgue@xdsl-78-35-181-11.netcologne.de] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 17:26:39 drdo [~user@2001:690:2100:1b:226:8ff:fef7:3d9e] has joined #scheme 17:27:38 langmartin [~user@host-68-169-155-216.WISOLT2.epbfi.com] has joined #scheme 17:29:24 ventonegro [~alex@200.150.183.81] has joined #scheme 17:33:18 -!- unkanon2 is now known as rien_ 17:34:36 wbooze [~levgue@xdsl-78-35-181-11.netcologne.de] has joined #scheme 17:34:37 homie [~levgue@xdsl-78-35-181-11.netcologne.de] has joined #scheme 17:36:31 -!- copumpkin [~pumpkin@unaffiliated/pumpkingod] has quit [Ping timeout: 276 seconds] 17:36:41 copumpkin [~pumpkin@unaffiliated/pumpkingod] has joined #scheme 17:42:16 -!- nilg` [~user@77.70.2.229] has quit [Read error: Connection reset by peer] 17:43:52 jonrafkind [~jon@crystalis.cs.utah.edu] has joined #scheme 17:45:16 pumpkin [~pumpkin@17.101.89.205] has joined #scheme 17:45:16 -!- pumpkin [~pumpkin@17.101.89.205] has quit [Changing host] 17:45:16 pumpkin [~pumpkin@unaffiliated/pumpkingod] has joined #scheme 17:46:17 -!- copumpkin [~pumpkin@unaffiliated/pumpkingod] has quit [Ping timeout: 264 seconds] 17:55:25 homie` [~levgue@xdsl-78-35-180-2.netcologne.de] has joined #scheme 17:55:30 wbooze` [~levgue@xdsl-78-35-180-2.netcologne.de] has joined #scheme 17:55:51 -!- wbooze` [~levgue@xdsl-78-35-180-2.netcologne.de] has quit [Remote host closed the connection] 17:55:51 -!- homie` [~levgue@xdsl-78-35-180-2.netcologne.de] has quit [Remote host closed the connection] 17:57:43 -!- wbooze [~levgue@xdsl-78-35-181-11.netcologne.de] has quit [Ping timeout: 246 seconds] 17:57:47 -!- homie [~levgue@xdsl-78-35-181-11.netcologne.de] has quit [Ping timeout: 240 seconds] 17:59:31 -!- jeapostrophe_ [~jay@lallab.cs.byu.edu] has quit [Quit: jeapostrophe_] 18:01:53 -!- langmartin [~user@host-68-169-155-216.WISOLT2.epbfi.com] has quit [Remote host closed the connection] 18:03:07 -!- femtoo [~femto@95-89-196-150-dynip.superkabel.de] has quit [Read error: Connection reset by peer] 18:05:10 -!- Genosh|Off [~Genosh@32.Red-81-36-108.dynamicIP.rima-tde.net] has quit [Quit: http://quasiquote.me] 18:06:01 -!- chylli [~lchangyin@119.181.66.75] has quit [Remote host closed the connection] 18:08:33 -!- Azuvix [~Azuvix@71-215-25-216.bois.qwest.net] has quit [Quit: Leaving] 18:13:54 -!- githogori [~githogori@adsl-66-123-22-146.dsl.snfc21.pacbell.net] has quit [Remote host closed the connection] 18:21:20 -!- bitweiler [~bitweiler@99.40.239.167] has quit [Quit: rcirc on GNU Emacs 23.2.1] 18:24:35 vpalle [~vpalle@0x3ec65448.inet.dsl.telianet.dk] has joined #scheme 18:25:46 -!- ventonegro [~alex@200.150.183.81] has quit [Quit: ventonegro] 18:29:45 homie [~levgue@xdsl-78-35-180-2.netcologne.de] has joined #scheme 18:30:54 wbooze [~levgue@xdsl-78-35-180-2.netcologne.de] has joined #scheme 18:33:14 erjiang [~erjiang@2001:18e8:2:244:213:72ff:fe81:70af] has joined #scheme 18:43:10 someone "accidentally discovers lisp:" . 18:43:29 the extra-#scheme world can be so bizarre. 18:46:31 klutometis: Mindblowing 18:46:35 bitweiler [~bitweiler@adsl-99-40-239-167.dsl.stl2mo.sbcglobal.net] has joined #scheme 18:52:28 I don't know what's more mindblowing, the article or the comments 18:54:59 -!- vpalle [~vpalle@0x3ec65448.inet.dsl.telianet.dk] has quit [Ping timeout: 265 seconds] 18:59:29 I deliberately discover lisp all the time! 19:00:07 dRbiG [p@irc.kaer.tk] has joined #scheme 19:03:13 lithp! 19:05:43 Quetzalcoatl_ [4adbeb0a@gateway/web/freenode/ip.74.219.235.10] has joined #scheme 19:07:59 -!- timepilot [~timepilot@66.71.230.167] has quit [Quit: timepilot] 19:11:28 the blog post was mildly interesting but the very last comment's link was more interesting: http://wiki.alu.org/RtL%20Highlight%20Film 19:12:15 vpalle [~vpalle@0x3ec65448.inet.dsl.telianet.dk] has joined #scheme 19:16:03 jeapostrophe_ [~jay@lallab.cs.byu.edu] has joined #scheme 19:16:55 -!- Quetzalcoatl_ [4adbeb0a@gateway/web/freenode/ip.74.219.235.10] has quit [Quit: Page closed] 19:18:10 phao [~phao@189.107.159.69] has joined #scheme 19:21:02 -!- leppie [~lolcow@196-210-162-106.dynamic.isadsl.co.za] has quit [Read error: Connection reset by peer] 19:22:37 leppie [~lolcow@196-210-162-106.dynamic.isadsl.co.za] has joined #scheme 19:23:07 -!- phao [~phao@189.107.159.69] has quit [Ping timeout: 276 seconds] 19:25:30 phao [~phao@189.12.241.141] has joined #scheme 19:31:40 kilimanjaro [~kilimanja@unaffiliated/kilimanjaro] has joined #scheme 19:33:30 rpg [~rpg@mpls.sift.info] has joined #scheme 19:42:01 -!- phao [~phao@189.12.241.141] has quit [Ping timeout: 246 seconds] 19:53:57 phao [~phao@189.107.253.248] has joined #scheme 19:58:14 -!- jewel [~jewel@196-215-117-47.dynamic.isadsl.co.za] has quit [Ping timeout: 240 seconds] 20:06:54 githogori [~githogori@33.sub-75-210-61.myvzw.com] has joined #scheme 20:11:52 -!- hcb [~user@unaffiliated/hcb] has quit [Ping timeout: 255 seconds] 20:19:02 Genosh [~Genosh@158.Red-88-15-69.dynamicIP.rima-tde.net] has joined #scheme 20:19:07 -!- pdelgallego [~pdelgalle@1385159852.dhcp.dbnet.dk] has quit [Ping timeout: 246 seconds] 20:23:28 1234567890`~l|><><><><><><><><|>?><><<|>>|<><><><>| 20:23:35 Gah apologies. 20:24:58 -!- erjiang [~erjiang@2001:18e8:2:244:213:72ff:fe81:70af] has quit [Quit: ttfn] 20:27:52 -!- alaricsp [~alaric@relief.warhead.org.uk] has quit [Ping timeout: 246 seconds] 20:28:21 alaricsp [~alaric@relief.warhead.org.uk] has joined #scheme 20:28:41 that looks more like haskell learned on the streets 20:30:14 'd be awesomer if that were valid (and useful) GolfScript code. :-P 20:32:54 it should almost be valid golfscript :P 20:33:02 maybe it's like, one character off 20:45:37 -!- alaricsp [~alaric@relief.warhead.org.uk] has quit [Ping timeout: 240 seconds] 20:45:41 carleastlund [~cce@gotham.ccs.neu.edu] has joined #scheme 20:47:33 alaricsp [~alaric@relief.warhead.org.uk] has joined #scheme 20:48:44 groovy2shoes [~guv@unaffiliated/groovebot] has joined #scheme 20:57:23 pothos_ [~pothos@111-240-165-86.dynamic.hinet.net] has joined #scheme 20:59:19 -!- pothos [~pothos@111-240-168-252.dynamic.hinet.net] has quit [Ping timeout: 260 seconds] 20:59:34 -!- pothos_ is now known as pothos 21:08:45 metasyntax` [~taylor@12.132.219.7] has joined #scheme 21:12:31 _danb_ [~user@124-149-166-62.dyn.iinet.net.au] has joined #scheme 21:12:44 -!- drdo [~user@2001:690:2100:1b:226:8ff:fef7:3d9e] has quit [Ping timeout: 260 seconds] 21:14:47 j-invariant [~aaaa@unaffiliated/j-invariant] has joined #scheme 21:14:51 how do I do GENSYM in Racket? 21:16:09 -!- zevarito [~zevarito@r186-48-238-38.dialup.adsl.anteldata.net.uy] has quit [Remote host closed the connection] 21:16:10 pretty-big has it 21:16:13 that/s fine 21:17:33 zevarito [~zevarito@r186-48-198-126.dialup.adsl.anteldata.net.uy] has joined #scheme 21:17:48 Is there a way to have the program over several files? 21:17:56 so that it loads file 1 before loading file 2 21:19:35 I think scheme only specifies (load "somefile") but I'm not sure. 21:19:40 I dn't think there's a module systme 21:19:43 system* 21:19:55 sjamaan: yeah, the reductio ad parse-trees is weird; but also: "I could use Lisp macros to perform optimizations . . . !" 21:19:59 do people generally think of the C pre-processor when they hear "macro;" and think about inlining optimization? 21:20:07 how can I get Racket to include srfi-9? 21:21:27 <_danb_> rudybot (require srfi/9) 21:21:40 <_danb_> oo 21:21:48 <_danb_> rudybot: are you ok? 21:21:49 _danb_: ok so its not as easy as what lua does, but you can still do it 21:21:57 sjamaan: in other words: "I am not able to rightly apprehend the kind of confusion of ideas that could provoke such a question." 21:22:31 s/question/statement, in this case; . 21:23:13 heh 21:23:18 ;) 21:24:07 j-invariant: "pretty big" is a legacy language, so you should generally avoid it.. 21:24:26 zevarito_ [~zevarito@r186-48-233-251.dialup.adsl.anteldata.net.uy] has joined #scheme 21:25:08 -!- zevarito_ [~zevarito@r186-48-233-251.dialup.adsl.anteldata.net.uy] has quit [Remote host closed the connection] 21:25:55 -!- zevarito [~zevarito@r186-48-198-126.dialup.adsl.anteldata.net.uy] has quit [Ping timeout: 240 seconds] 21:32:57 -!- Genosh [~Genosh@158.Red-88-15-69.dynamicIP.rima-tde.net] has quit [Quit: http://quasiquote.me] 21:34:35 -!- vpalle [~vpalle@0x3ec65448.inet.dsl.telianet.dk] has quit [Ping timeout: 272 seconds] 21:35:32 in really simple cases... are continuations like break (C break... the keyword that stops a loop) ?? 21:35:59 You can certainly use them in situations where you would use break 21:37:04 sjamaan, are continuations something from scheme, or it's something common in all Lisps? 21:37:15 From Scheme 21:37:27 interesting 21:38:30 vpalle [~vpalle@0x3ec65448.inet.dsl.telianet.dk] has joined #scheme 21:39:34 nsswb [~nsswb@87.212.234.21] has joined #scheme 21:40:22 -!- nsswb [~nsswb@87.212.234.21] has quit [Client Quit] 21:42:13 -!- alaricsp [~alaric@relief.warhead.org.uk] has quit [Ping timeout: 276 seconds] 21:43:07 unkanon2 [~unkanon@static-71-249-187-201.nycmny.east.verizon.net] has joined #scheme 21:43:13 -!- pumpkin is now known as copumpkin 21:44:46 -!- rien_ [~unkanon@static-71-249-187-201.nycmny.east.verizon.net] has quit [Disconnected by services] 21:44:55 -!- unkanon2 is now known as rien_ 21:45:05 alaricsp [~alaric@relief.warhead.org.uk] has joined #scheme 21:45:27 -!- nisstyre [~nisstyre@infocalypse-net.info] has quit [Quit: Leaving] 21:46:33 schmir [~schmir@p54A91554.dip0.t-ipconnect.de] has joined #scheme 21:48:35 Is it possible to make 'map' produce an empty list? 21:48:36 pdelgallego [~pdelgalle@1385159852.dhcp.dbnet.dk] has joined #scheme 21:49:08 didi: apply it to an empty list 21:49:35 j-invariant: 21:49:49 j-invariant: And if I apply it to a non-empty list? 21:50:06 Nisstyre [~nisstyre@infocalypse-net.info] has joined #scheme 21:50:13 then it will append whatever your procedure produces for each element 21:50:18 to the result list 21:50:23 Hum. 21:50:48 rudybot: eval (map (lambda (a) '() ) '(1 2 3)) 21:50:49 C-Keen: your sandbox is ready 21:50:49 C-Keen: ; Value: (() () ()) 21:50:55 didi: (length empty-list) is 0 right? 21:51:08 didi: but (length (map f l)) = (length l) 21:51:46 Well, I guess I need a loop then. 21:51:50 Thank you. 21:51:53 min length of lists I think 21:52:04 rudybot: eval (map (lambda (a b) '() ) '(1 2 3) '(1 2)) 21:52:04 C-Keen: error: map: all lists must have same size; arguments were: # (1 2 3) (1 2) 21:52:11 ok ok 21:55:07 didi: maybe you want for-each rather than map 21:56:31 didi` [~user@unaffiliated/didi/x-1022147] has joined #scheme 21:56:32 -!- didi [~user@unaffiliated/didi/x-1022147] has quit [Read error: Connection reset by peer] 21:57:15 -!- tupi [~david@186.205.37.15] has quit [Quit: Leaving] 22:02:25 -!- alaricsp [~alaric@relief.warhead.org.uk] has quit [Ping timeout: 260 seconds] 22:02:42 -!- rpg [~rpg@mpls.sift.info] has quit [Quit: rpg] 22:03:29 wes__ [~nisstyre@infocalypse-net.info] has joined #scheme 22:03:35 -!- vpalle [~vpalle@0x3ec65448.inet.dsl.telianet.dk] has quit [Ping timeout: 260 seconds] 22:03:56 -!- Nisstyre [~nisstyre@infocalypse-net.info] has quit [Disconnected by services] 22:04:08 -!- wes__ is now known as nisstyre 22:06:38 vpalle [~vpalle@0x3ec65448.inet.dsl.telianet.dk] has joined #scheme 22:07:04 alaricsp [~alaric@relief.warhead.org.uk] has joined #scheme 22:18:20 -!- alaricsp [~alaric@relief.warhead.org.uk] has quit [Ping timeout: 240 seconds] 22:21:28 alaricsp [~alaric@relief.warhead.org.uk] has joined #scheme 22:24:26 Azuvix [~Azuvix@71-215-25-216.bois.qwest.net] has joined #scheme 22:29:13 -!- vpalle [~vpalle@0x3ec65448.inet.dsl.telianet.dk] has quit [Ping timeout: 240 seconds] 22:32:29 -!- alaricsp [~alaric@relief.warhead.org.uk] has quit [Ping timeout: 264 seconds] 22:35:11 alaricsp [~alaric@relief.warhead.org.uk] has joined #scheme 22:45:13 -!- aisa [~aisa@173-10-243-253-Albuquerque.hfc.comcastbusiness.net] has quit [Quit: aisa] 22:46:05 -!- alaricsp [~alaric@relief.warhead.org.uk] has quit [Read error: Operation timed out] 22:46:47 alaricsp [~alaric@relief.warhead.org.uk] has joined #scheme 22:47:57 zevarito [~zevarito@r186-48-111-120.dialup.adsl.anteldata.net.uy] has joined #scheme 22:48:31 -!- zevarito [~zevarito@r186-48-111-120.dialup.adsl.anteldata.net.uy] has quit [Remote host closed the connection] 22:52:31 -!- alaricsp [~alaric@relief.warhead.org.uk] has quit [Read error: Operation timed out] 22:54:30 alaricsp [~alaric@relief.warhead.org.uk] has joined #scheme 23:01:04 -!- nisstyre [~nisstyre@infocalypse-net.info] has quit [Remote host closed the connection] 23:02:06 Nisstyre [~nisstyre@infocalypse-net.info] has joined #scheme 23:09:35 -!- alaricsp [~alaric@relief.warhead.org.uk] has quit [Ping timeout: 240 seconds] 23:10:15 alaricsp [~alaric@relief.warhead.org.uk] has joined #scheme 23:11:22 zevarito [~zevarito@r186-48-111-120.dialup.adsl.anteldata.net.uy] has joined #scheme 23:11:49 -!- zevarito [~zevarito@r186-48-111-120.dialup.adsl.anteldata.net.uy] has quit [Remote host closed the connection] 23:13:18 vpalle [~vpalle@0x3ec65448.inet.dsl.telianet.dk] has joined #scheme 23:16:03 -!- jeapostrophe_ [~jay@lallab.cs.byu.edu] has quit [Quit: jeapostrophe_] 23:16:42 -!- vpalle [~vpalle@0x3ec65448.inet.dsl.telianet.dk] has quit [Client Quit] 23:16:55 -!- alaricsp [~alaric@relief.warhead.org.uk] has quit [Ping timeout: 246 seconds] 23:19:12 -!- HG` [~HG@xdsl-92-252-101-121.dip.osnanet.de] has quit [Quit: Leaving.] 23:23:34 zevarito [~zevarito@r186-48-111-120.dialup.adsl.anteldata.net.uy] has joined #scheme 23:25:06 -!- zevarito [~zevarito@r186-48-111-120.dialup.adsl.anteldata.net.uy] has quit [Remote host closed the connection] 23:28:23 alaricsp [~alaric@relief.warhead.org.uk] has joined #scheme 23:28:28 I was wondering... when I started learning scheme some time ago, through SICP, scheme looked like some language only useful for algorithm design (those more math related), and functional programming... Now, it looks like it has much more capabilities than most languages for most things 23:36:55 -!- qsun [~qsun@66.220.3.138] has quit [Ping timeout: 240 seconds] 23:38:23 qsun [~qsun@66.220.3.138] has joined #scheme 23:41:46 (let ((x (call/cc (lambda (cc) cc)))) (x 20) x) ;; shouldn't this give me 20? 23:42:06 phao: uh noa 23:42:08 no 23:42:11 but 23:42:29 (define x (call/cc (lambda (cc) cc))) (x 20) (display x) 23:42:30 shows 20 23:42:41 what is the difference between them? 23:42:49 the define 23:42:54 define use SET! 23:42:59 let uses LAMBDA 23:43:25 so what is x in the let, right before it enters the body? 23:43:38 isn't it the continuation? 23:45:40 phao: it's because the top level continuation is weird 23:45:56 if you use delimited continuations this odd stuff can't happen, and the overall behavior is uniform 23:46:19 which odd stuff? 23:46:53 that which you have noticed 23:47:21 .. 23:47:26 phao: whatever 23:47:44 why the first expression I showed doesnt give me 20? 23:48:36 x is bound to the continuation, I'm telling the continuation to be the evaluation of 20, which should cause, afaik, x to be "re-bound" to 20 23:49:15 Genosh [~Genosh@223.Red-83-32-116.dynamicIP.rima-tde.net] has joined #scheme 23:51:21 what happens is that, using the let example, 20 is being treated as a function 23:51:24 it's being called 23:51:28 and with the define example, it isn't 23:51:31 -!- Azuvix [~Azuvix@71-215-25-216.bois.qwest.net] has quit [Quit: Leaving] 23:51:58 -!- corruptmemory [~jim@96.246.167.18] has quit [Quit: Leaving] 23:52:09 ohh 23:52:11 now I get it 23:52:19 to evaluate the header of let 23:52:35 no I don't... I'll stop thinking out loud here =) 23:55:55 j-invariant, when I do the (x 20) inside the let 23:55:58 the let body is re-evaluated? 23:56:41 -!- bitweiler [~bitweiler@adsl-99-40-239-167.dsl.stl2mo.sbcglobal.net] has quit [Remote host closed the connection] 23:57:38 j-invariant, got it 23:57:38 Azuvix [~Azuvix@71-215-25-216.bois.qwest.net] has joined #scheme 23:57:39 heh 23:58:02 I'll make up a name here at irc, talk at the name.. helps me understand stuff 23:58:23 haha 23:58:44 =D