00:06:16 -!- GreyKnight has joined.
00:15:52 * ihope edits the main page to say "This page is protected from all further edits, and I win"
00:27:31 <Razor-X> I've seen foo, bar, and baz, but what if you need more?
00:27:53 <ihope> Quux, quuux, quuuux...
00:28:03 <ihope> If you need uncountably many, you're on your own.
00:28:17 <Razor-X> Maybe we should go the car/cdr route.
00:28:29 <Razor-X> foz, foaz, faoz, faaoz, baoz.
00:28:47 <ihope> Qaddaddaddaaaddaddax?
00:29:20 <pikhq> [[Metasyntatic variables]] should have the RFC's list on i.t
00:32:09 <Razor-X> In order to name my generic variables, I either use the GNU scheme (foo, bar, baz) or I use My Scheme (TM) (blah, bleh, blargh).
00:32:33 <Razor-X> It all kinda depends on my mood.
00:33:43 <Razor-X> I use meh, nuh, feh, and blargeth, if I need to go so far.
00:34:50 <GreyKnight> then blargetheth, blargethetheth, etc? ;-)
00:34:51 <pikhq> Actually, (foo, bar, baz) are from the RFC. . .
00:35:06 <Razor-X> There's a whole bunch of them.
00:35:26 <GreyKnight> foobarbaz predate that RFC as well. Their origins are lost in the mists of time, really
00:35:45 <pikhq> Argh. Can't find the RFC ATM, but I can find one describing the etymology.
00:36:11 <pikhq> Never mind. That one also contains the list.
00:36:12 <pikhq> http://tools.ietf.org/html/rfc3092
00:36:41 <Razor-X> Do I get an ABNF on Metasyntactic Variables?
00:37:44 <pikhq> Wikipedia states that it's got the list, but the RFC doesn't.
00:37:56 <pikhq> Never mind. It does have the list.
00:38:14 <pikhq> r, baz, qux, quux, corge, grault, garply, waldo, fred, plugh, xyzzy, thud
00:38:20 <pikhq> foo, bar, baz, qux, quux, corge, grault, garply, waldo, fred, plugh, xyzzy, thud
00:39:13 <Razor-X> variable = "foo" / "bar" / "baz" / "b" 1*("a"/"o) ("z"/"r)
00:39:21 <Razor-X> That's what I propose the ABNF definition be.
00:41:14 <Razor-X> Of course, that'll get you a variable name that's sure to be the Drunken Coder's favorite: ``booz''.
00:42:23 <pikhq> variable = "foo" / "bar" / "baz" / "qux" / "quux" / "corge" / "grault" / "garply" / "waldo" / "fred" / "plugh" / "xyzzy" / "thud"/ "b" 1*("a"/"o) ("z"/"r)
00:42:35 <pikhq> RFC compliance is important. :p
00:43:19 <Razor-X> Can I propose a new RFC then?
00:44:27 <pikhq> Just wait til April 1st.
00:44:41 <Razor-X> But it's a real RFC proposal!
00:44:58 <Razor-X> Don't we all want standardized metasyntactic variables in our code?
00:45:17 <pikhq> Well, the current RFC was on April 1st, so. . .
00:47:34 <Razor-X> I can't believe the Scheme standard doesen't have a fold-* function.
00:55:19 <pikhq> And faobaofaobaz isn't long?
00:57:15 <ihope> Razor-X: a what function?
01:01:41 <ihope> Now why the heck is this link, which is simply blue text, a JPEG image rather than actual text?
01:02:50 <GreyKnight> I reckon somebody couldn't figure out how to set the :active (etc) colours to blue
01:02:58 <GreyKnight> so they made it an image so's it'd stay blue
01:03:20 <pikhq> And figure that "Oh, it looks just the same, anyways."
01:03:35 <ihope> Nobody will notice the JPEG artifacts.
01:03:55 <Razor-X> You've never used fold functions before?
01:04:16 <Razor-X> You and your imperial madness :O
01:04:18 <ihope> foldr, foldl, and the like.
01:04:38 <Razor-X> I remember reading about fold functions the first time and thinking ``Why the heck will I ever need this?!'' :P.
01:04:47 <ihope> Are those the folds you're talking about, or is there another type of fold function?
01:04:56 <Razor-X> Nope. foldr, foldl, and the like.
01:05:03 <Razor-X> Time to make my own fold-right function.
01:05:47 <ihope> How's Scheme's conditional stuff work?
01:06:22 <Razor-X> The R5RS has no pattern matching in it, if that's what you mean. But Chicken has an add-in for pattern matching.
01:06:36 <Razor-X> Although not nearly as elegant as Haskell or OCaML's versions.
01:07:10 <ihope> (defun foldr (f b l) (cond ((null l) b) (something (f (car l) (foldr f b (cdr l)))))) <- my little foldr function
01:07:48 <Razor-X> Although why you're using (cond) is anyone's guess :P.
01:08:35 <Razor-X> Even still, bleh. Use (if) instead.
01:09:40 <ihope> (defun foldr (f b l) (if (null l) b (f (car l) (foldr f b (cdr l)))))?
01:09:44 <GreyKnight> funny, just a few days ago you made the opposite recommendation to me :-P
01:12:08 <Razor-X> I made that reccomendation because I'm not being a Scheme parser here :P.
01:17:50 <Razor-X> Actually, the full function looks like:
01:18:01 <Razor-X> (define (fold-right function initial list) (if (null? list) (function initial initial) (if (null? (cdr list)) (function initial (car list)) (fold-right function (function initial (car list)) (cdr list)))))
01:19:54 <Razor-X> Although I can contract that definition a bit.
01:20:36 <ihope> (function initial initial)?
01:20:46 <ihope> That... doesn't really make sense.
01:21:07 <Razor-X> Changed for that reason, and the obvious redundancy in my code :P.
01:21:58 <Razor-X> Yay. Now it'll be trivial to parse each IRC message.
01:22:22 <ihope> Oh... does (lambda (x) (lambda (y) (x y))) work in Scheme?
01:23:58 <Razor-X> It should. Let me check to double-check.
01:24:16 <ihope> #do eval (((lambda (x) (lambda (y) (x y))) car) '(1 2 3))
01:24:26 * ihope pokes certain people
01:24:51 -!- GregorR-W has quit ("-").
01:25:02 <Razor-X> Oh wait. It wouldn't work. But let me check in case.
01:25:18 <ihope> So why doesn't it work?
01:25:57 <ihope> Razor-X: did it start working?
01:25:59 <ihope> #do eval (((lambda (x) (lambda (y) (x y))) car) '(1 2 3))
01:26:00 <Razor-X> Mistype :D (lesson learned: copy and paste if possible).
01:26:02 <GreyKnight> #! Error: (@)(1124) FIRST ITEM IS NOT A SYMBOL OR LAMBDA (''((LAMBDA (X) (LAMBDA (Y) (X Y))) CAR)')
01:26:25 <Razor-X> Yeah, it should work. I misread and mistyped.
01:26:37 <Razor-X> It should work and it does work.
01:26:48 <ihope> @do eval (lambda (x) (lambda (y) (x y)))
01:26:53 <GreyKnight> using the same as what ihope just eval'd ?
01:26:58 <Razor-X> Look, GreyKnight doesen't use Scheme.
01:27:04 <Razor-X> He uses his odd not-even-a-Lisp Lisp.
01:27:15 <ihope> #do eval (lambda (x) (lambda (y) (x y)))
01:27:17 <GreyKnight> #> #<CLOSURE :LAMBDA (X) (LAMBDA (Y) (X Y))>
01:27:23 <ihope> #do eval ((lambda (x) (lambda (y) (x y))) cdr)
01:27:41 <GreyKnight> It still has lambdas, though, so I'm interested in where the error arrives
01:28:34 <ihope> Something tells me it's in the replacing of the parameters in the result with the things passed in.
01:29:25 <GreyKnight> I'm going to rewrite it all from scratch at some point
01:31:30 <Razor-X> Time to do my daily vocabulary.
01:32:38 <ihope> A Japanese thing resembling a sentence?
01:32:56 <GreyKnight> Bonus points if that rendered correctly in your client
01:33:02 <Razor-X> No bonus points here then.
01:33:17 <ihope> It says "lorimer"?
01:33:34 <GreyKnight> with a slashed-circle over each letter
01:33:46 <ihope> How'd you manage that?
01:34:36 <GreyKnight> combining characters aren't well-known for their wide support base :-/
01:36:45 <fizzie> Heh; my terminal renders all the characters as squares, while my browser just uses non-combining slashed-circles after each letter.
01:37:10 <ihope> http://i2.tinypic.com/2zsya6o.png
01:37:38 <fizzie> "COMBINING ENCLOSING CIRCLE BACKSLASH", it seems.
01:38:28 <ihope> Maybe it's meant to circle two letters at once :-P
01:38:38 <fizzie> Yay, my Prolog-Scheme still works, and hasn't bit-rotted away.
01:38:57 <ihope> Eh, I guess my client plain old doesn't like it.
01:40:01 <GreyKnight> Here's xterm making an effort: http://greyfire.org/picture_library/combining.png
01:40:15 <GreyKnight> ihope: They notoriously don't work well with proportional fonts
01:41:43 <fizzie> The circle in firefox looks at least something that might fit a character well: http://zem.fi/~fis/tmp.png
01:41:52 <fizzie> It just doesn't want to combine.
01:43:04 <GreyKnight> yes, that's the other common problem with them :-P
01:43:17 <ihope> ⃠ <- okay, there it is
02:01:44 <fizzie> |: (let* ((factors (iota 2 n))
02:01:44 <fizzie> |: (x (apply amb factors))
02:01:44 <fizzie> |: (y (apply amb factors)))
02:05:00 <ihope> \x -> x (\x y z -> x z (y z)) (\x y -> x)
02:05:04 <ihope> Something like that :-P
02:06:16 <fizzie> The usual; (define (iota start end) (if (<= start end) (cons start (iota (+ start 1) end)) '()))
02:08:20 * pikhq forces BFM down everyone's throats
02:08:21 <fizzie> I'm not sure _how_ usual that is, actually, but it's not too rare: "Write iota as a LISP function that takes a positive integer as an argument and returns a list of the numbers between 1 and that integer." is a question in http://www.csee.umbc.edu/331/fall00/exams/finalreview.shtml (says Google).
02:09:57 <fizzie> Heh, 'amb' is probably the builtin that has the simplest implementation.
02:23:46 -!- ivan` has quit (Connection timed out).
02:34:05 -!- ivan` has joined.
02:48:17 * pikhq creates stdcons.bfm. . .
02:51:26 -!- GregorR has joined.
02:55:38 <pikhq> A set of macros containing the most efficient two-cell way of setting a constant.
02:56:35 <pikhq> And I'm bored with that now.
02:56:44 <pikhq> I'll do a few more constants later.
02:57:07 <GreyKnight> You managed to stay on one task for a whole 8 minutes there! ;-)
02:57:37 <pikhq> Hey, you try writing out all constants in BF. . .
03:02:17 <pikhq> http://xkcd.com/c10.html
03:08:04 <pikhq> http://xkcd.com/c30.html
03:14:54 <pikhq> A Snapple would be an apple made of tin.
03:15:55 <pikhq> Thinking of a different comic.
03:16:12 <pikhq> Party of four. There are only three people, who are full.
03:17:53 <pikhq> There *were* presumably four hungry people waiting to get into the restaurant. . .
03:18:01 <pikhq> But now, there are three full people.
03:18:33 <GregorR> Their poor, poor fourth friend.
03:24:21 <pikhq> http://xkcd.com/c74.html
03:35:23 <pikhq> http://xkcd.com/c114.html
03:47:25 <Razor-X> The differences between AP Computer Science A and AP Computer Science AB are very difficult!
03:47:32 <Razor-X> You will have to know big-O notation for the latter! :O
03:47:50 <Razor-X> You must also be familiar with... *GASP* exceptions!
03:48:13 * pikhq wishes he bothered figuring out big-O notation. . .
03:48:13 <Razor-X> EXCEPTIONS?! NO! WHAT IS THIS WORLD COMING TO?!?!?!?!?!?!
03:49:02 <Razor-X> I must also be familiar with recursion. Scary.
03:49:14 <Razor-X> Well... I guess it is scary for someone who hasn't programmed in a functional language before, haha.
03:50:52 <Razor-X> I also can't understand why the AP book even points out that you need to know how to cast..... is that really a difficult concept?
03:52:35 <Razor-X> They use the example of storing a double in an integer. That's just pathetic.
03:52:51 <pikhq> The only bit I don't know is big-O notation, and that's only because I haven't needed it.
03:52:55 <Razor-X> I'd understand if you store a double in a float, and it's truncated or something, but a double in an integer? What hell?
03:53:44 <Razor-X> They should point out to the students that they should be happy that casting exists, and you're not using C.
03:55:26 <pikhq> It'd be *understandable* to not know what casting is. . . *If* you had only dealt with weakly typed languages, and never needed it before.
03:55:49 -!- bsmntbombdood has changed nick to bsmnt[bomb]dood.
03:57:04 <Razor-X> Even Ruby casts... although in an odd way.
03:57:20 <Razor-X> I, personally, haven't programmed in a language with implicit casting.
03:57:23 -!- bsmnt[bomb]dood has changed nick to bsmntbombdood.
03:58:02 <Razor-X> Does TCL have implicit casting?
03:58:07 <pikhq> There is a single datatype: the string.
03:58:12 <pikhq> So yeah, it's implicit casting.
03:58:22 <Razor-X> That would make me feel weird :P.
03:58:42 <Razor-X> Even in Scheme you cast with something like (string->list) .
04:00:37 <Razor-X> Chicken is great. You can even make pointers if you wanted to.
04:05:04 <Razor-X> One thing I was thinking was that, if I learned Java, I could help out with Classpath.
04:05:16 <Razor-X> (Assuming I could ever get the bloody thing to compile.)
04:17:12 -!- CakeProphet has quit (Read error: 113 (No route to host)).
04:22:14 -!- Sgeo has quit ("Ex-Chat").
04:45:46 -!- Arrogant has joined.
07:19:26 -!- pgimeno has quit (Read error: 104 (Connection reset by peer)).
07:34:31 <Razor-X> Stacks and queues are ``advanced'' data structures.
07:35:35 -!- pgimeno has joined.
07:36:24 <Razor-X> I'd hesitantly call the binary tree an advanced data structure, but I accept it. Still.... stacks?
07:36:42 <GregorR> I'd put a binary tree JUST under the advanced line.
07:36:55 <GregorR> To be advanced, it has to either not have a name, or have a name that not every programmer knows ;)
07:37:25 <Razor-X> The AP book also devotes 3 pages to teaching Quicksort (more commonly known as ``bubble sort'').
07:37:36 <Razor-X> Hooray, you spent 3 pages explaining to me a sort I devised when I was 9 years old!
07:38:02 <fizzie> You mean they really do call bubble sort Quicksort there?
07:38:22 <GregorR> Um, I've heard the phrase quicksort FAR more commonly than bubble sort.
07:38:32 <Arrogant> I've never heard of bubble sort.
07:38:41 <fizzie> Bubble sort is the canonical O(n^2) sort.
07:38:48 <Razor-X> I've heard bubble sort a lot more often.
07:39:22 <GregorR> I was just about to say - they're not quite the same.
07:39:26 <GregorR> They're fairly similar though.
07:40:40 <Razor-X> Oh. Hmmm, Quicksort is a bit more advanced.
07:40:52 <fizzie> Well, they have the same worst-case time complexity and all. Oh, and the results are rather similar.
07:41:05 <Razor-X> But seriously... that's meant for the advanced test only.
07:41:20 <Razor-X> Come *on*. Quicksort is ``advanced'' ?
07:41:47 <Razor-X> Ugggh. No wonder the new batch of CS students in California are mindless zombies who only work for the smell of a paycheck.
07:41:54 <fizzie> Well, if you consider stacks advanced data structures...
07:42:12 <ivan`> maybe if CS classes actually taught anything practical
07:42:14 <Arrogant> It's too bad not everyone's a genius-man like you, Razor-X
07:42:26 <Razor-X> I was introduced to BF by someone completely non-technical, actually.
07:42:37 <Razor-X> She seemed quite comfortable with the notion of a stack, without ever programming.
07:43:42 <fizzie> Most people who've seen a physical stack of anything do inherently understand the concept of "you can put things on the top and also remove them".
07:44:33 <GregorR> Brits understand queues better than Americans ;)
07:44:47 <fizzie> Compared to that, quicksort's definitely non-trivial. Besides, the implementations might be considerably tricky; look at http://kotisivu.mtv3.fi/quux/qsort.html for example.
07:45:02 <Razor-X> Well, remember, they're not asking for a *good* implementation.
07:45:07 <Arrogant> Divide-and-conquer is trivial, really.
07:45:28 <Razor-X> The greatest part about the test seems that, they ask you to know what O(*) means, but not programming using that information.
07:45:34 <Arrogant> If you understand recursion well enough
07:46:51 <Razor-X> I think an introductory book on Java and the first 3 chapters of SICP are more valuable for this test than any other book.
07:48:01 <Razor-X> Heck, the first 3 chapters of SICP introduce concepts a lot more difficult than the entire test.
07:49:05 <Arrogant> Oh, hey, I was reading that SICP thing once.
07:49:36 <Razor-X> Actually, the book I bought to learn Java (Java in a Nutshell) is pretty useful.
07:49:45 <Razor-X> Then again, it's aimed for the experienced programmer so.....
07:50:07 <fizzie> Our university bookshop thing was selling SICPs for 5 EUR/book (since we don't teach Scheme here any more); a friend bought 10 of them. To spread the word.
07:50:11 <Razor-X> If this is AP Computer Science, it seems SICP is like a gold mine for the beginner programmer.
07:50:57 <Arrogant> I was reading another book on Scheme...
07:51:38 <Razor-X> I used one book also by MIT Press that was a lot faster/better, and also supplemented that with Learn Scheme in Fixnum Days for the practical experience.
07:52:07 <Razor-X> But then again, I had already banged my head raw with Common Lisp before, so it wasn't too difficult for me.
07:52:42 <Razor-X> More like ``Oh ugggh, Common Lisp.''
07:53:11 <Razor-X> CL's motto should be: ``We'll give you a feature, even if we have to defile your child for it!''
07:53:14 <fizzie> The people who try to teach us that "lambda" is simply syntactic sugar for "local", which is their own, completely non-standard and unnecessary thing.
07:54:08 <fizzie> "As discussed in the introduction, a lambda-expression is just a short-hand for a local-expression."
07:54:20 <fizzie> My R5RS says nothing about any "local"s. Bleh.
07:54:37 <Razor-X> Isn't R6RS coming out shortly?
07:54:46 <Razor-X> Or is that like LaTeX 3's ``shortly'' ?
07:55:29 <Arrogant> fizzie, yeah, HtDP has a "learning language" version of Scheme, which was pretty annoying.
07:55:33 <fizzie> I'd guess sooner than LaTeX 3, but wouldn't hold my breath. (I don't think I _could_ hold my breath for more than a minute or so anyway.)
07:55:36 <Arrogant> Considering Scheme is already plenty simple.
07:56:57 <fizzie> Haven't been following R6RS progress since I forgot to re-join #scheme.
07:56:58 <Razor-X> It seems simple to me now, but I remember myself (attempting to) learn(ing) Common Lisp.
07:57:17 <Razor-X> That was the stupidest I've ever felt in my life :D.
07:57:37 <fizzie> There's a status report from June 2006, so I guess they're still at least doing something.
07:57:57 <fizzie> "We intend to deliver a draft R6RS to the Steering Committee by September 1, 2006."
07:58:24 <Razor-X> 4 days later, is there a draft?
07:58:41 <Razor-X> I'm thinking of learning ConTeX only because I don't think LaTeX 3 will ever finish.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:02:44 <fizzie> At least the R6RS improvements seem sensible. There's standardized record types, module/library system, syntax-case and binary I/O (including block reads and such). Oh, and exceptions. And all this mostly based on existing SRFIs.
08:03:12 <Razor-X> I never knew Scheme was this well done, else I wouldn't have even touched CL.
08:03:29 <fizzie> Shush, don't anger the LISPers.
08:03:38 <fizzie> (Do we have any here?)
08:04:04 <Razor-X> That was the initial reason I went to Haskell.
08:05:05 <GreyKnight> I looked at Haskell and then moved on to CL :-P
08:05:44 <Razor-X> Well, I went to CL, learned it kinda, realized I was a CL failure and went on to OCaML. I felt this odd ``Ewww I hate this language'' feeling with OCaML, and found Haskell.
08:06:08 <GreyKnight> Haskell was nice until I found the monads
08:06:38 <Razor-X> I never wrote with Monads. I could read codes with Monads, and used some of their syntax for things normal syntax couldn't give me, but I hated Monads themselves.
08:07:39 -!- ivan` has quit (" HydraIRC -> http://www.hydrairc.com <- The dawn of a new IRC era").
08:07:42 <Razor-X> Some of my Haskell one-liners are pretty awesome though :D.
10:13:45 -!- GreyKnight has quit ("BRB").
10:17:17 -!- GreyKnight has joined.
12:00:17 -!- Arrogant has quit ("Leaving").
12:32:45 -!- pgimeno_ has joined.
12:33:20 -!- pgimeno has quit (Read error: 104 (Connection reset by peer)).
12:33:25 -!- pgimeno_ has changed nick to pgimeno.
12:56:30 -!- GregorR has quit (Read error: 113 (No route to host)).
12:59:21 -!- GregorR has joined.
13:19:09 -!- lindi- has quit (Read error: 104 (Connection reset by peer)).
13:21:44 -!- lindi- has joined.
13:49:40 -!- GregorR has quit (Read error: 110 (Connection timed out)).
13:50:39 -!- GregorR has joined.
15:53:27 -!- GregorR-W has joined.
16:59:10 -!- jix has joined.
17:06:21 -!- kipple_ has joined.
17:19:59 * kipple_ sees a lot of potential keywords for a new groovy esolang...
17:22:17 <kipple_> bom-bom-tschh bi-dom-ti-dom-tschhh
17:54:47 -!- tgwizard has joined.
18:22:51 -!- calamari has joined.
19:15:07 -!- anonfunc has joined.
19:16:52 <GregorR-W> That word is not allowed. Pay the price or suffer harsh penalty.
19:17:34 <kipple_> fear the mighty Syntax Error penalty!
19:18:44 -!- ihope__ has joined.
19:19:17 <GreyKnight> idea: an rpg language where you lose HP for syntax errors
19:21:33 * pikhq hits everyone with BFM whoring
19:35:29 -!- ihope has quit (Read error: 110 (Connection timed out)).
19:44:21 -!- tgwizard_ has joined.
19:55:28 -!- tgwizard has quit (Connection timed out).
19:56:46 -!- calamari has quit ("Leaving").
20:01:16 -!- Sgeo has joined.
20:10:54 -!- ihope__ has changed nick to ihope.
20:15:08 -!- _jol_ has joined.
21:02:16 -!- CakeProphet has joined.
21:19:32 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
21:38:38 -!- kipple__ has joined.
21:51:10 -!- _jol_ has quit ("co'o rodo").
21:55:57 -!- kipple_ has quit (Read error: 110 (Connection timed out)).
22:19:36 -!- tgwizard_ has quit (Remote closed the connection).
22:36:28 -!- GregorR has quit (Read error: 113 (No route to host)).
22:39:13 -!- GregorR has joined.
23:33:43 -!- ihope has quit (Read error: 110 (Connection timed out)).
23:58:04 -!- kipple__ has quit (Read error: 110 (Connection timed out)).