00:00:26 http://pastebin.com/FjAxcvx5 00:00:32 It's pretty much what is in the book 00:01:07 Right. That was pretty much my initial attempt 00:01:27 But I felt that all that cons-packing and unpacking was messy, so I decided to use multiple-values instead. 00:02:32 I don't understand how returning multiple values work 00:02:40 but I don't see much wrong with cons and "unconsing" 00:02:53 phao: It's not "wrong", just verbose. 00:03:01 right 00:03:19 Re multiple-values, have you heard of VALUES and CALL-WITH-VALUES? 00:03:49 no 00:04:01 I've been only exposed to very basic scheme 00:04:02 Okay, here are some examples that might give you an idea. 00:04:08 rudybot: (values 1 2 3) 00:04:08 cky: ; Value: 1 00:04:09 cky: ; Value#2: 2 00:04:10 cky: ; Value#3: 3 00:04:15 like sicp, little schemer 00:04:18 rudybot: (values 1) 00:04:19 cky: ; Value: 1 00:04:22 rudybot: 1 00:04:23 cky: ; Value: 1 00:04:41 rudybot: (equal? (values 1) 1) 00:04:41 cky: ; Value: #t 00:04:42 MapMan [mapman@2001:470:1f0a:120e::fe] has joined #scheme 00:05:03 phao: So, some points: 1. VALUES allow you to return multiple values at once. 00:05:13 2. a single-value VALUES call is the same as just that item as a scalar. 00:05:23 -!- githogori [~githogori@41.sub-75-208-165.myvzw.com] has quit [Remote host closed the connection] 00:05:35 You can catch those values using CALL-WITH-VALUES. 00:05:54 rudybot: (call-with-values (lambda () (values 1 2 3)) +) 00:05:55 cky: ; Value: 6 00:06:18 -!- Azuvix [~Azuvix@71-215-25-216.bois.qwest.net] has quit [Quit: Leaving] 00:06:46 let me guess.. receive is like a "let" 00:06:55 that binds names to the values 00:06:55 Right. 00:06:57 a function returns 00:06:57 Yes. 00:07:15 (cc cc 0) is totally strange though 00:07:24 rudybot: (receive (foo bar baz) (values 1 2 3) (+ foo (* bar baz))) 00:07:24 cky: error: reference to an identifier before its definition: receive in module: 'program 00:07:28 rudybot: (require srfi/8) 00:07:29 cky: Done. 00:07:31 rudybot: (receive (foo bar baz) (values 1 2 3) (+ foo (* bar baz))) 00:07:31 cky: ; Value: 7 00:07:57 So, that should be pretty straightforward. 00:08:06 why didn't you need (cc (values cc 0)) 00:08:09 I mean... 00:08:12 that's right too, sure? 00:08:14 The next nuance is this: if you call a continuation with more than one value, then that is a multiple-value return. 00:08:17 in your code* 00:08:23 ahh ok 00:08:35 so, in your code (cc cc 0) is the same as (cc (values cc 0)) 00:08:45 Yep, except that the latter is invalid, and only the former works. 00:08:55 why is that? 00:09:08 Because function arguments are a single-value context. 00:09:17 i.e., if you call (cc foo), foo has to be single-valued. 00:09:57 "Some" implementations (Guile *cough cough*) will allow it, but most won't. 00:09:59 ah ok 00:10:14 you use guile? 00:10:25 I've used it enough to know some of its quirks. :-P 00:11:21 sio 00:11:22 so 00:11:44 if I chance (cc cc 0) to (cc (values cc 0)) and change (cc cc (+ val 1))) with (cc (values cc (+ val 1))) 00:11:49 the code will work? 00:12:09 Only in Guile. 00:12:18 Pretty much no. other implementation will let you do it 00:12:26 Pretty much no other implementation will let you do it. 00:12:27 :-P 00:12:34 but why not? 00:12:44 is it because of the receive macro? 00:13:11 erjiang [~erjiang@140-182-237-112.dhcp-bl.indiana.edu] has joined #scheme 00:14:01 Okay, let's ask rudybot: 00:14:16 rudybot: (call/cc (cc) (cc (values 1 2 3))) 00:14:16 cky: error: reference to an identifier before its definition: cc in module: 'program 00:14:22 Oh wait. 00:14:32 rudybot: (call/cc (lambda (cc) (cc (values 1 2 3)))) 00:14:32 cky: error: context expected 1 value, received 3 values: 1 2 3 00:14:52 phao: Each argument to the continuation needs to be single-valued. 00:15:14 phao: Therefore, you are not able to pass (values 1 2 3) to the continuation as a single argument, but have to pass them in as individual arguments. 00:15:58 so... 00:16:16 (cc cc 0) is actually making cc receives (list cc 0) ? 00:16:21 Nope. 00:16:30 Multiple-values has no relation to lists. 00:16:51 well... some other time I look into this 00:16:51 You can _convert_ multiple-values into a (argument) list using CALL-WITH-VALUES. 00:16:55 Hehehehehe. 00:16:57 the book will probably explain them 00:17:00 *nods* 00:18:13 wait 00:18:34 actually, let me double-check 00:20:04 -!- Caleb-- [thedude@109.65.199.183] has quit [Ping timeout: 240 seconds] 00:20:35 ok yeah that's right 00:22:10 erjiang: What were you wondering about? :-P 00:22:45 I ran into some messiness today with applying a continuation to multiple values 00:23:02 Huh. 00:23:10 your examples were fine; i'll have to go back and look at my code later 00:23:17 *nods* 00:25:32 Actually, now that I think about it, under what conditions does Scheme need to accept single values only? 00:25:49 for example, 00:25:56 rudybot: (set! x (values 1 2 3)) 00:25:56 erjiang: your sandbox is ready 00:25:56 erjiang: error: context expected 1 value, received 3 values: 1 2 3 00:26:10 rudybot: ((lambda (x) x) (values 1 2 3)) 00:26:10 erjiang: error: context expected 1 value, received 3 values: 1 2 3 00:26:19 oh that's interesting 00:27:17 ((lambda (x) x) (values 1 2 3)) => 1, 2, 3 on Chez Scheme 00:27:30 erjiang: That's an implementation-specific extension. 00:27:42 For example, Guile lets you pass around multiple-values as first-class objects. 00:31:07 mzscheme is the most "complete" scheme implementation, right? 00:31:18 Chez Scheme doesn't have first-class values 00:31:35 valium97582, what do you mean complete? 00:31:49 erjiang: most featureful 00:32:17 so counting features beyond the standard? 00:32:52 maybe 00:33:22 erjiang: *nods* (re MV not being first-class in Chez). Like I said, I think Guile is special in that regard. 00:33:36 erjiang: In fact, up to Guile 1.8.x, macros are first-class in Guile too. :-P 00:33:53 I don't even know what that means. 00:34:09 erjiang: Is it too much asking both? :P 00:34:16 lewis1711 [~lewis@125-239-255-244.jetstream.xtra.co.nz] has joined #scheme 00:34:31 valium97582, well, Racket has a couple OpenGL bindings, a picture language, support more many dialects, etc. 00:34:35 erjiang: (Macros and syntaxes, even. You can do (define ! define) (! ^ lambda) (^ (foo bar baz) (+ foo (* bar baz))) if you want.) 00:34:42 bremner: ^^--- 00:34:50 valium97582, so it could definitely be the most "featureful" 00:34:54 I've been told that Guile 2.0 no longer allows this. 00:34:58 erjiang: thanks! 00:35:15 cky, Gauche still has first-class syntax, last I checked 00:35:20 erjiang: Wow. 00:36:08 cky, no, I was wondering why ((lambda (x) x) (values 1 2 3)) wouldn't error in Chez Scheme without first-class values 00:36:32 Yeah, that's odd. 00:36:34 didi [~user@unaffiliated/didi/x-1022147] has joined #scheme 00:36:49 Azuvix [~Azuvix@71-215-25-216.bois.qwest.net] has joined #scheme 00:37:13 Chicken seems to have Common Lisp-style treatement of MV, which is that subsequent values get sliced off when used in single-value context. 00:41:46 Jafet [~Jafet@unaffiliated/jafet] has joined #scheme 01:01:14 -!- timj__ [~timj@e176192203.adsl.alicedsl.de] has quit [Remote host closed the connection] 01:02:25 timj [~timj@e176192203.adsl.alicedsl.de] has joined #scheme 01:05:02 -!- gravicappa [~gravicapp@ppp85-140-117-185.pppoe.mtu-net.ru] has quit [Ping timeout: 240 seconds] 01:09:14 -!- masm [~masm@bl19-147-25.dsl.telepac.pt] has quit [Quit: Leaving.] 01:10:13 -!- qhe [~qhe2@134.134.137.75] has quit [Ping timeout: 255 seconds] 01:10:14 -!- parcs [~patrick@ool-45741d7d.dyn.optonline.net] has quit [Ping timeout: 240 seconds] 01:10:25 zevarito [~zevarito@r186-48-131-245.dialup.adsl.anteldata.net.uy] has joined #scheme 01:11:59 -!- rgrau [~user@62.Red-88-2-20.staticIP.rima-tde.net] has quit [Remote host closed the connection] 01:12:09 parcs [~patrick@ool-45741d7d.dyn.optonline.net] has joined #scheme 01:13:39 -!- parcs [~patrick@ool-45741d7d.dyn.optonline.net] has quit [Remote host closed the connection] 01:14:34 parcs [~patrick@ool-45741d7d.dyn.optonline.net] has joined #scheme 01:15:56 -!- bweaver [~user@host-68-169-175-225.WISOLT2.epbfi.com] has quit [Ping timeout: 250 seconds] 01:18:46 -!- leppie [~lolcow@196-215-83-125.dynamic.isadsl.co.za] has quit [] 01:19:29 -!- kniu [~kniu@DOHOHO.RES.CMU.EDU] has quit [Remote host closed the connection] 01:23:28 xwl_ [~wixu@nat/nokia/x-bpafeejushlkcgki] has joined #scheme 01:23:35 qhe [~qhe2@nat/intel/x-kmhvkerudqbejawk] has joined #scheme 01:25:31 myu2 [~myu2@v077103.dynamic.ppp.asahi-net.or.jp] has joined #scheme 01:28:47 kilimanjaro [~kilimanja@unaffiliated/kilimanjaro] has joined #scheme 01:38:48 -!- erjiang [~erjiang@140-182-237-112.dhcp-bl.indiana.edu] has quit [Ping timeout: 246 seconds] 01:48:11 -!- zevarito [~zevarito@r186-48-131-245.dialup.adsl.anteldata.net.uy] has quit [Remote host closed the connection] 01:49:23 -!- jonrafkind [~jon@crystalis.cs.utah.edu] has quit [Ping timeout: 265 seconds] 02:07:38 sanduz2 [~sanduz2@75-149-186-118-Miami.hfc.comcastbusiness.net] has joined #scheme 02:13:45 -!- k04n_ [~k04n@cpe-76-175-192-194.socal.res.rr.com] has quit [Quit: Computer has gone to sleep.] 02:16:58 k04n [~kn@cpe-76-175-192-194.socal.res.rr.com] has joined #scheme 02:23:40 -!- wisey [~Steven@host86-150-108-29.range86-150.btcentralplus.com] has quit [Quit: Leaving] 02:25:07 erjiang [~erjiang@140-182-135-241.dhcp-bl.indiana.edu] has joined #scheme 02:27:03 -!- myu2 [~myu2@v077103.dynamic.ppp.asahi-net.or.jp] has quit [Remote host closed the connection] 02:37:43 -!- k04n [~kn@cpe-76-175-192-194.socal.res.rr.com] has quit [Remote host closed the connection] 02:40:09 bitweiler [~bitweiler@adsl-99-40-239-167.dsl.stl2mo.sbcglobal.net] has joined #scheme 02:40:42 -!- bitweiler [~bitweiler@adsl-99-40-239-167.dsl.stl2mo.sbcglobal.net] has quit [Client Quit] 02:41:22 jlongster [~user@c-98-242-90-116.hsd1.ga.comcast.net] has joined #scheme 02:41:46 bitweiler [~bitweiler@adsl-99-40-239-167.dsl.stl2mo.sbcglobal.net] has joined #scheme 02:41:55 eugene_trileski [~eugene@pool-71-249-127-12.nycmny.east.verizon.net] has joined #scheme 02:42:11 Is emacs the best option for scheme? 02:42:48 s/for scheme// ; Yes, yes it is. :-P 02:42:51 *fds* hides 02:43:00 lol 02:43:01 thanks 02:43:03 he 02:43:19 -!- bgs100 [~ian@unaffiliated/bgs100] has quit [Quit: nigh'] 02:44:32 -!- lewis1711 [~lewis@125-239-255-244.jetstream.xtra.co.nz] has left #scheme 02:44:41 <_p4bl0> eugene_trileski: try Racket or Guile with geiser in Emacs. You'll be in love. 02:45:09 -!- aisa [~aisa@c-68-35-167-179.hsd1.nm.comcast.net] has quit [Quit: aisa] 02:45:54 lewis1711 [~lewis@125-239-255-244.jetstream.xtra.co.nz] has joined #scheme 02:46:02 _p4bl0: does geiser work with other scheme's as well 02:46:19 Only those two, at the moment 02:46:24 i use racket but it has like 0 ide features thats why im considering emacs 02:46:35 I guess they'd be happy if you ported it to other Schemes :-) 02:47:31 <_p4bl0> fds: AFAIK, "they" is just one guy, jao (who is here, spying on us, mere users ;-)) 02:47:37 i wish there were more "normal" editors for scheme. I prefer vim over emacs but I want a regular editor with scheme indentation most of all:P 02:47:41 I guess so 02:47:56 _p4bl0: Ah, I see. Good to know. :-) 02:48:20 i also like vim but there is always something that emacs has that vim doesnt so i am considering to just switch once and for all 02:48:25 Emacs is the only regular editor! 02:48:35 amen 02:48:57 but vim 02:49:11 has superior key bindings 02:49:24 no we need a pure scheme editor ;) 02:49:25 I just want something like gedit, but with auto-indent for scheme:P 02:49:26 the modes idea is just brilliant solution 02:49:31 or geany 02:49:47 lewis1711: hack one together 02:50:25 *fds* doesn;t like modal editors 02:50:41 But, I've got nothing against Vim, if that's what you're into 02:51:13 I just find vim/emacs too distracting 02:51:24 lewis1711: then try ed 02:51:26 i think that fixes itself in time 02:51:27 hehe 02:51:48 bitweiler: less archaic, not more:D 02:51:55 <_p4bl0> eugene_trileski: except Emacs has vim keybindings ad modal editing 02:51:56 oh 02:52:04 <_p4bl0> eugene_trileski: M-x viper-mode 02:52:10 <_p4bl0> eugene_trileski: + vimpulse 02:52:14 i know thats what i use : ) 02:52:25 <_p4bl0> eugene_trileski: okay :-) 02:52:38 _p4bl0: does it ever break in other modes 02:52:49 _p4bl0: like in slime? 02:52:58 <_p4bl0> eugene_trileski: I don't know I don't use those heretic stuff ;-p 02:53:13 <_p4bl0> eugene_trileski: I meant :q!, which is a much better smiley face 02:53:35 _p4bl0: i am just not sure whether i should just say f it and learn emacs proper 02:53:44 or use viper 02:54:05 i dunno what kind of interaction problems viper might have 02:55:13 <_p4bl0> eugene_trileski: dunno either. Use what you like best and fix problems when they come if they do :-) 02:55:22 bitweiler++ for ed suggestion. :-P 02:55:44 *bitweiler* tilts hat cky 02:55:58 :-D 02:56:34 hmm maybe thats a good way to do it thanks 02:57:30 k04n [~kn@cpe-76-175-192-194.socal.res.rr.com] has joined #scheme 02:59:50 -!- corruptmemory [~jim@ool-18bbd5b2.static.optonline.net] has quit [Ping timeout: 240 seconds] 03:00:47 eugene_trileski: "like 0 ide features"? 03:01:21 bitweiler: in the git head, drracket is pretty much a "pure" "scheme" editor. 03:01:28 eli: syntax highlight 03:01:42 eli: automatic indentation and similar stuff 03:01:43 sweet 03:02:04 eugene_trileski: Did you run DrRacket? 03:02:05 can't edit C in drracket though:) 03:02:16 yeah 03:03:08 eugene_trileski: Huh? It has both. 03:03:18 -!- copumpkin is now known as c0pumpkin 03:03:22 yeah i tried it right now 03:03:24 it does 03:03:34 :-P 03:03:37 maybe i set it up incorrectly 03:03:38 ;o 03:03:39 before 03:03:40 thanks 03:04:28 (It's possible, but not obvious or easy, to set it up so you don't have syntax highlights and indentation.) 03:05:31 i was in windows before and now im in linux 03:05:43 can it be my excuse? : P 03:05:52 No, it's pretty much identical on both. 03:06:09 no excuses then : ( 03:06:14 looking forward to the new drracket coming out in early feb 03:06:24 <_p4bl0> eugene_trileski: at least not for using widnws... ;-) 03:06:31 according to the site it will feel a bit more native 03:06:52 _p4bl0: :P 03:07:03 lewis1711: No need to guess how it would look like -- http://pre.racket-lang.org/installers/ 03:07:07 -!- Azuvix [~Azuvix@71-215-25-216.bois.qwest.net] has quit [Quit: Leaving] 03:07:40 But generally speaking, there's little change for Mac and OSX, the bigger change is on linux. (Due to gtk.) 03:08:02 hmmm...I'd better avoid the nightly;) likely to have more bugs 03:08:21 k04n_ [~k04n@cpe-76-175-192-194.socal.res.rr.com] has joined #scheme 03:08:39 <_p4bl0> lewis1711: you could always install a nightly somewhere in your home dir just to try it out 03:08:44 It is, but it's very easy to install, try, delete. 03:09:01 -!- k04n [~kn@cpe-76-175-192-194.socal.res.rr.com] has quit [Quit: Colloquy for iPad - http://colloquy.mobi] 03:09:30 speaking of bugs... drracket seems to have an intermitten thing where it can't find .so files you are loading 03:09:32 it's really weird 03:09:43 not sure how to reproduce it, as it seems to be random, else i'd file a report 03:09:58 -!- erjiang [~erjiang@140-182-135-241.dhcp-bl.indiana.edu] has quit [Read error: Operation timed out] 03:10:18 Finding .so files is something that is unrelated to drracket. 03:10:28 It's the foreign interface that you're talking about. 03:10:38 in general do you guys think emacs/vim are worth the effort to learn comparing to just using a pure ide> 03:10:44 And if it's your own .so, then the best option is to use something like "./foo.so" 03:10:48 eugene_trileski: no :) 03:10:57 eugene_trileski: yes. 03:11:03 eli: humm, didn't know you could include strings like that 03:11:07 eugene_trileski: yes. 03:11:24 if this computer was faster I'd check out that eclipse scheme thing 03:11:40 I wouldn't use and IDE to write emails. I don't know many IDE's that work fro, say, Scheme and Latex. 03:11:43 eugene_trileski: But if you're new to them, and your goal is to learn the language, then something like drracket will cause less brain cycle distractions. 03:12:15 good point eli thanks 03:12:20 ^ agree with eli 03:12:42 Axioplase_: as much as I like it, Emacs lacks the "I" of IDE. 03:12:43 IME, vim and emacs were mainly hype 03:13:11 lewis1711: why do you think that 03:13:15 it's one of things were people spend so much effort learning it, they don't want to admit it wasn't worth it in the first place and so the cycle continues. 03:13:26 eugene_trileski: too much effort for not much (if any) gain 03:13:39 -!- cataska [~cataska@210.64.6.233] has quit [Quit: leaving] 03:13:46 they get in my way, always have to think about editing with them. YMMV 03:13:51 <_p4bl0> eugene_trileski: of course. I'll add to eli's (very right) comment that Emacs can get out of your way at the beginning using cua-mode and the graphical stuff they put in it. 03:14:00 lewis1711: You cannot use an editor well if you don't spend time and effort in it. 03:14:04 cua-mode is nearly useless. it barely does any CUA 03:14:16 yeah, we already had this conversation 03:14:18 Axioplase_: I use geany well 03:14:45 lewis1711: Emacs is definitely requires effort, and the end result is definitely worth it. I can do stuff in Emacs that you could only dream about in other editors. But it took a good amount of time for me to get there. 03:15:04 *bitweiler* nods and grins 03:15:07 that's the thing, i don't dream of doing stuff in editors 03:15:08 *bremner* suspects he has been using emacs longer than lewis1711 has been alive 03:15:21 bremner: possibly, i'm 23 03:15:23 <_p4bl0> lewis1711: I slowly learned Emacs and I really don't feel what you describe. I'm really more efficient in my Emacs than in any other text editor :-) 03:15:26 lewis1711: And, well, unless you find people as efficient as us using something where you don't have to invest time, I'll consider you're just plain wrong. 03:15:43 lewis1711: yup, 3 more years 03:16:11 perhaps it's a generational thing then 03:16:23 <_p4bl0> lewis1711: I'm 21... ^^ 03:16:25 Axioplase_: can't parse that sentence I'm afraid 03:16:34 i'm 22 ;o 03:16:47 lewis1711: Hum. "Prove me it wasn't worth learning vim/emacs" 03:17:04 Prove to me? 03:17:11 English is a bitch;) 03:17:12 *eli* has been emacsing since 1992 03:17:49 lewis1711: show me that learning vim/emacs wasn't worth. Show me how efficient editing can be without learning them. 03:18:02 lewis1711: it certainly changes things that I learned Emacs and the (multics) command line before graphical interfaces. But many people of my generation use only Windows/Mac/GUI tools. 03:18:16 this is only going to break down into subjective arguments. 03:18:21 lewis1711: In any case, even if you don't dream of doing stuff in your emacs, there's stuff that you'll sweat over plenty while I'll be done with it before you blink. 03:18:39 lewis1711: No, it should not be subjective. Efficiency is not. 03:18:43 I don't like buffers. I like tabs. i don't like separate clipboards. I don't like learning new incompatable key-bindings for an application 03:18:50 lewis1711: right, so use what you like or write your own editor that does everything you like 03:19:04 githogori [~githogori@adsl-66-123-22-146.dsl.snfc21.pacbell.net] has joined #scheme 03:19:13 then you will have no complaints 03:19:18 lewis1711: vim has tabs. Firefox uses my vim bindings. My shell uses my vim bindings. Less/more/man use vim bindings. 03:19:22 lewis1711: you're perfectly entitled not to use emacs. To suggest that everyone who does is delusional is a bit silly though. 03:19:39 vim has buffers 03:19:56 bremner: giving my opinion. IME it was hype 03:20:06 <_p4bl0> Axioplase_: same here but with emacs keybindings 03:20:10 lewis1711: every text editor has buffers how it they not 03:20:25 can* 03:20:26 <_p4bl0> lewis1711: tabs are inneficient. Take a look at ido-mode for emacs for instance 03:20:50 lewis1711: vim has buffer and tabs. So what? 03:20:52 lewis1711: A tab is just a different way of presenting the buffer label (and Emacs does have something like that, I think); X has separate clipboards, Emacs doesn't (usually); and if you want to avoid new key bindings then emacs is a true dream -- since you can do everything and use exactly the same keys. 03:21:19 eli: yeah, emacs was nice with a bit of work put into it. unfortunately i seem to have lost that .emacs file 03:21:47 Axioplase_: how does one use vim tabs? I am using minibufexplorer or something like that 03:21:51 Anyway, it's not about us not admitting it's worthless, I think it's more about you finding reasons not to want to use vim/emacs 03:21:58 (Obviously you need to put work into it, the default emacs is probably worse than vi...) 03:22:03 -!- dfkjjkfd [~paulh@210-11-ftth.onsnetstudenten.nl] has quit [Quit: Lost terminal] 03:22:45 can you guys give me top mods i should look into as a vim-to-emacs guy? 03:22:55 if it makes you feel better, I also dislike roast food. it's bland and I don't understand why people spend so much money cooking it 03:22:58 lewis1711: :he tab-page 03:23:00 besides viper/vimpulse 03:23:24 i need it to edit c++ and scheme for now 03:23:36 eugene_trileski: paredit, slime, org-mode, ido are the famous ones I know. 03:25:20 Axioplase_: humm, looks cool, but the tab commands detailed there don't do anything:P 03:25:26 Axioplase_: thanks 03:26:53 vu3rdd [~vu3rdd@nat/cisco/x-nncvwlrezzzszyxx] has joined #scheme 03:26:53 -!- vu3rdd [~vu3rdd@nat/cisco/x-nncvwlrezzzszyxx] has quit [Changing host] 03:26:53 vu3rdd [~vu3rdd@fsf/member/vu3rdd] has joined #scheme 03:27:27 lewis1711: maybe you should start by creating a tab :tabnew 03:27:35 maybe i did:P 03:28:40 rpg [~rpg@216.243.156.16.real-time.com] has joined #scheme 03:28:47 then, create more, and :tabn :tabN 03:28:58 cataska [~cataska@210.64.6.233] has joined #scheme 03:29:00 that *should* do something 03:29:57 tabn does 03:30:13 of course it does 03:30:15 help seems to suggest CTRL-PGDWN would 03:30:43 it does here. 03:30:56 perhaps it's my term-emulator 03:32:27 works in gvim, but then ctrl-w won't close them 03:32:58 oh well, quit will do it 03:33:06 Axioplase_: thanks for the tip, this makes vim a lot nicer 03:35:33 -!- MapMan [mapman@2001:470:1f0a:120e::fe] has quit [Ping timeout: 260 seconds] 03:35:38 MapMan [mapman@2001:470:1f0a:120e::fe] has joined #scheme 03:37:53 lewis1711: Roast chicken is awesomesauce. 03:38:11 lewis1711: I missed going to roast shops (the kind you find in New Zealand :-D) and getting roast lamb, or lamb shanks. 03:38:18 cky: ugh. I just don't get it. give me some damn spices 03:38:23 curry that sucker up 03:38:28 Hehehehe. :-) 03:38:39 I <3 all kinds of food though, including curries of many different sorts. 03:41:59 cky: it's worse in Ireland though 03:42:03 god 03:42:11 talk about the land that taste forgot 03:42:19 leppie [~lolcow@196-215-83-125.dynamic.isadsl.co.za] has joined #scheme 03:42:47 they don't even have flavoured cans of tuna, too revolutionary. an iced coffee? starbucks and macdonalds, cafes have no idea what you are talking about 03:42:50 Hahahahahahaha. 03:43:05 dried fruit? WHAT IS THIS, GREECE? 03:43:11 But but but, who needs that when you have honest to goodness Irish food? :-P 03:43:21 (Actually, I have a frien who's Irish, and would agree with you.) 03:43:26 *fiend 03:43:28 *friend 03:43:28 boiled soil? 03:43:32 that's what it tastes like 03:43:37 Hahahahahaha. 03:43:43 atleast there's cheap Tullamore Dew:) 03:43:48 :-P 03:44:08 I <3 Korean food. Spicy, spicy, spicy. :-P 03:44:11 -!- c0pumpkin is now known as copumpkin 03:44:21 never had it 03:44:26 i love food that is simple to cook and healthy ;o 03:44:35 there's a korean restaurant nearish to me actually, should give it a go 03:44:40 You should! Well, maybe not in your neck of the woods, but Auckland has a _lot_ of Korean places. 03:45:03 ha, I have been to auckland like once 03:45:04 as a kid 03:45:26 Actually, here where we live, we have a Korean place about 5 minutes from home. Sadly, we can't eat there any more. (My wife has been diagnosed as gluten-intolerant, which rules out most Chinese/Japanese/Korean food.) 03:45:29 well, not counting going straight to the airport 03:45:34 Hahahahaha. 03:45:35 (which is lovely to sleep in btw) 03:45:37 I lived in Auckland for 20 years. 03:46:10 I wonder how long i could live at auckland airport before people noticed 03:46:17 I predict two nights 03:46:59 Hehehehehe. 03:47:11 Depends on how much it gets Americanised, I guess. 03:47:30 In that case, they'd keep tabs on you well before a few hours have elapsed. 03:47:31 :-P 03:47:47 cky: just get food without your wife. married people are allowed to do that, right? 03:48:24 lewis1711: If I do that, she'd just starve, and we can't have that. 03:48:42 lol 03:52:29 -!- timj [~timj@e176192203.adsl.alicedsl.de] has quit [Read error: Connection reset by peer] 03:52:34 timj_ [~timj@e176197051.adsl.alicedsl.de] has joined #scheme 03:52:43 humm, rackets OOP thingee ain't that bad 03:52:53 I did want to try using prototypes, but I can do that myself at a later date I guess 03:54:07 <_p4bl0> hu. almost 5am. nite everyone :-) 03:54:27 laters, good luck _p4bl0 03:55:31 lewis1711: are you a student? 03:55:40 yes 03:55:46 where at 03:55:48 a bit old to be one, but better late than never 03:55:51 eugene_trileski: new zealand 03:56:02 im also a student : ) 03:56:07 at New York 03:56:20 your location has new in the name too 03:56:22 high-five! 03:56:30 i almost went from PHD in neuroscience before i fell in love with cs 03:56:40 haha 03:56:47 high five 03:57:06 do i am stuck doing another batchelors degree (kinda) 03:57:34 so* 03:57:42 I am about to enter 2nd year maths + compsci 03:58:15 haha me too! 03:58:32 what languages do they focus on down there in new zealand 03:58:46 in your univ 03:59:23 eugene_trileski: Shit ones. 03:59:53 we just finished learning c++ (was pretty intense) and now moving on to Java and Assembly 03:59:56 eugene_trileski: Okay, I take that back. University of Auckland actually made a decent one, called R. But that was from the stats department, not the CS department. 04:00:40 Universities are all about Java these days! 04:00:41 cky: your also from nz? 04:00:44 eugene_trileski: Yes. 04:00:49 fds: Exactly. :-( 04:01:17 man because i just recently started cs path i have like 0 friends who like cs 04:01:18 -!- sanduz2 [~sanduz2@75-149-186-118-Miami.hfc.comcastbusiness.net] has quit [Quit: Leaving] 04:01:24 *( 04:01:52 eugene_trileski: Change your major before it's too late. 04:01:56 they are all in med school or phd in bio-related field 04:02:07 eugene_trileski: I majored in CS for the first year at university, got majorly bored, and switched to stats in my second year, and never looked back. 04:02:22 -!- wbooze [~levgue@xdsl-84-44-155-127.netcologne.de] has quit [Remote host closed the connection] 04:02:23 -!- homie [~levgue@xdsl-84-44-155-127.netcologne.de] has quit [Read error: Connection reset by peer] 04:02:28 I was going to suggest changing friends. :-P 04:02:35 :cky was it because you were already a programmer? 04:02:49 cky was born programming 04:02:56 eugene_trileski: Yes, because you can't learn to program via a CS or SE course. 04:03:05 eugene_trileski: If you can't teach yourself programming, you've already lost, IMHO. 04:03:18 fds: Hahahaha. 04:03:23 :-) 04:03:24 cky: I am not as bored because i am new to it : ) 04:03:40 but you are right 100% 04:03:45 i learned mostly by myself 04:03:46 eugene_trileski: If you're kickass, one day you will get bored, unless you're in a kickass course. 04:03:49 but how is stats less boring 04:04:20 eugene_trileski: In my case, the stats course didn't come with bullshit prerequisites, so I completed my major after my 2nd year. 04:04:26 cky: the way i see it, all college courses are boring and most learning takes place on my own 04:04:29 So, by going at the pace I preferred, I staved off boredom. 04:04:45 eugene_trileski: Well, of course. 04:05:28 cky: i prefer doing programming projects over math hw : ( 04:06:21 But but but, numbers are awesomesauce! 04:06:47 I like writing programs to do my maths homework! 04:06:48 cky im not big into math (i dont hate it just not in love) 04:07:06 (Okay, I don't have maths homework, but Project Euler counts, right? :-P) 04:07:06 i like building things 04:07:11 and designing thing 04:07:11 s 04:07:41 i wanted to try that Euler idea 04:08:19 That reminds me, I think I've got some new ones to upload... 04:08:22 *fds* checks 04:08:36 homie [~levgue@xdsl-84-44-155-127.netcologne.de] has joined #scheme 04:08:51 Yay for Project Euler! 04:08:57 -!- rpg [~rpg@216.243.156.16.real-time.com] has quit [Remote host closed the connection] 04:09:01 I will guiltily admit, most of my Project Euler solutions were written in... 04:09:03 ...Perl. 04:09:37 cky: will will burn you on the cross 04:09:43 we* 04:10:20 Hehehehehe. 04:10:39 * how do i do the star prefixed verbs 04:10:40 wbooze [~levgue@xdsl-84-44-155-127.netcologne.de] has joined #scheme 04:10:45 /me 04:10:47 thanks 04:10:59 *eugene_trileski* trying /me 04:11:00 I've always had a slight Perl fetish; it just seems so dirty. But, I've never actually written any 04:11:16 eugene_trileski: Yay! You made it! 04:11:27 fds: Once you pop, you can't stop. 04:11:32 cky: recursively : ) 04:11:37 eugene_trileski: :-P 04:11:40 eugene_trileski: now ask how you write a message beginning with / 04:11:54 *eugene_trileski* asks 04:11:54 cky: Maybe I just shouldn't pop then. ;-) 04:11:57 /like this 04:12:09 good one ; ) 04:12:09 /me can do that too 04:12:19 eugene_trileski: now you try! 04:12:33 lol 04:12:36 hahaha 04:12:51 "/lol" 04:12:59 /lol 04:12:59 eugene_trileski: mainly java here. first year is currently in C#. there's a bit of haskell, python and assembler thrown in :/ 04:13:01 haha 04:13:04 figured it out ; ) 04:13:09 i am going to do my best to ignore java and try and focus on the concepts:( 04:13:14 hehe 04:14:04 lewis1711: Paul Grahm got me into this field so i am taking his advice about lisp etc... 04:14:42 they don't teach us functional programming 04:14:49 lewis1711: I hear Clojure is good for learning the Java platform without the Java-language cruft. 04:14:50 wow, really? 04:14:53 although we can take "programming languages" 04:14:57 they at least have one FP class here 04:15:05 lewis1711: Of course, Clojure is too heretical for my tastes, so I haven't got very far into it. 04:15:10 Clojure is an awesome idea 04:15:16 tbh my comp sci department isn't very crash hot, but it's convenient so:P 04:15:28 cky: how is it heretical (curious)? 04:15:37 just because it's java? 04:15:38 What does `crash hot' mean? 04:15:38 uses different kind of parens 04:15:54 fds: humm, "not too great" maybe 04:15:58 different kinds? 04:15:58 rien: No, because it departs from many Lisp traditions. 04:16:09 my bad, that's not very standard english 04:16:13 lewis1711: I see, thanks 04:16:16 rien: Like it's not cons cell focused, from what I hear. 04:16:16 cky: which gives it a chance to become mainstream 04:16:20 cky: like being useful?;) 04:16:21 I guess it's a Kiwiism 04:16:21 eugene_trileski: That is true. 04:16:34 eugene_trileski: Life requires some compromises, I concede. 04:17:15 that's bad 04:17:27 yup 04:17:55 -!- z0d [~z0d@unaffiliated/z0d] has quit [Ping timeout: 255 seconds] 04:18:30 come on that can't be the kind of compromise needed to make it mainstream :/ 04:18:37 does anyone know of a linux mouse driver/soft that allows me to change how many lines it scrolls per iteration on the scroolwheel 04:18:55 in win i used logitech soft for that 04:19:00 eugene_trileski: It's not a Linux mouse driver thing. 04:19:09 eugene_trileski: It's an...X configuration thing. 04:19:11 rien: Worse is better; make Scheme worse and we'll all be happy! 04:19:23 cky: oh 04:19:37 z0d [~z0d@unaffiliated/z0d] has joined #scheme 04:19:44 fds: unfortunately that sentence has been proven true too many times 04:21:14 rien: Also, please ask your bloody question on the other channel already. 04:22:07 what other channel? 04:22:31 The secret channel where we all talk about you 04:23:45 I idle there, it feeds my ego 04:24:04 you needed a more subtle name than "#lewisfanclub" though 04:24:58 hahaha 04:25:56 ;p 04:26:06 :-) 04:26:21 I should try out clojure at some stage though. not because of the JVM, but because I understand they try and add some syntax to a LISP. which interests me 04:26:36 lewis1711: The other channel is named after a well-known programming Q&A site. 04:27:06 oh yeah 04:27:45 ...which I used to be seriously addicted to, but have seldom any time for any more. 04:28:05 I hang out in the channel because most people there are my friends, and they don't give a toss much about the site either. 04:29:00 he made the language to bring lisp to the public and because he wasn't satisfied with concurrent programming paradigms in other languages 04:29:23 eugene_trileski: Yep. 04:29:30 eugene_trileski: I do like the transactional memory stuff, though. 04:29:34 -!- MrFahrenheit [~RageOfTho@users-146-124.vinet.ba] has quit [Ping timeout: 255 seconds] 04:29:49 eugene_trileski: That's probably where the Big Win is. 04:29:56 cky: : ) 04:30:04 ...though, for concurrent programming, I prefer Erlang-style message passing. 04:30:22 yeah but who is smart enough to learn Erlang? 04:30:48 who can bare the ugliness thereof, rather. 04:30:54 lewis1711: I'm reading Joe Armstrong's book, actually. I'll get through it one day. 04:31:05 rien: Right, so I should write some Scheme libraries to do similar concepts. 04:31:17 there is the award winning movie however 04:31:30 Are you talking about The Social Network? 04:31:43 haha, no. Erlang, the move. you've not seen it?:P 04:32:24 *rolls eyes* 04:32:43 hello cky, I see you've fixed that bug 04:32:45 *lewis1711* hangs up 04:32:50 i still cant figure out where to set up num_lines for mousewheel in linux 04:33:02 cky: I have that book as well but haven't had time to read it 04:33:14 bitweiler: Heheheh. 04:34:03 -!- jensn [~ceres@c-83-233-145-103.cust.bredband2.com] has quit [Read error: Operation timed out] 04:34:13 http://www.youtube.com/watch?v=qyVvGjNjBOA 04:34:18 cky: ever heard of Reia? 04:34:33 ruby syntax for erlang 04:34:40 they abandoned the project 04:34:45 Hahahahaha. 04:34:50 someone should make scheme syntax to erlang 04:34:54 I think we should create an S-expression syntax for Erlang. 04:34:55 And C++. 04:34:56 which shouldn't be hard at all 04:35:00 yes!! for C 04:35:03 I'd love that 04:35:05 (S-expression syntax for C++, not C++ syntax for Erlang.) 04:35:15 for C!? 04:35:20 lewis1711: You heard correctly. 04:35:23 yes, I don't like C++ 04:35:32 that... would be odd 04:35:39 why? 04:36:06 cky: share your arguments for C++ instead of C 04:36:35 It would make C more modern and I wouldn't have to learn archaic keybindings^W syntax just for one application^W language! 04:37:13 fds: Hahahahaha. 04:37:31 rien: C++ has a higher abstraction level than C. 04:37:32 jensn [~ceres@c-83-233-145-103.cust.bredband2.com] has joined #scheme 04:37:55 You can have templates (for generic programming), operator overloading (to enable operators for user-defined types), virtual functions (polymorphism), etc. 04:38:10 Exceptions (to decouple error conditions from the main flow of code). 04:38:24 templates are evil, sorcery!! 04:38:39 There is also RAII, which enables you to never have to remember to free things manually. 04:38:42 cky: plus those things should be done on the scheme level of the language 04:38:59 cky: is that generally considered Good (tm) ? 04:39:02 that raii 04:39:05 There are C++ things that no managed language, including Scheme, can or should do. 04:39:15 RAII is seriously awesomesauce. 04:39:29 If I have to name the one defining C++ feature, that'd probably be it. 04:39:40 I can't use C++ after learning D:P 04:39:40 ok C++ then. how much slower is cpp considered to be compared to C? 04:39:55 lewis1711: nobody with a sense of beauty can use C++ :) 04:39:59 I can use C though, because it's more minimalist and my expectations are lower 04:40:02 rien: That depends on the features you use. You have to be educated about which features are expensive. 04:40:11 ha 04:40:17 rien: For example, RTTI is generally seen to be expensive (think Java reflection). 04:40:26 rien: So, you try to structure your program to avoid using RTTI. 04:41:08 ic (never heard of rtti) 04:42:23 Then, you should be fine. RTTI is generally stuff in , like typeid. Also, dynamic_cast. 04:42:47 (Though, if you have complicated multiple-inheritance class hierarchies, some dynamic_cast may be necessary.) 04:43:01 *jlongster* looks at the Scheme channel, sees C++, starts going into shock 04:43:02 So dynamic_cast may not be totally avoidable, but the rest of RTTI usually is. 04:44:04 -!- MichaelRaskin [~MichaelRa@195.91.224.225] has left #scheme 04:44:51 jlongster: it's true. we are all giving up scheme and moving to C++. we want the simplicty, consistancy and abstraction it brings 04:44:56 hahah 04:45:36 jlongster: Hahahahaha. 04:45:54 rien: There are lots of C++-heads in the other channel. Feel free to continue the discussion there. 04:46:07 lewis1711: funniest thing I've heard all day :) 04:46:08 cool 04:46:16 that was pretty funny indeed, props 04:46:21 Hehehehehe. 04:46:32 :D 04:46:49 *rien* hands lewis1711 a cake 04:47:23 does rudybot have a @remember feature? 04:47:28 D is really a nice language though. but it's a massive project and I feel perhaps too ambitious. though perhaps I should give it a few years for version 2 become mature 04:47:43 *version 2 to become.. 04:48:33 I think C would be better for that 04:48:45 because I do *not* want to see templates in sexprs 04:48:52 that would scar me forever 04:48:54 I trust Andrei Alexandrescu's opinion, and he thinks D 2.0 is awesome. 04:51:02 D? 04:51:12 as in the D with 2 "standard" libraries? 04:51:24 Heh. 04:55:05 cky: and Walter Bright who wrote the first C++ to machine code compiler. 04:55:25 Huh. 04:55:29 Andrei has added a lot of functional stuff to D. it's hardly haskell but it's very nice for a C-like 04:55:36 I didn't know Digital Mars had that long of a history, but it's conceivable. 04:55:53 yeap. he used to work for symantec 04:55:57 Nice. 04:56:07 -!- kilimanjaro [~kilimanja@unaffiliated/kilimanjaro] has quit [Ping timeout: 240 seconds] 04:57:04 rien: Thoughts? (define ( a b) ( t s) (struct [t first] [s second])) 04:57:37 My eyes asplode. 04:57:40 ughghg 04:57:52 hahahaha 04:57:55 cky: see? that's why it should be C :P 04:58:03 QED 04:58:03 :-P 04:58:49 The sad part is... I don't know how to make that much cleaner. 04:59:22 *nods* 04:59:29 I really dream of writing a sexp syntax for C. 04:59:47 and the reason I'm sharing this is because I wouldn't mind a bit if somebody did it before me and shared it with everybody else :) 05:00:06 Hehehehehe. 05:00:12 rien: http://bitc-lang.org perhaps? 05:00:36 "BitC has just made a transition from a LISP-like (s-expression) syntax to a more conventional syntax" 05:00:37 yeah I heard about that the other day 05:00:40 Too late :-P 05:00:40 they dropped sexprs 05:00:42 whoa 05:00:43 ah, fds beat me 05:00:57 ML syntax is great too 05:00:58 *fds* beats lewis1711 05:01:12 gambit has that "scheme infix" macro thing. that looks sort of like C 05:01:19 yes yes 05:01:23 that's very good as well 05:01:28 Great, so what's their advertising point now? 05:01:51 only problem is when you write the inlined C, that you have to write it in C :P 05:02:03 could one make a statically typed s-expr systems programming language with an optional infix macro for those who aren't enlightened? 05:02:09 ha 05:02:14 I don't mind C for a lot of things 05:02:29 just not for organising a program 05:02:49 I don't like to do dirty things in C like *p++ = *t++ 05:02:53 that's really horrible 05:03:06 then do that bit in scheme;) 05:03:26 lewis1711: I'm attempting to provide three separate syntax for my language with tools to convert (comments included) between representations. 05:03:28 wouldn't be as fast 05:03:41 Let me know when they add map to C. :-P 05:03:46 Obfuscate: oh yes, you are the fellow making a static scheme, right? 05:04:19 fds: std::transform (C++, not C, but oh well). 05:04:45 lewis1711: You're probably thinking of me, but I'm not really making a scheme dialect: just an sexp-based language. 05:04:50 *fds* goes to #c++ 05:04:53 Bye! 05:05:33 I'll close your file descriptor 05:05:55 Obfuscate: I had an interesting discussion on racket today, about function prototypes in s-expressions. can you share how you do it, or how you are planning to? 05:05:55 That's what she said! 05:06:04 offby1: :-) 05:06:06 fds: Hahaha. 05:06:10 fds, void intmap(int (*f)(int), int *l) { int *i = l; do { *i = f(*i); } while (++i); } 05:06:23 groovy2shoes: Fail. It needs to handle more than ints. 05:06:31 Obfuscate: foldl proved quite troublesome. (from Ocaml: ('a -> 'b -> 'a) -> 'a -> 'b list -> 'a) 05:06:34 groovy2shoes: That's why std::transform rules; it's generic. 05:06:39 cky: that's what XMACROS are for. 05:06:44 groovy2shoes: O_o 05:07:24 don't tell me there's an improved macro system for C or C++ 05:07:26 lewis1711: Just like the joke above, except no <> for templates (because sfinae is silly anyways). 05:07:49 cky: they work more or less like ML functors, but syntax is ugly... you define the function in terms of #defined types, then any time you need a function to handle a new type, you #define the type and #include the function. 05:07:50 *rien* goes to the kitchen to make a sandwich 05:08:17 rien: more like exploiting the existing preprocessor. 05:12:04 groovy2shoes: isn't the existing preprocessor considered bad and all? 05:13:02 Depends on whether "existing preprocessor" means cpp or m4, I guess. :-P 05:13:19 *cky* doesn't really care for m4 either, though, so. 05:14:00 cpp ... m4 05:14:02 *offby1* shoots himself 05:15:21 lewis1711: I should probably note that I started a new language in part to get around silly type restrictions like those. 05:15:40 offby1: Awwww.... 05:16:10 I want a language that has so little type checking that when I do 12 * "dozen" I get "gross" 05:16:21 LOL 05:16:34 cky, I mean cpp. And yeah, it's limited. 05:16:49 :-| 05:21:19 -!- drdo [~user@91.205.108.93.rev.vodafone.pt] has quit [Ping timeout: 255 seconds] 05:26:31 -!- k04n_ [~k04n@cpe-76-175-192-194.socal.res.rr.com] has quit [Remote host closed the connection] 05:29:44 -!- adu [~ajr@pool-72-83-254-159.washdc.fios.verizon.net] has quit [Quit: adu] 05:37:26 -!- parcs [~patrick@ool-45741d7d.dyn.optonline.net] has quit [Ping timeout: 240 seconds] 05:39:10 parcs [~patrick@ool-45741d7d.dyn.optonline.net] has joined #scheme 05:45:07 annodomini [~lambda@wikipedia/lambda] has joined #scheme 05:47:48 nilg [~user@77.70.2.229] has joined #scheme 06:02:54 kniu [~kniu@DOHOHO.RES.CMU.EDU] has joined #scheme 06:14:00 _danb_ [~yaaic@124-149-166-62.dyn.iinet.net.au] has joined #scheme 06:19:00 k04n [~k04n@cpe-76-175-192-194.socal.res.rr.com] has joined #scheme 06:29:14 -!- groovy2shoes [~guv@unaffiliated/groovebot] has quit [Quit: groovy2shoes] 06:36:40 Mohamdu [~Mohamdu@CPE00222d6b3798-CM00222d6b3795.cpe.net.cable.rogers.com] has joined #scheme 06:36:50 -!- Mohamdu [~Mohamdu@CPE00222d6b3798-CM00222d6b3795.cpe.net.cable.rogers.com] has quit [Changing host] 06:36:50 Mohamdu [~Mohamdu@unaffiliated/mohamdu] has joined #scheme 06:40:52 -!- annodomini [~lambda@wikipedia/lambda] has quit [Quit: annodomini] 06:43:18 jonrafkind [~jon@jonr5.dsl.xmission.com] has joined #scheme 06:50:55 sanduz2 [~sanduz2@75-149-186-118-Miami.hfc.comcastbusiness.net] has joined #scheme 07:04:53 -!- nilg [~user@77.70.2.229] has quit [Remote host closed the connection] 07:05:30 nilg [~user@77.70.2.229] has joined #scheme 07:08:48 wbooze` [~levgue@xdsl-78-35-168-253.netcologne.de] has joined #scheme 07:09:25 homie` [~levgue@xdsl-78-35-168-253.netcologne.de] has joined #scheme 07:11:18 -!- wbooze [~levgue@xdsl-84-44-155-127.netcologne.de] has quit [Ping timeout: 246 seconds] 07:11:37 -!- homie [~levgue@xdsl-84-44-155-127.netcologne.de] has quit [Ping timeout: 255 seconds] 07:20:00 -!- gnomon [~gnomon@CPE0022158a8221-CM000f9f776f96.cpe.net.cable.rogers.com] has quit [Ping timeout: 240 seconds] 07:20:24 -!- Mohamdu [~Mohamdu@unaffiliated/mohamdu] has quit [Ping timeout: 240 seconds] 07:20:28 -!- nilg [~user@77.70.2.229] has quit [Ping timeout: 265 seconds] 07:20:52 -!- _danb_ [~yaaic@124-149-166-62.dyn.iinet.net.au] has quit [Quit: Yaaic - Yet another Android IRC client - http://www.yaaic.org] 07:21:05 -!- scheibo [~scheibo@CPE001dba06b84c-CM0026f3358955.cpe.net.cable.rogers.com] has quit [Ping timeout: 264 seconds] 07:21:26 _danb_ [~yaaic@124-149-166-62.dyn.iinet.net.au] has joined #scheme 07:22:39 scheibo [~scheibo@CPE001dba06b84c-CM0026f3358955.cpe.net.cable.rogers.com] has joined #scheme 07:22:41 Mohamdu [~Mohamdu@CPE00222d6b3798-CM00222d6b3795.cpe.net.cable.rogers.com] has joined #scheme 07:25:02 -!- jlongster [~user@c-98-242-90-116.hsd1.ga.comcast.net] has quit [Ping timeout: 240 seconds] 07:25:59 gnomon [~gnomon@CPE0022158a8221-CM000f9f776f96.cpe.net.cable.rogers.com] has joined #scheme 07:27:42 k04n_ [~k04n@cpe-76-175-192-194.socal.res.rr.com] has joined #scheme 07:30:33 -!- k04n [~k04n@cpe-76-175-192-194.socal.res.rr.com] has quit [Ping timeout: 246 seconds] 07:35:41 -!- parcs [~patrick@ool-45741d7d.dyn.optonline.net] has quit [Remote host closed the connection] 07:36:36 parcs [~patrick@ool-45741d7d.dyn.optonline.net] has joined #scheme 07:39:23 -!- elly [~elly@atheme/member/elly] has quit [Ping timeout: 260 seconds] 07:39:36 -!- yorick [yorick@gateway/shell/shellium.org/x-elvwvlusqnnipvjc] has quit [Ping timeout: 276 seconds] 07:39:49 elly [~elly@atheme/member/elly] has joined #scheme 07:40:24 yorick [yorick@gateway/shell/shellium.org/x-nyrqmhcampitojto] has joined #scheme 07:42:46 -!- dRbiG [p@irc.kaer.tk] has quit [Ping timeout: 260 seconds] 07:43:28 -!- araujo [~araujo@gentoo/developer/araujo] has quit [Ping timeout: 260 seconds] 07:46:31 dRbiG [p@irc.kaer.tk] has joined #scheme 07:50:02 araujo [~araujo@gentoo/developer/araujo] has joined #scheme 07:51:28 qhe1 [~qhe2@192.55.55.41] has joined #scheme 07:52:43 -!- qhe [~qhe2@nat/intel/x-kmhvkerudqbejawk] has quit [Ping timeout: 276 seconds] 07:58:44 hkBst [~quassel@gentoo/developer/hkbst] has joined #scheme 08:15:34 -!- jonrafkind [~jon@jonr5.dsl.xmission.com] has quit [Ping timeout: 265 seconds] 08:24:38 -!- vu3rdd [~vu3rdd@fsf/member/vu3rdd] has quit [Ping timeout: 240 seconds] 08:35:39 MichaelRaskin [~MichaelRa@195.178.216.22] has joined #scheme 08:40:21 dfkjjkfd [~paulh@210-11-ftth.onsnetstudenten.nl] has joined #scheme 08:49:23 -!- MichaelRaskin [~MichaelRa@195.178.216.22] has quit [Ping timeout: 260 seconds] 08:54:46 MichaelRaskin [~MichaelRa@195.178.216.22] has joined #scheme 08:58:10 -!- _danb_ [~yaaic@124-149-166-62.dyn.iinet.net.au] has quit [Quit: Yaaic - Yet another Android IRC client - http://www.yaaic.org] 09:00:01 -!- arbscht [~arbscht@unaffiliated/arbscht] has quit [Ping timeout: 255 seconds] 09:01:44 arbscht [~arbscht@unaffiliated/arbscht] has joined #scheme 09:02:42 -!- incubot [incubot@klutometis.wikitex.org] has quit [Remote host closed the connection] 09:03:54 incubot [incubot@klutometis.wikitex.org] has joined #scheme 09:07:17 bubo [~bubo@178-191-152-186.adsl.highway.telekom.at] has joined #scheme 09:09:05 -!- gnomon [~gnomon@CPE0022158a8221-CM000f9f776f96.cpe.net.cable.rogers.com] has quit [Ping timeout: 264 seconds] 09:14:46 gnomon [~gnomon@CPE0022158a8221-CM000f9f776f96.cpe.net.cable.rogers.com] has joined #scheme 09:55:21 -!- xwl_ [~wixu@nat/nokia/x-bpafeejushlkcgki] has quit [Ping timeout: 272 seconds] 09:57:40 -!- `micro [~micro@www.bway.net] has quit [Ping timeout: 250 seconds] 10:06:10 user17 [~user@p5B2A9BDC.dip0.t-ipconnect.de] has joined #scheme 10:07:34 hi 10:11:26 tupi [~david@186.205.37.15] has joined #scheme 10:15:11 user17: Hey 10:15:34 hi askhader 10:15:50 whatsup? 10:17:06 is anyone here using tinyscheme? i just recently "discovered" it (and with TS, the interest to detect an entirely language... well, new to me, that is :P), but apparently TS lacks a format function, and i really need one, as most tutorials use it... then again, my scheme knowledge isn't good enough to write one myself :( 10:17:29 askhader: not much, but the rest is explaind in the wall of text above :P 10:18:41 tinyscheme really just provides a bare minimum of scheme (see init.scm: http://codepad.org/YOYdTLH2 -- that, and a few builtin functions) 10:18:52 Hm, I've not used it 10:19:16 You want a format function for formatting output? 10:19:19 yes 10:19:29 Do you have (display ) ? 10:19:43 like, (format #t "~a bottles of beer on the wall~%" x) (from the 99-bottles-of-beer code) 10:19:47 i guess so, lemme see 10:20:00 yes, display works 10:20:11 Well I guess some macro-writing is in order =] 10:20:17 Just for laughs check to see that you don't have printf 10:20:23 okay 10:20:43 both print and printf are unbound 10:20:55 Well at least you can use those names if you want :P 10:22:27 hehe, true :P 10:25:38 -!- Jafet [~Jafet@unaffiliated/jafet] has quit [Ping timeout: 260 seconds] 10:26:45 i think i found a working (format) 10:27:00 Err, format isn't trivial to write 10:28:34 Jafet [~Jafet@unaffiliated/jafet] has joined #scheme 10:28:42 try SRFI 28 10:29:50 user17: maybe another scheme system providing all these functions would be a better starting point for tutorials and introductory material 10:30:18 C-Keen: yeah, i guess so too 10:30:58 then again, i thought about using scheme as an embedded scripting language... and the implementation really needs to have a non-restrictive license... and since tinyscheme is released under the BSD license.. :P 10:31:06 racket and chicken both seem to have very good documentation, for what it's worth 10:32:00 user17: chicken compiles to C, so might be the ticket? there's also gambit and bigloo that do that (assuming you are embedding it in C or C++) 10:32:10 dunno about licenses though 10:32:45 well, it needs to be an interpreter, compiling to C wouldn't be so great in that case 10:33:06 alaricsp [~alaric@geniedb.hotdesktop.biz] has joined #scheme 10:33:10 gambit and bigloo also embed an interpreter. 10:34:09 so does chicken, I believe 10:34:11 *lewis1711* checks 10:34:19 yup 10:34:41 Yeah, EVAL / csi (the interactive REPL) are interpreted in Chicken 10:34:41 ah 10:34:47 user17: with gambit (and I think chicken) you can inline C code, so you can just include a header than write little function wrappers. quite handy 10:34:56 okay 10:34:57 (possibly bigloo too, never used it:P) 10:35:05 i'll check chicken and gambit out 10:35:08 user17: gambit works on Nintendo DS and on iPhone. If that's embedded/portable enough for you. 10:35:18 Nintendo DS? that's pretty cool:) 10:35:26 sounds impressive 10:35:50 Yeah, talking to C from Chicken is pretty easy; see, eg http://chickadee.call-cc.org/chickadee/bind 10:36:31 *Axioplase_* goes back to work 10:39:26 -!- sanduz2 [~sanduz2@75-149-186-118-Miami.hfc.comcastbusiness.net] has quit [Ping timeout: 240 seconds] 10:44:47 -!- k04n_ [~k04n@cpe-76-175-192-194.socal.res.rr.com] has quit [Remote host closed the connection] 10:50:55 that would be even better if chicken would be an interpreter... but i'll definitely keep chicken in mind ;P 10:50:58 Kovensky [~kovensky@abraxo.bluebottle.net.au] has joined #scheme 10:51:16 user17: Chicken _includes_ an interpreter 10:51:27 *sjamaan* always wonders why people don't get that 10:51:49 it does? oh 10:52:42 somnium [~user@adsl-65-190-98.dab.bellsouth.net] has joined #scheme 10:52:51 MrFahrenheit [~RageOfTho@users-146-124.vinet.ba] has joined #scheme 10:52:59 ha 10:53:12 are there scheme implementations that don't? :) 10:53:30 *sjamaan* certainly can't name any 10:54:00 let him alone though, he's fresh off the non-scheme boat :) 10:54:12 *lewis1711* says, a 3 week veteran of scheme 10:54:13 anyone know how to convince paredit that "|" isn't a delimiter? 10:54:29 i didn't say that i want to program in scheme forever :P 10:54:38 right now, i just feel like playing around with it 10:55:22 scheme may end up like my ruby phase I had. but I sorta dig it 10:56:56 the amount of assembler files in the chicken distribution kinda sorta imply that chicken isn't very portable... 10:57:10 might be just my first impression, though 10:57:38 user17: you might try gambit then. gambit is quite minimalist though. 10:57:40 incandenza [~quassel@ip68-231-109-244.ph.ph.cox.net] has joined #scheme 10:58:16 the license of gambit is a little too restrictive (LGPL or Apache; Apache would be only lesser of the evil :P) 10:58:46 user17: it is your first impression obviously, and if portablility is an issue for you check the supported platforms and see if they meet your needs 10:58:51 I am no lawyer, but doesn't the license apply if you want to take gambits codebase and make your own implementation? 10:58:53 perfect would be an MITL compatible license 10:59:09 I am pretty sure a PL's language doesn't effect programs you write with it... 10:59:11 chicken's core is bsd licensed 10:59:25 the LGPL widely allows closedsource and commercial usage, but doesn't permit static linking 11:00:15 corruptmemory [~jim@ool-18bbd5b2.static.optonline.net] has joined #scheme 11:03:03 k04n [~k04n@cpe-76-175-192-194.socal.res.rr.com] has joined #scheme 11:04:08 Blkt [~user@dynamic-adsl-78-13-251-76.clienti.tiscali.it] has joined #scheme 11:07:08 good day everyone 11:08:27 -!- corruptmemory [~jim@ool-18bbd5b2.static.optonline.net] has quit [Ping timeout: 240 seconds] 11:14:03 nilg` [~user@77.70.2.229] has joined #scheme 11:14:36 -!- xian [xian@we-are-the-b.org] has quit [Remote host closed the connection] 11:30:21 -!- bubo [~bubo@178-191-152-186.adsl.highway.telekom.at] has quit [Ping timeout: 265 seconds] 11:32:13 bubo [~bubo@178-191-152-247.adsl.highway.telekom.at] has joined #scheme 11:33:45 -!- k04n [~k04n@cpe-76-175-192-194.socal.res.rr.com] has quit [Remote host closed the connection] 11:46:46 masm [~masm@2.80.147.25] has joined #scheme 12:00:26 -!- peterhil [~peterhil@a91-153-127-82.elisa-laajakaista.fi] has quit [Quit: Must not waste too much time here...] 12:00:50 peterhil [~peterhil@a91-153-127-82.elisa-laajakaista.fi] has joined #scheme 12:05:15 -!- parcs [~patrick@ool-45741d7d.dyn.optonline.net] has quit [Read error: Connection reset by peer] 12:05:41 parcs [~patrick@ool-45741d7d.dyn.optonline.net] has joined #scheme 12:06:38 myu2 [~myu2@v077103.dynamic.ppp.asahi-net.or.jp] has joined #scheme 12:15:38 -!- nowhereman is now known as nowhere_man 12:17:50 -!- homie` [~levgue@xdsl-78-35-168-253.netcologne.de] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 12:18:03 -!- wbooze` [~levgue@xdsl-78-35-168-253.netcologne.de] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 12:20:41 wbooze [~levgue@xdsl-78-35-168-253.netcologne.de] has joined #scheme 12:21:59 homie [~levgue@xdsl-78-35-168-253.netcologne.de] has joined #scheme 12:27:00 -!- valium97582 [~daniel@187.57.16.213] has quit [Ping timeout: 246 seconds] 12:27:41 valium97582 [~daniel@187.57.24.135] has joined #scheme 12:38:48 -!- dfkjjkfd [~paulh@210-11-ftth.onsnetstudenten.nl] has quit [Quit: Lost terminal] 12:44:19 -!- bubo [~bubo@178-191-152-247.adsl.highway.telekom.at] has left #scheme 12:45:01 f8l [~f8l@77-255-12-39.adsl.inetia.pl] has joined #scheme 12:50:18 HG` [~HG@xdsl-92-252-116-183.dip.osnanet.de] has joined #scheme 12:53:33 gravicappa [~gravicapp@ppp85-140-117-185.pppoe.mtu-net.ru] has joined #scheme 12:59:50 -!- qhe1 [~qhe2@192.55.55.41] has quit [Ping timeout: 240 seconds] 13:08:20 valium97682 [~daniel@187.35.238.128] has joined #scheme 13:09:22 -!- valium97582 [~daniel@187.57.24.135] has quit [Ping timeout: 240 seconds] 13:10:53 WonTu [~WonTu@p57B5411A.dip.t-dialin.net] has joined #scheme 13:11:07 -!- WonTu [~WonTu@p57B5411A.dip.t-dialin.net] has left #scheme 13:13:48 -!- valium97682 is now known as valium97582 13:14:04 it's a little difficult to google it, so what's #t for (as used in format, for example)? 13:14:51 rubybot: eval #t 13:15:18 user17: it's true:) guess what false is 13:15:30 #f? 13:15:36 rudybot: (eval #t) 13:15:37 lewis1711: your sandbox is ready 13:15:37 *bitweiler* nods and smiles 13:15:37 lewis1711: ; Value: #t 13:15:38 maybe 13:15:39 and only #f 13:15:51 this is important 13:15:53 bitweiler: no brackets, for shame! :) 13:15:56 i'm kind of puzzled how to use (format) to return the string, instead of writing it 13:16:09 oh 13:16:12 C-Keen: huh? why is that important? 13:16:16 apparently it works *somehow*, but i yet have to discover how 13:16:18 what else would it be? 13:16:23 oh 13:16:32 I forget msot languages are stupid lol 13:16:37 lewis1711: because comming from other languages other values are treated as #f too 13:16:39 and have things like nil and 0 for false 13:16:48 it is a common pitfall 13:16:58 or '() 13:17:10 is that CL? 13:17:29 in CL 0 is true. 13:17:47 ugh 13:17:52 CL uses nil as a empty list as well 13:18:41 stuff like that is why I gave up CL lol 13:18:50 In CL, a lot of functions are even specified to use any atom as end of list too. 13:18:54 after like, 30 mins of playing with it 13:19:07 and being told that + is nil, and other such things 13:19:12 *lewis1711* is quite judgmental 13:19:53 lewis1711: + is a variable that is bound to the last form that was evaluated. 13:20:13 in the REPL. 13:21:37 pjb: looks very useful indeed 13:22:09 Seems to be useful to lewis1711 as a reason not to learn CL at least. 13:22:19 yeap 13:22:31 maybe scheme will be a gateway drug 13:22:40 but for now, looks icky 13:23:34 the first thing to know about CL, vs. scheme is that CL is a lisp-2 while scheme is a lisp-1. 13:27:14 so, now i have at least managed to write to a # (using: (open-output-string (string))), but how do i display the actual data? i also apologize for my terribly annoying noobish questions 13:28:08 I don't understand those CL vs scheme flamewars over the net. 13:28:26 user17: what do you want to do? 13:28:48 C-Keen: display the content of the port... whatever that actually is :P 13:28:51 valium97582: are there flamewars that seem sensible to you? 13:28:59 rudybot: (eval (display "Yay, look a display string!")) 13:29:00 bitweiler: yay 13:29:12 i suppose PORT is scheme-ish for handle, filehandle, stringhandle, whatnot 13:29:22 (with-input-from-port (lambda () (print)) port) 13:29:29 zevarito [~zevarito@r186-48-202-18.dialup.adsl.anteldata.net.uy] has joined #scheme 13:29:30 rudybot: (eval (display (open-output-string (string)))) 13:29:30 user17: your sandbox is ready 13:29:30 user17: ; stdout: "#" 13:29:42 okay 13:29:44 (with-input-from-port (lambda () (print (read))) port) of course 13:30:08 user17: what C-Keen said of course 13:30:18 depending on your input you might need different read functions 13:30:30 it's a string port 13:30:43 hence open-output-string :P 13:31:12 and what's in there? 13:31:31 or better where do you take the input for that port from? 13:32:20 i've been storing a formatted string in there 13:32:39 why not print that directly? 13:33:36 i guess i'll go with string and string-append, until i figured out how to use (format) correctly :P 13:33:45 ? 13:34:40 (format #t ...) will print to (current-output-port) IIRC 13:36:26 rudybot: (eval (format #t "Hello ~s~%" user17 )) 13:36:27 C-Keen: your sandbox is ready 13:36:27 C-Keen: error: reference to undefined identifier: user17 13:36:34 rudybot: (eval (format #t "Hello ~s~%" 'user17 )) 13:36:35 C-Keen: error: format: expects type as 1st argument, given: #t; other arguments were: "Hello ~s~%" user17 13:36:44 rudybot: (eval (format "Hello ~s~%" 'user17 )) 13:36:44 C-Keen: ; Value: "Hello user17\n" 13:36:55 rudybot: (eval (display (format "Hello ~s~%" 'user17 ))) 13:36:55 C-Keen: ; stdout: "Hello user17\n" 13:36:58 aj 13:37:11 chicken does use another format form 13:37:56 bremner: good point. 13:46:56 http://codepad.org/rDsoqmPg i can't get over how wrong this actually looks 13:47:11 and something tells me, that's now how it's done anyway 13:48:20 schmir [~schmir@p54A90E11.dip0.t-ipconnect.de] has joined #scheme 13:49:27 noone pointing and laughing yet? :P 13:51:13 user17: (for-each (lambda (p) (format #t "'~a/modulename.scm'~%" p)) *module-paths*) 13:51:40 'path' is supposed to be a string that is used later :P 13:51:42 user17: you are using the same name for the internal definition this is illegal 13:51:51 hence why i'm creating it in the first place 13:52:07 what do you mean by used later? 13:52:31 would i really declare a variable if i wouldn't intend to use it at some point? 13:53:22 user17: shouldn't you be using something like set! ? 13:53:27 I don't know what you want to do, it is not obvious from your code 13:53:34 it is really weird 13:53:38 valium97582: i guess, lemme try it out 13:53:59 if you want to use the values later why not use map and bind the result and print that instead? 13:54:14 C-Keen: i don't blame you for not understanding it. i barely understand it myself. :P 13:57:29 and please could you use paste.lisp.org? It is really annoying if just adding a comment requires an account 13:57:53 user17: separate the construction of your path from the displaying bit 13:58:26 user17: also it is more custom to use let or let* for local variables 13:58:51 user17: the define inside the lambda is not creating a top-level binding if you assumed that 13:59:05 -!- lewis1711 [~lewis@125-239-255-244.jetstream.xtra.co.nz] has left #scheme 14:00:14 i'm waaaaaay to used to C++, or more likely, Lua/Python for that kind of tasks :P 14:00:47 great, (let) crashes tinyscheme >:( 14:02:39 rudybot: (eval (let ((a 2)) (display a))) 14:02:39 C-Keen: ; stdout: "2" 14:03:24 rudybot: (eval (let* ((a 2)(b (+ a 3)) b)) 14:03:24 C-Keen: error: eval:1:0: read: expected a `)' to close `(' 14:03:30 rudybot: (eval (let* ((a 2)(b (+ a 3))) b)) 14:03:30 C-Keen: ; Value: 5 14:12:03 also, what does * actually do in scheme? 14:12:17 is it just naming sugar, or does it serve a special purpose? 14:12:31 and no, i don't mean the multiplication operator :P 14:14:00 it is multiplication according to the standard. Any other meaning is an extension of your scheme system 14:14:11 I guess it is tied to the result of the last evaluation 14:15:27 (define *foo* (bar)) ; <-- what about that? 14:16:10 it is part of the symbol name 14:16:42 it is custom to mark global variables with * * wrapped around 14:16:49 called earmuff notation by some 14:17:01 but to your scheme this is just a name 14:17:05 no special meaning 14:17:12 same with -> / or ! 14:20:10 okay 14:27:30 rudybot: (display "Please don't use eval any more, kthx!") 14:27:31 cky: kthx* 14:27:36 Hmm. 14:27:49 rudybot: (+ 1 2 3) 14:27:50 cky: your racket sandbox is ready 14:27:50 cky: ; Value: 6 14:28:24 rudybot: eval (display "Testing 1 2 3") 14:28:25 cky: ; stdout: "Testing 1 2 3" 14:28:40 rudybot: eval (display "Please don't use (eval) any more, kthx!") 14:28:41 cky: ; stdout: "Please don't use (eval) any more, kthx!" 14:30:02 cky: any problems with that? 14:32:03 C-Keen: Well, using (eval) really does call eval in Scheme. 14:32:16 C-Keen: Using eval is telling Rudybot to interpret what comes after it as a Scheme expression. 14:32:48 C-Keen: Granted both cases do use eval, but using (eval) does mean that it (effectively) evals twice. 14:32:59 ah ok 14:33:51 drdo [~user@91.205.108.93.rev.vodafone.pt] has joined #scheme 14:34:44 Here's an example of what I mean. :-) 14:34:48 rudybot: (eval '(+ 1 2 3)) 14:34:49 cky: ; Value: 6 14:34:58 rudybot: eval '(+ 1 2 3) 14:34:59 cky: ; Value: (+ 1 2 3) 14:35:28 -!- REPLeffect [~REPLeffec@69.54.115.254] has quit [Ping timeout: 265 seconds] 14:35:59 In the past, rudybot _always_ required "eval" to precede the expression. However, eli (I think) made a change that enabled anything rudybot recognised as an S-expression to be treated as such. 14:36:23 The recognition is not perfect, hence why the first time I did the (display) it came back with something else. 14:36:46 In those cases, precede with "eval" to disambiguate. 14:38:10 learned something new. Thanks cky 14:39:33 -!- yorick [yorick@gateway/shell/shellium.org/x-nyrqmhcampitojto] has quit [Read error: Operation timed out] 14:39:59 My pleasure. :-) 14:42:21 no offense, but i don't think i'm ready to use LISP or LISP alike language in everyday business... it kinda enforces an entirely new way of thinking, compared to Lua, Python, or even Perl :/ 14:42:31 user17: It does?! 14:42:40 user17: What kind of new way is that? 14:42:49 it's really interesting to play around with scheme, especially racket, though 14:43:16 cky: the parentheses kinda tend to make things a little confusing :P 14:43:33 user17: Nah. After a while, you won't even see them at all! 14:43:51 user17: That's like saying the hiragana makes Japanese confusing. 14:43:54 especially stuff like (let ((name (lambda (p) (display p))))) ;; aaaaahhh 14:44:10 user17: If indent right, it's not hard to read at all. 14:44:15 never heard of hiragana :P 14:44:17 user17: configure your editor to show matches, indent it 14:44:31 It's best if you treat Lisp code the same way as Python, in terms of strict indentation. 14:44:42 my editor (Kate from the KDE project) already shows them with a bright yellow, but it's still confusing.. :P 14:45:38 Well, one day you'll get used to it, I'm sure. Be sure to read Riastradh's style guide. It will make code easier to read. 14:45:41 the problem is to detect intendation rules for stuff like (if ((cond (some expression)))), and 10000 lines down, (else ((let ...))) 14:45:51 user17: maybe this helps: http://bugs.kde.org/show_bug.cgi?id=207002 14:45:57 You're not supposed to have such big expressions. 14:46:02 Split it off into another function! 14:46:05 but then it may as well be included already 14:46:20 i wouldn't write such monsters anyway, but other people do :( 14:46:29 That's their problem, not yours. 14:46:36 user17: have you seen lisp code like this? 14:46:38 Strive to write quality programs yourself. 14:46:47 user17: who does that? names and numbers! we'll get the paren police on the case. 14:46:54 arbscht: :-) 14:47:02 arbscht: :) 14:47:10 C-Keen: thanks, i've found that before, although i have no clue how to install that... kate doesn't seem very modular in terms of scripts and co 14:47:25 arbscht: :P 14:47:28 I don't know 14:47:48 user17: for me, the parentheses are what makes everything clear :) 14:48:25 REPLeffect [~REPLeffec@69.54.115.254] has joined #scheme 14:48:25 rien_: i guess it depends on the developers point of view; it definitely makes it easier to see when a block begins, and when it ends; but besides that... :P 14:48:56 user17: you do see exactly where something starts and ends, there is no ambiguity 14:48:59 cky: isn't there a rainbow something in some editor that colorizes the parentheses differently for each matching set? 14:49:14 lisppaste does that 14:49:18 rien_: Yes, ask PovAddict about it, he had a screenshot of that. 14:49:22 -!- HG` [~HG@xdsl-92-252-116-183.dip.osnanet.de] has quit [Ping timeout: 276 seconds] 14:49:26 (In the other channel, yes.) 14:49:34 langmartin [~user@exeuntcha2.tva.gov] has joined #scheme 14:49:34 user17: here at work Kate is always the butt of jokes 14:50:04 if(1 == arg) { some_stuff(arg - 2); } versus (if (= (- arg 1)) (some_func (- arg 2))) :P 14:50:05 rien_: It's more likely to be KDevelop, though, because that's what PovAddict works on. 14:50:07 -!- valium97582 [~daniel@187.35.238.128] has quit [Ping timeout: 240 seconds] 14:50:11 C-Keen: well I meant for an editor, and so that the colors are always on 14:50:18 rien_: how come? i find Kate wonderful 14:50:18 I was hoping it'd be emacs/vim 14:50:36 -!- MichaelRaskin [~MichaelRa@195.178.216.22] has quit [Ping timeout: 250 seconds] 14:50:37 rien_: Awwww.... 14:50:57 user17: it lacks too many features, it's buggy, crashes when you split screens... 14:51:04 Kate highlights the parentheses in rainbow colors, yeah 14:51:45 user17: C-style syntax may be more compact, but you have to learn the syntax first. (Granted, many people have, just through playing with JS. But anyway.) 14:51:54 user17: Lisp-style syntax is much more...syntax-free. 14:52:02 user17: a properly lisp-aware editor does more than highlight parens. it should be natural to bounce your cursor around s-expressions, instead of just characters. emacs (optionally with paredit) does that 14:52:17 http://img152.imageshack.us/img152/4448/selection011.png (in case some people don't know what it looks like) 14:52:19 Yay bouncing cursors! 14:52:59 arbscht: I'd still like for each set of parens to have a different color than the others 14:52:59 cky: yes, i actually like the fact that LISP is syntax free, and you can actually define operators on the fly, then again, i'm sooo much more biased on C-style languages 14:53:13 <_p4bl0> (I was backlogging) to people in New Zealand, I suppose you know about Chaitin? His book "The Limits of Mathematics" is awesome :-) 14:53:13 Yay dancing cigarette packs! 14:53:21 user17: wow you're right 14:53:22 (C++ lets you overload operators though... thehehehehehe :P :P :P) 14:53:54 valium97582 [~daniel@187.74.35.156] has joined #scheme 14:53:58 HG` [~HG@xdsl-92-252-119-103.dip.osnanet.de] has joined #scheme 14:54:14 begrudgingly 14:54:24 rien_: yeah, and i find it really nice tbh :P 14:54:47 <_p4bl0> user17: in C++ you can overload but not create new ones 14:55:05 _p4bl0: cky and I went to the same university that chaitin visited. I have not met either of them, though 14:55:18 What arbscht said. 14:55:24 <_p4bl0> :-) 14:55:36 rien_: do you want rainbow parens in emacs? I think it is possible with highlight-parentheses-mode 14:55:42 _p4bl0: sure, but i couldn't think of any cases where that would make sense... then again, C++ is not a functional language, so i guess the programming "environment" is a little different 14:55:57 <_p4bl0> user17: agreed 14:55:59 arbscht: yeah 14:56:27 arbscht: (sorry, i didn't see your message) agreed, but as i said, i'm not very used to pure functional languages 14:56:46 user17: Methinks you need an edumacation in Haskell. 14:56:47 there are things that are a lot easier to do using C++ though. becoming angry at the language, for instance. 14:56:54 eww haskell :( 14:56:59 Then you will understand what "pure functional" means, as Lisp is not pure functional at all. 14:57:29 i actually want to avoid haskell due to it's utterly hideous syntax 14:57:33 from least to most functional: CL < Scheme < OCaml < Haskell 14:57:43 rien_: *nods* 14:57:59 OCaml is actually pretty neat 14:58:02 user17: hideous? I've never whipped up code as fast as I did in haskell 14:58:03 user17: Beauty is skin deep. 14:58:11 but i would really rather skip haskell :P 14:58:17 user17: Sorry, not a choice. 14:58:25 to you, maybe :P 14:58:29 user17: Learn Haskell or be excommunicated. 14:58:30 :-P 14:58:43 haskell was really enlightening to me 14:58:55 also it's got an *excellent* community here at irc 14:59:03 what's the deal with the haskell hype anyway? frankly, i don't see what haskell does better that ocaml already can :P 14:59:07 rien_: I especially like the everything-lazy-by-default; very refreshing. 14:59:10 In OCaml you have to type double semicolons 14:59:14 ugh. 14:59:15 haha 14:59:17 user17: See above. 14:59:22 so what :P 14:59:23 (Re lazy-by-default.) 14:59:36 Lazy-by-default causes you to think about programming a whole different way. 15:00:01 Think of your program writing to a pipe, rather than to a terminal. (Except without a pipe buffer.) 15:00:14 -!- gravicappa [~gravicapp@ppp85-140-117-185.pppoe.mtu-net.ru] has quit [Ping timeout: 240 seconds] 15:00:20 So, items are only computed as they are "read"/used. 15:00:21 monads are overhyped, though (granted, the community tries and fix that) 15:00:25 Haskell has the sexiest non-lispy notation around. 15:00:32 when it comes to programming, i usually prefer it explicit, and infact, i even write (somestatement == false) instead of (!somestatement) (though i know that a lot of people hate that) 15:00:44 valium97582: agreed! 15:00:48 user17: I do hate that, and if you write like that, I'll flag your code during a review. 15:00:55 cky: :P 15:01:39 cky: but: it's explicit, avoids read errors (imagine an editor with poor font that makes '!' barely visible) 15:01:51 i used to have an editor that did exactly that 15:02:00 it was terrible :( 15:02:48 *_p4bl0* was going to drop "vim" in here but it would be too easy. I like my troll high level 15:03:36 while in C you have int somefunc(int n) { /* some code here */ } which really ugly 15:03:51 i evolved from: notepad.exe -> edit.exe -> notepad.exe -> word.exe -> (switch to linux) -> gedit -> vi -> emacs -> back to vi -> vim -> back to gedit -> kate .... :P 15:04:02 in haskell you have somefunc :: Int -> Int 15:04:04 let's see what comes next! 15:04:08 rien_: I was working on a scheme interpreter, there's a strong connection between monads and continuation passing style. continuations aren't overhyped much, I think monads are pretty fricking useful 15:04:34 I didn't really get it until I did cps enough to see that it needed bind and return the same way monads do 15:04:47 valium97582: i believe that defines a function that takes an integer and returns an integer, correct? 15:05:42 user17: the example I gave from Haskell just declares the type of the function, but, yes, you are right 15:05:42 langmartin: that's really interesting. did you find any reading material about monads being related to cps? that's totally new to me 15:05:57 valium97582: oh, okay 15:06:09 some functions can be automatically derived from their signatures, in Haskell 15:06:18 erjiang [~erjiang@140-182-128-201.dhcp-bl.indiana.edu] has joined #scheme 15:06:21 <_p4bl0> langmartin: funny, I'm supposed to study a paper on that topic 15:06:41 it's without any doubt an interesting concept, but how useful is it really? :P 15:06:52 <_p4bl0> langmartin: http://repository.readscheme.org/ftp/papers/topps/D-154.pdf <-- this :-) 15:06:54 well, rien_, I sort got there by staring at my own code, but probably yeah... 15:07:16 user17: then you'd continue with somefunc n = insertCodeHere 15:07:21 user17: Use a better font (re ! being invisible). 15:07:37 <_p4bl0> rien_: take a look at teh paper I linked 15:07:39 cky: it was an editor with an hardcoded font... :P 15:07:41 yorick [yorick@gateway/shell/shellium.org/x-iisimqbjqaqdfzji] has joined #scheme 15:07:45 _p4bl0: thanks 15:08:43 user17: If you write return foo ? true : false or (even worse) if (foo) return true; else return false; (rather than just return foo;), I will absolutely rip you a new one during a review. :-P 15:09:09 rien_: the two monad operations are bind (make a "bigger" monad) and return. if you do a scheme to scheme cps thing, you'll find that anytime there's not a tail call you wrap a new lambda to wait for the result, making the continuation bigger, and return is where you call the lambda 15:09:09 langmartin: what I meant though is that the fact that monads are a mathematical concepts and have a bunch of theory to them is not particularly important in order to make use of them 15:09:19 oh, sure 15:09:27 sort of 15:09:28 cky: don't worry; i HATE the ternary operator with a passion, and i always add brackets, even to oneliner blocks 15:09:35 until you need to use two at once 15:09:46 user17: Way to completely miss my point. :-P 15:09:53 user17: I actually use the conditional operator a lot. 15:09:53 langmartin: return is when you call the lambda? oh, as in "inject the lambda into a continuation"? 15:10:00 cky: i've only read the first part, sorry :P 15:10:02 user17: But what I mean is, if foo is boolean, return that. 15:10:11 aisa [~aisa@173-10-243-253-Albuquerque.hfc.comcastbusiness.net] has joined #scheme 15:10:12 <_p4bl0> cky: :-D 15:10:12 user17: Don't do further conditionals on it. 15:10:28 cky: ah, yeah, agreed on that (too) :P 15:10:47 but still, ternary operator = bastardization of if/else 15:10:55 user17: Please call it conditional operator. 15:11:01 kay :P 15:11:05 langmartin: I wonder how feeble that connection with monads is, though 15:11:07 Also, it's much more useful than if/else for C, Java, etc. 15:11:13 -!- phao [~phao@189.12.242.251] has quit [Quit: Leaving] 15:11:19 how is it more useful? 15:11:22 (Granted, it's no different from if/else for Ruby.) 15:11:25 it's shorter, sure, but more useful? 15:11:25 well, rien_, I was working on delimited continuations, whcih makes it clearer. the easiest way is to have a non-procedure repreresentation of the continuation stack so you can mark it. I actually need a thing called return to call the continuation 15:11:38 In Ruby, you can say this: foo = if bar; baz; else qux; end 15:11:44 In Java, you cannot. 15:11:44 langmartin: bind is specifically applying a monadic computation to the result of another monadic computation without exposing that result to outside 15:11:53 rien_: I think a delimited continuation is isomorphic with a monad 15:12:08 user17: Conditional operators are expressions; you can assign its value. 15:12:11 And otherwise use it. 15:12:24 langmartin: that would be incredibly eye opening to me. I haven't reached that level yet :) 15:12:25 if/else is not an expression in many languages. 15:12:31 cky: Ruby is just Perl with a different syntax... j/k ;D 15:12:41 does hating conditional operators imply hating (if test conseq alt)? 15:12:53 gravicappa [~gravicapp@ppp91-78-231-28.pppoe.mtu-net.ru] has joined #scheme 15:12:53 erjiang: You gotta wonder. 15:12:55 kbdvdr [~co1n@210-89-227-75.ap-w02.canvas.ne.jp] has joined #scheme 15:12:55 why can't we all just get along? 15:13:07 offby1: I know, right? 15:13:48 ruby, python, javascript are all just perl with different syntax 15:13:55 langmartin: when I have time I'll ask the gods at #haskell about that delimited continuation thing 15:13:56 scheme's got continuations 15:13:58 langmartin: seems that way 15:14:04 :D 15:14:29 rien_: oleg's got a thing on the subject, where he likes delimted continuations better 15:14:35 hi all, a functionnal programming can be non-strict and with eager evaluation ... what is meant by non-strict then ? non-pure (assignment available)? 15:14:36 I know what continuations are and how call/cc works but I don't really know what a "delimited" continuation is 15:14:56 langmartin: wow he says he prefers d. continuations to monads? 15:15:07 that's a powerful statement especially coming from oleg 15:15:29 kbdvdr: non-strict means things won't be evaluated right away 15:15:41 rien_: it was in the context of talking about interactions between monads 15:15:53 kbdvdr: non-strict == vaguely lazy 15:15:56 (and I'm having a pause finding my citation) 15:16:37 rien_ , thanks, but it is said to be with eager evaluation ... and the combination is said "lenient evaluation" ?? 15:16:51 rien, I thought like you also ... 15:17:29 kbdvdr: yeah now you're beyond my knowledge there :) 15:17:49 ok I'll go throught it anyway :) thanks ! 15:18:02 kbdvdr: #haskell should be able to help you 15:18:09 ok thanks 15:18:14 :) 15:20:16 user17: In any case, if you are using the statement form of if/else (i.e., the non-Ruby variety), you are forever doomed to use side-effecting code in if/else. 15:20:45 user17: Using an if/else _expression_ (including the conditional operator) means that you don't need to do any side-effecting stuff at all. 15:21:31 user17: In the Java code I write, I treat almost all "variables" as final. 15:22:05 And certainly, I mark as many fields final as possible, too. 15:22:20 *rien_* tries to never use statements 15:22:24 rien_: I used this quite a bit: http://www.cs.indiana.edu/~dyb/pubs/monadicDC.pdf 15:22:27 rien_: That. 15:23:03 langmartin: saved, will look into it :) 15:23:17 cky: http://codepad.org/hhOdTmvm (i tried to capture the beauty of scheme as good as possible :P) 15:23:45 user17: That's really ugly formatting. 15:23:48 http://paste.lisp.org/new/scheme 15:23:50 wisey [~Steven@host86-150-108-29.range86-150.btcentralplus.com] has joined #scheme 15:23:54 Who taught that person to format like that? 15:24:10 cky: it is, but it makes sense when you think C :P 15:24:21 C and ternary operator, that is 15:24:23 No. Never. 15:24:24 Also, rien_, I might not be quite right about the isomorphism bit, one might be a generalization of the other or something. There is a close connection, though. 15:24:45 user17: Also, in some languages, there are more than one ternary operator. (Ternary == three arguments.) 15:24:56 user17: That's why I made you specify which ternary operator you talk about. 15:25:10 cky: http://codepad.org/1Dfe4bPD maybe? :P 15:25:14 langmartin: I'm crossing my fingers that continuations are a generalization of monads :) 15:25:19 I actually wrote a facetious proposal for a new ternary operator, called the FMA operator. 15:25:36 In a nutshell: a * b + c 15:25:38 :-P 15:25:42 ter = thrice in Latin 15:25:44 meh, most people think of ?: when they talk of the ternary operator 15:25:48 like bis = twice 15:25:53 user17: Most people are ignorant. 15:25:58 rien_: Indeed. 15:26:01 *shrugs* :P 15:26:10 <_p4bl0> rien_: since monds are categories, and that everything is an instance of a categories, including categories themsleves, I think it might be the other way :-p 15:26:14 *user17* is being ignorant with --^ :D 15:26:19 sorry, j/k :P 15:26:25 *The* ternary operation is ?: at least in a C context 15:26:44 Facefoxdotcom [~machine4@pool-74-111-197-200.lsanca.fios.verizon.net] has joined #scheme 15:26:54 _p4bl0: yeah I know, but I'll root for the underdog! 15:27:07 <_p4bl0> rien_: :-D 15:27:09 sjamaan: True, but there is nothing wrong with calling it what it is, the conditional operator. :-) 15:27:20 <_p4bl0> my hieroglyph class is going to start 15:27:22 <_p4bl0> afk 15:27:23 rien_: you definately need tagged delimited continuations to be as expressive as monads in general 15:27:24 sjamaan: That's like people calling Wikipedia "wiki". :-P 15:27:46 sjamaan: Wikipedia is a wiki, and to "most" people it's probably the only wiki they know, but it doesn't make it "the" wiki. 15:27:51 but most people referer to TOW as "the original wiki" (hence the abbreviation) :P 15:28:01 user17: The original wiki is WikiWikiWeb. 15:28:07 i know 15:28:24 And there are many many other wikis. 15:28:25 but that doesn't change the fact that most people think of wikipedia when they say TOW :P 15:28:40 cky: There are two conditional operators in C 15:28:52 sjamaan: O_o 15:28:54 it's simply the most popular one, and, well, being popular 15:29:09 Well, I don't know if IF { ... } ELSE { .. } is considered an "operator" 15:29:18 Nope, it's not. :-) 15:29:19 sjamaan: I know of only one. What is the other? 15:29:34 if/else is definitely not an operator 15:29:34 if() else is not an operator, it's a statement. 15:29:40 ah yes 15:29:48 That's the big problem of C, and other language like it, it distinguishes statements from expressions. 15:29:56 pjb: Agree. 15:29:57 but as far as i know, you can say: type var = { if(condition) ... else ... ; }; 15:30:08 user17: In Ruby, yes. In C, hell no. 15:30:11 In what? 15:30:19 eg. Ruby has only expression, so you can make it edible (if not palatable), by surrounding every expressions by parentheses. 15:30:30 pjb: Yep. 15:30:35 user17: you cannot in C. 15:30:58 -!- peterhil [~peterhil@a91-153-127-82.elisa-laajakaista.fi] has quit [Ping timeout: 276 seconds] 15:31:02 pjb: oh, indeed 15:31:11 user17: So, still hating' on the conditional operator? 15:31:12 but i could swear one compiler actually supported that 15:31:19 user17: You cut your own arm off when you say things like that. :-P 15:31:30 user17: GCC has something similar as an extension, perhaps. 15:31:31 cky: it's a terrible way of obfuscating a simple if/else, so yes 15:31:48 user17: What if I disallowed all side-effecting operations from C. Would you still use if/else? 15:31:58 define side-effecting :P 15:32:13 user17: Setting variables is an example of side-effecting. 15:32:24 langmartin: duly noted 15:32:29 you mean, if (foo = data) instead of (foo == data)? 15:32:38 -!- Adamant [~Adamant@unaffiliated/adamant] has quit [Ping timeout: 240 seconds] 15:32:43 No. I mean, if (foo) {...} else {...}. What do you put in the ...? 15:32:52 The only non-side-effecting thing you can put is "return". 15:32:58 anything that is valid in such a scope 15:33:22 Anything else (other than return, throw, etc.) is side-effecting, as far as I can think of. 15:33:25 although ANSI C requires variables to be declared at toplevel (in the header of a function, for example) 15:33:45 Adamant [~Adamant@unaffiliated/adamant] has joined #scheme 15:34:11 user17: Remember: you are _not allowed_ to assign to variables. 15:34:15 user17: if (foo = data) is abhorrent 15:34:20 I truly hate those C-isms 15:34:29 rien_: Sometimes it's necessary, but generally I agree. 15:34:38 cky: wow, who in the hell would actually want that? :P 15:34:52 user17: If you're trying to write functional code, that's how you code. :-) 15:35:01 excuse my language, but that's utterly retarded 15:35:04 You avoid side-effecting stuff as much as possible. 15:35:04 that's the point o haskell 15:35:21 one another reason not to learn haskell :P 15:35:23 rien_: Yay for Haskell! :-D 15:35:25 what's retarded is the amount of variable declarations in C programs :D 15:35:31 rien_: :-D 15:35:50 Now could we please stop the kindergarten with bashing languages now? 15:35:51 all those procedures starting with a huge chunk of declarations 15:35:53 why would that even make sense? 15:36:00 *rien_* stops 15:36:07 it's called explicity, mister :P 15:36:13 user17: No, it's called fail. 15:36:24 it's not :( 15:36:40 user17: Anyway, if you learn functional programming, youfind that you'll use far fewer variables than you would with imperative programming. 15:36:57 alright then, challenge accepted 15:37:11 but i'd really need a tutorial for absolute haskell beginners 15:37:22 and by absolute, i mean absolute :D 15:37:24 rien_ can help you with that. :-) 15:37:27 LYAH 15:37:43 Learn yourself another Haskell? 15:37:44 instead of throwing unprovable statements at each other try to write some code and then we can talk about actual facts and real problems not some fiction you are making up as you go 15:37:44 :-P 15:37:45 user17: http://learnyouahaskell.com/ 15:37:49 Oh. 15:37:57 rien_: bookmarked! 15:38:26 let's see how long it'll take to learn haskell 15:40:58 just have an open mind 15:42:10 -!- hkBst [~quassel@gentoo/developer/hkbst] has quit [Quit: No Ping reply in 180 seconds.] 15:42:36 hkBst [~quassel@gentoo/developer/hkbst] has joined #scheme 15:42:47 dfkjjkfd [~paulh@210-11-ftth.onsnetstudenten.nl] has joined #scheme 15:43:12 LYAH is great. 15:43:25 -!- zevarito [~zevarito@r186-48-202-18.dialup.adsl.anteldata.net.uy] has left #scheme 15:44:08 -!- copumpkin [~pumpkin@unaffiliated/pumpkingod] has quit [Quit: Computer has gone to sleep.] 15:46:30 dzhus [~sphinx@95-27-175-98.broadband.corbina.ru] has joined #scheme 16:01:26 -!- erjiang [~erjiang@140-182-128-201.dhcp-bl.indiana.edu] has quit [Quit: Leaving] 16:02:15 Riastradh [debian-tor@fsf/member/riastradh] has joined #scheme 16:04:11 DrDuck [~duck@216.186.151.63] has joined #scheme 16:04:43 -!- dzhus [~sphinx@95-27-175-98.broadband.corbina.ru] has quit [Read error: Connection reset by peer] 16:05:36 -!- 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] 16:05:39 dzhus [~sphinx@95-27-175-98.broadband.corbina.ru] has joined #scheme 16:12:33 copumpkin [~pumpkin@17.101.89.205] has joined #scheme 16:12:33 -!- copumpkin [~pumpkin@17.101.89.205] has quit [Changing host] 16:12:33 copumpkin [~pumpkin@unaffiliated/pumpkingod] has joined #scheme 16:14:17 outworlder [~stephen@189.90.170.251] has joined #scheme 16:19:17 -!- leppie [~lolcow@196-215-83-125.dynamic.isadsl.co.za] has quit [Ping timeout: 264 seconds] 16:20:23 -!- kbdvdr [~co1n@210-89-227-75.ap-w02.canvas.ne.jp] has quit [Quit: Leaving] 16:23:10 leppie [~lolcow@196-215-83-125.dynamic.isadsl.co.za] has joined #scheme 16:26:17 -!- hkBst [~quassel@gentoo/developer/hkbst] has quit [Remote host closed the connection] 16:27:15 j-invariant [~aaaa@unaffiliated/j-invariant] has joined #scheme 16:29:20 -!- schmir [~schmir@p54A90E11.dip0.t-ipconnect.de] has quit [Remote host closed the connection] 16:39:39 -!- bzzbzz [~franco@modemcable240.34-83-70.mc.videotron.ca] has quit [Read error: Connection reset by peer] 16:41:27 -!- alexsuraci [~alexsurac@pool-71-188-133-67.aubnin.fios.verizon.net] has quit [Quit: alexsuraci] 16:43:06 MichaelRaskin [~MichaelRa@195.91.224.225] has joined #scheme 16:53:08 -!- MichaelRaskin [~MichaelRa@195.91.224.225] has quit [Remote host closed the connection] 16:53:40 bweaver [~user@host-68-169-175-225.WISOLT2.epbfi.com] has joined #scheme 16:53:41 zevarito [~zevarito@r186-48-223-155.dialup.adsl.anteldata.net.uy] has joined #scheme 17:00:02 saccade [~saccade@209-6-54-113.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 17:00:41 -!- saccade [~saccade@209-6-54-113.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has quit [Client Quit] 17:02:14 -!- gravicappa [~gravicapp@ppp91-78-231-28.pppoe.mtu-net.ru] has quit [Ping timeout: 240 seconds] 17:12:05 new 17:15:45 femtoo [~femto@95-89-248-163-dynip.superkabel.de] has joined #scheme 17:19:09 neilcj [~neilcj@c-174-49-216-137.hsd1.pa.comcast.net] has joined #scheme 17:19:18 bzzbzz [~franco@modemcable240.34-83-70.mc.videotron.ca] has joined #scheme 17:19:36 MichaelRaskin [~MichaelRa@195.91.224.225] has joined #scheme 17:21:08 gravicappa [~gravicapp@ppp91-78-231-28.pppoe.mtu-net.ru] has joined #scheme 17:22:17 -!- Riastradh [debian-tor@fsf/member/riastradh] has quit [Remote host closed the connection] 17:26:31 alexsuraci [~alexsurac@pool-71-188-133-67.aubnin.fios.verizon.net] has joined #scheme 17:27:28 -!- ski [~slj@c83-254-21-112.bredband.comhem.se] has quit [Quit: bbl] 17:27:54 rpg [~rpg@216.243.156.16.real-time.com] has joined #scheme 17:54:04 jonrafkind [~jon@crystalis.cs.utah.edu] has joined #scheme 17:59:11 corruptmemory [~jim@96.246.167.18] has joined #scheme 18:00:10 -!- jimrees [~jimrees@ita4fw1.itasoftware.com] has quit [Quit: Ex-Chat] 18:00:12 schmir [~schmir@p54A90364.dip0.t-ipconnect.de] has joined #scheme 18:00:32 jimrees_ [~jimrees@ita4fw1.itasoftware.com] has joined #scheme 18:00:33 rgrau [~user@62.Red-88-2-20.staticIP.rima-tde.net] has joined #scheme 18:01:55 -!- rpg [~rpg@216.243.156.16.real-time.com] has quit [Ping timeout: 276 seconds] 18:04:22 -!- alexsuraci [~alexsurac@pool-71-188-133-67.aubnin.fios.verizon.net] has quit [Quit: alexsuraci] 18:06:20 alexsuraci [~alexsurac@pool-71-188-133-67.aubnin.fios.verizon.net] has joined #scheme 18:14:27 -!- martinhex [~mjc@93-97-29-243.zone5.bethere.co.uk] has quit [Read error: Operation timed out] 18:17:02 martinhex [~mjc@93-97-29-243.zone5.bethere.co.uk] has joined #scheme 18:27:47 -!- myu2 [~myu2@v077103.dynamic.ppp.asahi-net.or.jp] has quit [Ping timeout: 240 seconds] 18:28:35 myu2 [~myu2@v077103.dynamic.ppp.asahi-net.or.jp] has joined #scheme 18:30:54 rpg [~rpg@mpls.sift.info] has joined #scheme 18:41:34 stis [~stis@1-1-1-39a.veo.vs.bostream.se] has joined #scheme 18:41:57 -!- jimrees_ [~jimrees@ita4fw1.itasoftware.com] has quit [Quit: Ex-Chat] 18:42:17 jimrees_ [~jimrees@ita4fw1.itasoftware.com] has joined #scheme 18:44:01 -!- nilg` [~user@77.70.2.229] has quit [Read error: Connection reset by peer] 18:45:52 stis_ [~stis@1-1-1-39a.veo.vs.bostream.se] has joined #scheme 18:46:14 -!- stis [~stis@1-1-1-39a.veo.vs.bostream.se] has quit [Ping timeout: 240 seconds] 18:52:35 -!- Hal9k [~Lernaean@unaffiliated/kusanagi] has quit [] 19:06:53 carleastlund [~cce@gotham.ccs.neu.edu] has joined #scheme 19:07:23 Hal9k [~Lernaean@unaffiliated/kusanagi] has joined #scheme 19:15:39 jewel [~jewel@196-215-117-47.dynamic.isadsl.co.za] has joined #scheme 19:31:33 -!- schmir [~schmir@p54A90364.dip0.t-ipconnect.de] has quit [Ping timeout: 246 seconds] 19:34:22 wbooze` [~levgue@xdsl-78-35-180-55.netcologne.de] has joined #scheme 19:34:45 homie` [~levgue@xdsl-78-35-180-55.netcologne.de] has joined #scheme 19:35:09 -!- wbooze` [~levgue@xdsl-78-35-180-55.netcologne.de] has quit [Remote host closed the connection] 19:35:21 -!- homie` [~levgue@xdsl-78-35-180-55.netcologne.de] has quit [Remote host closed the connection] 19:35:37 sanduz2 [~sanduz2@75-149-186-118-Miami.hfc.comcastbusiness.net] has joined #scheme 19:36:27 -!- homie [~levgue@xdsl-78-35-168-253.netcologne.de] has quit [Ping timeout: 240 seconds] 19:37:17 -!- wbooze [~levgue@xdsl-78-35-168-253.netcologne.de] has quit [Ping timeout: 264 seconds] 19:37:33 -!- femtoo [~femto@95-89-248-163-dynip.superkabel.de] has quit [Read error: Connection reset by peer] 19:38:31 erjiang [~eric@7.80.244.66.jest.smithvilledigital.net] has joined #scheme 19:39:04 -!- bitweiler [~bitweiler@adsl-99-40-239-167.dsl.stl2mo.sbcglobal.net] has quit [Quit: Off to work!] 19:40:20 k04n [~k04n@cpe-76-175-192-194.socal.res.rr.com] has joined #scheme 19:45:51 -!- yorick [yorick@gateway/shell/shellium.org/x-iisimqbjqaqdfzji] has quit [Quit: Changing server] 19:46:14 yorick [yorick@gateway/shell/shellium.org/x-mnyncdmkwcecigyh] has joined #scheme 19:46:40 -!- yorick is now known as Guest15171 19:46:56 -!- Guest15171 [yorick@gateway/shell/shellium.org/x-mnyncdmkwcecigyh] has quit [Client Quit] 19:52:21 yorick_ [yorick@gateway/shell/shellium.org/x-bibvqqssbflojlhw] has joined #scheme 19:54:20 -!- yorick_ [yorick@gateway/shell/shellium.org/x-bibvqqssbflojlhw] has quit [Changing host] 19:54:20 yorick_ [yorick@unaffiliated/yorick] has joined #scheme 19:54:20 -!- yorick_ [yorick@unaffiliated/yorick] has quit [Changing host] 19:54:20 yorick_ [yorick@gateway/shell/shellium.org/x-bibvqqssbflojlhw] has joined #scheme 19:54:22 -!- yorick_ is now known as yorick 19:54:47 -!- user17 [~user@p5B2A9BDC.dip0.t-ipconnect.de] has quit [Quit: Leaving] 19:58:04 wbooze [~levgue@xdsl-78-35-180-55.netcologne.de] has joined #scheme 20:00:10 -!- j-invariant [~aaaa@unaffiliated/j-invariant] has quit [Quit: leaving] 20:01:05 homie [~levgue@xdsl-78-35-180-55.netcologne.de] has joined #scheme 20:05:39 -!- rpg [~rpg@mpls.sift.info] has quit [Read error: Connection reset by peer] 20:07:03 rpg [~rpg@mpls.sift.info] has joined #scheme 20:07:26 -!- jewel [~jewel@196-215-117-47.dynamic.isadsl.co.za] has quit [Ping timeout: 240 seconds] 20:15:01 -!- alaricsp [~alaric@geniedb.hotdesktop.biz] has quit [Ping timeout: 240 seconds] 20:22:13 -!- stis_ [~stis@1-1-1-39a.veo.vs.bostream.se] has quit [Remote host closed the connection] 20:25:29 Caleb-- [thedude@109.65.199.183] has joined #scheme 20:29:55 nilg [~user@77.70.2.229] has joined #scheme 20:30:14 -!- HG` [~HG@xdsl-92-252-119-103.dip.osnanet.de] has quit [Ping timeout: 240 seconds] 20:31:46 ssbr [ssbr@user132-27.wireless.utoronto.ca] has joined #scheme 20:32:53 I'm getting back into scheme. how does one see what a macro is expanded to, in Racket? 20:33:30 preferably as a list, so I could write automated tests 20:33:51 well you could either run the macro or look at the source 20:34:00 you can do (expand '(foo bar baz)) 20:35:07 HG` [~HG@xdsl-92-252-80-61.dip.osnanet.de] has joined #scheme 20:36:22 I guess that's what I want! 20:36:42 It'd be too much to ask scheme to only expand the macros I wrote, I suppose 20:36:46 well, maybe not 20:37:06 you can do that with local-expand (in racket) 20:37:19 basically its like `expand' but it will stop expanding when it sees some forms you tell it 20:37:30 k04n_ [~k04n@cpe-76-175-192-194.socal.res.rr.com] has joined #scheme 20:37:35 but you can only use it inside a transformation process, so you cant just call like (local-expand '(foo bar baz)) 20:37:44 you have to already be inside a macro transformation to call it 20:37:52 that's weird. 20:38:03 And I wouldn't know how to use it. :/ 20:38:23 (define-syntax (my-expander stx) (local-expand stx ...)) (my-expander (foo bar baz)) 20:39:06 -!- k04n [~k04n@cpe-76-175-192-194.socal.res.rr.com] has quit [Ping timeout: 246 seconds] 20:40:21 -!- wisey [~Steven@host86-150-108-29.range86-150.btcentralplus.com] has quit [Quit: Leaving] 20:41:28 -!- k04n_ [~k04n@cpe-76-175-192-194.socal.res.rr.com] has quit [Client Quit] 20:43:02 -!- rpg [~rpg@mpls.sift.info] has quit [Quit: rpg] 20:50:03 k04n [~k04n@cpe-76-175-192-194.socal.res.rr.com] has joined #scheme 20:50:39 Hm, I don't want to ask this in #sml for fear of being called a troll; but has Haskell eaten SML's lunch, so to speak? 20:51:01 omnom 20:51:06 and now you are asking it in #scheme? 20:52:13 Yeah, I just reckoned that there are people in here who know a lot about programming but hopefully wouldn't feel strongly enough about Haskell or SML to get offended. :-P 20:53:05 I am not offended :) 20:53:16 I had just difficulties seeing the logic in that :) 20:54:12 Well, I realise it's quite off-topic, but like I said, I don't want to join #sml out of the blue and ask them. At least some people know me here. 20:54:18 -!- zevarito [~zevarito@r186-48-223-155.dialup.adsl.anteldata.net.uy] has left #scheme 20:54:34 -!- homie [~levgue@xdsl-78-35-180-55.netcologne.de] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 20:55:13 i guess the only remaining factor is whether or not you want lazy evaluation by default 20:55:15 -!- wbooze [~levgue@xdsl-78-35-180-55.netcologne.de] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 20:55:24 Because, I'm thinking about expanding my knowledge to another language (although, Scheme will always be my true love!) and Haskell and SML are the top two contenders. 20:55:42 i recommend ocaml over sml anyway, it has classes and stuff 20:55:59 Hm 20:56:02 ocaml seems to actually be used in practice by people 20:56:43 sml seems mostly for theoreticians 20:56:48 I don't think anyone who uses ocaml regularly actually uses their OO stuff 20:57:02 but the polymorphic variants and better module system is an advantage 20:57:03 well I do :p 20:57:08 oh okay :) 20:57:32 The little code I *have* seen used the OO system 20:57:34 initially I tried to use the module system to achieve something but in the end I needed first class values, and classes are the only way to go if you need that 20:57:58 (even if just to get record-like types) 20:58:01 classes vs module vs functors is pretty confusing, though 20:58:46 Well, I read somewhere that SML is easier to learn and understand than OCaml and that once I've learnt it, I could learn OCaml fairly easily (if I wanted to) 20:59:05 That's probably true 20:59:22 I'm not looking to do "real" things anyway, just expand my hobby-programming horizons :-) 20:59:51 yea then sml is probably ok 21:00:21 I recommend ocaml over haskell, it's a bit frustrating to work on a purely functional language 21:00:28 Cool, I'll give it a go then! 21:01:13 also I've seen the folks at #haskell profusely complimenting on ocaml's package management system 21:01:36 (I know that's hardly anything to do with the language itself) 21:12:08 homie [~levgue@xdsl-78-35-180-55.netcologne.de] has joined #scheme 21:14:01 -!- ssbr [ssbr@user132-27.wireless.utoronto.ca] has quit [Ping timeout: 240 seconds] 21:14:45 jonrafkind: You're an exception then; most people who use ocaml never touch the object system. 21:14:47 wbooze [~levgue@xdsl-78-35-180-55.netcologne.de] has joined #scheme 21:15:11 i thought the whole point of ocaml was its object system. thats what the 'o' is for, isn't it? 21:15:18 fds: Yes, haskell is long after the burping stage. 21:15:39 jonrafkind: It is, but people just used it as "the current version of caml". 21:15:41 Ive never seen any SML that wasn't part of a compiler or a Chris Okasaki paper 21:16:22 jonrafkind: re your answer to ssbr -- there is an `expand-once', but Ryan's stuff is probably better anyway. 21:17:09 oh right, forgot about that 21:17:26 eli: So, you think I should just learn Haskell? 21:17:33 anyone here experimented with node.js? 21:18:05 what is this, #hackernews ? 21:18:19 fds: I'm not sure. OCaml might be an easier way to go since you get the typed stuff alone, not lumped with a different evaluation strategy. 21:18:31 -!- outworlder [~stephen@189.90.170.251] has quit [Quit: Leaving.] 21:18:36 (But haskell has some better things in its type system too.) 21:19:05 Also, you can try typed racket as something even closer to scheme but uses a static type system. 21:19:32 I just downloaded Racket with the intention of doing that. :-) 21:20:15 And yeah, I've had a few minor revelations playing with SML this morning about the whole typ-system-thing. It's strange. 21:20:24 (BTW, there's also a lazy language in racket, so you can try the two things separately.) 21:20:26 s/typ/type/ 21:21:41 I've just about finished a rather long running interpreter project but it only runs on node at the moment, hoping some schemers might have node/v8 installed 21:22:15 I think I'll be spending a while reading the Racket documentation. :-) 21:26:22 ski [~slj@c83-254-21-112.bredband.comhem.se] has joined #scheme 21:26:25 phao [~phao@189.107.206.60] has joined #scheme 21:33:43 bgs100 [~ian@unaffiliated/bgs100] has joined #scheme 21:34:20 -!- Mohamdu [~Mohamdu@CPE00222d6b3798-CM00222d6b3795.cpe.net.cable.rogers.com] has quit [Quit: Leaving] 21:41:29 erjiang_ [~erjiang@2001:18e8:2:244:222:19ff:fe30:c62c] has joined #scheme 21:47:43 shader [~user@nom23169b.nomadic.ncsu.edu] has joined #scheme 21:48:23 how do you match a literal parenthesis in racket? 21:49:30 What, in a string? 21:50:29 -!- didi [~user@unaffiliated/didi/x-1022147] has quit [Ping timeout: 264 seconds] 21:50:38 rudybot: (equal? #\( #\() 21:50:39 rien_: your sandbox is ready 21:50:39 rien_: ; Value: #t 21:51:47 cky: I was thinking using regex, sorry I forgot to mention that 21:52:13 probably \\( 21:52:16 You'd normally use \(, but I think in a string you have to escape the \, yielding "\\(". 21:52:24 ah 21:52:25 ok 21:52:41 thanks, I had tried \( but it wasn't working 21:52:46 *nods* 22:01:32 *cky* wants to create a Scheme implementation whose name starts with P, so that a Coops/GOOPS/Swindle-style framework can be made for it, named Poops. :-P 22:02:04 22:02:58 what's swindle good for? I've seen that name on the choice of language screen for racket I think 22:06:50 *cky* lets eli answer that question, so you can hear it from the horse's mouth. 22:08:10 The summary is at: http://docs.racket-lang.org/swindle/index.html 22:08:48 -!- shader [~user@nom23169b.nomadic.ncsu.edu] has quit [Ping timeout: 240 seconds] 22:08:55 *rien_* clicks 22:09:05 shader is from NCSU? Wow. Small world. 22:09:50 -!- eugene_trileski [~eugene@pool-71-249-127-12.nycmny.east.verizon.net] has quit [Ping timeout: 240 seconds] 22:17:47 saccade [~saccade@209-6-54-113.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 22:23:44 -!- 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] 22:24:53 peterhil [~peterhil@a91-153-127-82.elisa-laajakaista.fi] has joined #scheme 22:26:18 -!- HG` [~HG@xdsl-92-252-80-61.dip.osnanet.de] has quit [Quit: Leaving.] 22:28:09 -!- phao [~phao@189.107.206.60] has quit [Quit: Leaving] 22:28:10 Azuvix [~james@71-215-25-216.bois.qwest.net] has joined #scheme 22:28:41 saccade [~saccade@209-6-54-113.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com] has joined #scheme 22:33:57 alaricsp [~alaric@93-96-143-25.zone4.bethere.co.uk] has joined #scheme 22:39:39 -!- sanduz2 [~sanduz2@75-149-186-118-Miami.hfc.comcastbusiness.net] has quit [Quit: Leaving] 22:41:29 -!- aisa [~aisa@173-10-243-253-Albuquerque.hfc.comcastbusiness.net] has quit [Quit: aisa] 22:50:51 -!- nilg [~user@77.70.2.229] has quit [Remote host closed the connection] 22:58:24 -!- valium97582 [~daniel@187.74.35.156] has quit [Ping timeout: 240 seconds] 23:00:44 -!- k04n [~k04n@cpe-76-175-192-194.socal.res.rr.com] has quit [Quit: Computer has gone to sleep.] 23:13:48 kuribas [~user@94-226-138-198.access.telenet.be] has joined #scheme 23:14:05 _danb_ [~user@124-149-166-62.dyn.iinet.net.au] has joined #scheme 23:17:14 schmir [~schmir@p54A90057.dip0.t-ipconnect.de] has joined #scheme 23:19:39 nsswb [~nsswb@87.212.234.21] has joined #scheme 23:20:34 -!- nsswb [~nsswb@87.212.234.21] has quit [Client Quit] 23:23:50 -!- jonrafkind [~jon@crystalis.cs.utah.edu] has quit [Ping timeout: 240 seconds] 23:27:32 -!- bweaver [~user@host-68-169-175-225.WISOLT2.epbfi.com] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 23:29:15 -!- langmartin [~user@exeuntcha2.tva.gov] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 23:32:33 phao [~phao@189.107.206.60] has joined #scheme 23:35:49 lewis1711 [~lewis@125-239-255-244.jetstream.xtra.co.nz] has joined #scheme 23:36:35 eugene_trileski [~eugene@pool-71-249-127-12.nycmny.east.verizon.net] has joined #scheme 23:38:23 valium97582 [~daniel@187.74.35.156] has joined #scheme 23:39:45 -!- f8l is now known as f|l 23:46:19 -!- erjiang_ [~erjiang@2001:18e8:2:244:222:19ff:fe30:c62c] has quit [Quit: ttfn] 23:52:20 -!- corruptmemory [~jim@96.246.167.18] has quit [Quit: Leaving] 23:59:11 -!- schmir [~schmir@p54A90057.dip0.t-ipconnect.de] has quit [Remote host closed the connection]