00:00:07 <CakeProphet> What it would do behind the scenes is assign x to 5... but everything -else- would be running backwards.
00:01:26 <ihope> Are you saying x is true, true is true, x != true is true, or "that would set x to false" is true?
00:01:26 <GreyKnight> well, I was referring to what you said immediately before I wrote, then :-P
00:01:54 <GreyKnight> that you could get away with it in that restricted instance
00:01:59 <CakeProphet> in the compiler... "x != 0" would parse out to be "x = 0" And then "if x = 0" would be parsed in the compiler as "if x != 0"
00:02:29 <GreyKnight> CakeProphet: so, basically invert any equality test involving x (which has some sort of flag set on it)?
00:02:31 <CakeProphet> By flip-flopping it... it would create the illusion of assigning unequality :D
00:02:58 <GreyKnight> If both halves of the equality test have their invert flag set, then you don't need to invert it
00:03:26 <GreyKnight> so ASSIGN x!=5, y!=6; sets the flag on both x and y
00:03:52 -!- CakeProphet has quit (Read error: 104 (Connection reset by peer)).
00:03:54 <GreyKnight> for the test "x$=0", you invert, for "y$=0" you invert, but for "x$=y" you don't
00:05:09 <ihope> Just have "might be" and "can't be" as the only relations.
00:05:13 <GreyKnight> Well, this is starting to make some kind of sense, but I think you need to be taking the right drugs to really appreciate it.
00:05:55 -!- CakeProphet has joined.
00:05:55 <ihope> f(x,y) might be x, and f(x,y) might be y.
00:06:10 <GreyKnight> I DARE someone to actually implement this
00:06:18 <lament> f(x,y) can't be z where z can't be x, z can't be y
00:06:34 * GreyKnight digs down on a fountain, splashing water all over the channel. lament drowns!
00:06:40 <ihope> not(x) can't be x.
00:06:48 <ihope> There's your not function.
00:07:01 <GreyKnight> <GreyKnight> CakeProphet: what'd you get up to?
00:07:09 <lament> is(a,b) might be true if a might be b
00:07:16 <lament> is(a,b) can't be true if a can't be b
00:07:16 <ihope> Then you can define "might not be" and "must be".
00:07:21 <CakeProphet> GreyKnight>so ASSIGN x!=5, y!=6; sets the flag on both x and y
00:07:36 -!- CakeProphet has quit (Read error: 104 (Connection reset by peer)).
00:07:58 <ihope> is(a,b) must be true if a must be b.
00:08:10 <lament> it seems that these 'might be' and 'can't be' have the exact same semantics as 'is' and 'is not'
00:08:44 -!- CakeProphet has joined.
00:08:48 <GreyKnight> well, "can't" has the same as "is not"
00:08:50 <ihope> "x might be 3 and x might be 5" is valid, no?
00:08:52 <lament> "x might be 2, y might be 2, x+y can't be 4"
00:09:07 <ihope> GreyKnight: "can't be" is stronger, I think.
00:09:08 <CakeProphet> GreyKnight>so ASSIGN x!=5, y!=6; sets the flag on both x and y
00:09:13 <lament> anyway, shouldn't Prolog already deal with this?
00:09:14 <ihope> And "might be" is weaker than "is".
00:09:21 <GreyKnight> <GreyKnight> for the test "x$=0", you invert, for "y$=0" you invert, but for "x$=y" you don't since the inversions cancel
00:09:21 <lament> ie can't you do all this in Prolog trivially
00:09:26 <ihope> lament: does Prolog have modal logic?
00:09:56 <lament> but i'm thinking this is quite easy to convert to the regular old thing
00:10:30 <GreyKnight> CakeProphet: ihope suggested constructing all the relations out of "can't be" and "might be"
00:10:55 <ihope> How about modal implication?
00:10:58 -!- oerjanj has joined.
00:11:11 -!- CakeProphet has quit (Connection reset by peer).
00:11:18 <ihope> Hmm... maybe x might not imply y.
00:11:26 * GreyKnight just knows this will end up at a dialect of Lisp at some point
00:11:42 <ihope> By the way, can you define a functor in Prolog that is only true if its argument yields absurdities?
00:11:55 <ihope> Does Prolog even have absurdities
00:12:15 -!- CakeProphet has joined.
00:12:48 <lament> does "might be" even mean _anything_?
00:13:03 <lament> not really! unless it's exclusive, which it's not
00:13:07 <ihope> lament: x might be true === x does not lead to an absurdity.
00:13:24 <lament> ihope: i'm not sure i understand.
00:13:30 <ihope> GregorR-W: so aren't you going to add products and ranges, so that you can define a factorial like "fac x = product [1..x]"?
00:14:05 <ihope> x might be true == we don't know that x is false.
00:14:07 <GregorR-W> ihope: Maybe as functions. That is, not with that syntaxd.
00:14:28 <GregorR-W> fac = (x){ product(range(1, x)) };
00:14:30 <ihope> x must be true === it's not possible that x is false.
00:15:42 <GreyKnight> Also, there are too many people in here starting with "Gre" ;_;
00:15:51 <GregorR-W> GreyKnight: Hey, I'm using my name :-P
00:15:53 <CakeProphet> we could always employ some chaos theory ^_^
00:16:05 <lament> GreyKnight: so change your nick to GrayKnight, it's less gay anyway.
00:16:13 * GreyKnight reads a blessed scroll of genocide. What class of monsters do you wish to genocide? , Wiped out all newbies. Wiped out all lusers. Wiped out all script kiddies. Wiped out lament.
00:16:32 <ihope> GreyKnight: now let's get GreenReaper in here.
00:16:41 <GregorR-W> CakeProphet: The alternate spelling came from the name.
00:17:01 <GregorR-W> Nowadays, yes, they're all the same.
00:17:09 <Razor-X> This all sounds like a functional language to me.
00:17:20 <Razor-X> Except with built-in pseudo-equality predicates.
00:18:27 <GreyKnight> I wouldn't touch you with a ten-foot polearm.
00:18:41 <lament> not even a greased one?
00:18:41 -!- ihope has changed nick to GayKnight.
00:19:10 -!- GayKnight has changed nick to ihope.
00:19:10 -!- GreyKnight has changed nick to GreyPaladin.
00:19:12 -!- GreyPaladin has changed nick to GreyKnight.
00:19:39 <lament> My, that was a yummy pancakeprophet!
00:19:55 <GreyKnight> I think the NH references might be a bit too obscure in here
00:19:55 <CakeProphet> That uncertainty article explains how uncertainty is measured :D
00:21:33 <lament> GreyKnight: at least 3 people understand them, plus Razor-X plays slashem
00:21:40 <ihope> Something is either certain or uncertain.
00:21:57 * lament dereferences GreyKnight's pointer
00:22:10 <GreyKnight> ihope: I assume he's talking about Ye Olde Heisenberge Principall
00:22:23 <ihope> lament: eew. None of that stuff in here, okay?
00:22:38 <ihope> So who was it that said it would be funny if the level 30 Knight title were "caitiff"?
00:23:50 <GregorR-W> You've prevented me from saying anything but X_X
00:26:03 <lament> time to clean up this channel
00:27:49 <ihope> Hit the road, Jack, and don't you come back...
00:29:58 <lament> but since they have such similar nicks, i guess GreyKnight will have to do
00:30:05 <GregorR-W> Gee, I'm sorry I interrupted your FASCINATING CONVERSATION.
00:30:37 <oerjanj> i might worry if i knew what that meant
00:30:59 <ihope> Oh know! Not the banded!
00:31:49 * pikhq should write an Esolang on his calculator. . .
00:31:55 <ihope> Actually, nobody's +b'd on #esoteric.
00:32:20 <ihope> pikhq: aren't calculators pretty esoteric anyway?
00:33:27 <pikhq> ihope: It's a GCC target.
00:33:27 <pikhq> It also has a (somewhat odd) Lisp variant built in. . .
00:33:35 <ihope> !1 @1 #1 $1 %1 ^1 &1 *1 meh
00:34:36 <ihope> _1 -1 +1 =1 {1 }1 (1 )1 [1 ]1 |1 1
00:34:40 <GreyKnight> My #eval script surely qualifies for that
00:35:13 <ihope> '1 :1 "1 ,1 .1 /1 <1 >1 ?1 meh
00:35:29 * ihope kicks his chat client
00:35:36 <pikhq> GreyKnight: What? Reverse Polish Lisp?
00:36:07 <CakeProphet> 0 = (1*1) + ((-1)* 1) + (1* (-1)) + ((-1)* (-1)) = -1 + ((-1)* (-1))
00:36:09 <GreyKnight> It's a pretty half-assed implementation
00:36:22 <GreyKnight> a side-effect of which is that it's rather odd
00:36:27 -!- CakeProphet has quit (Read error: 104 (Connection reset by peer)).
00:36:58 <pikhq> I think I'll code in C on it, anyways.
00:37:02 <GreyKnight> bonus points if you hit a function that's actually implemented
00:37:30 -!- CakeProphet has joined.
00:37:41 <pikhq> It's more of "1 2+ 3 4++eval".
00:38:21 <ihope> #eval ((lambda (x) (x x)) (lambda (x) (x x)))
00:38:28 <CakeProphet> 0 + 1 = (1*1) + ((-1)* 1) + (1* (-1)) + ((-1)* (-1)) = -1 + ((-1)* (-1)) + 1 = -1 x -1 = 1
00:38:53 <pikhq> And it leaves 10 on the stack.
00:39:08 <GreyKnight> pikhq: I've seen something similar before
00:39:20 <pikhq> GreyKnight: It's an HP calculator. Decidely odd. ;)
00:39:25 <ihope> 0 = 0*1 = 0*1^0 = 0^0 = 1
00:40:30 <ihope> #eval ((lambda (x) x) 3)
00:40:34 <lament> You want a ban, i'll give you a ban!!
00:40:56 -!- ChanServ has set channel mode: +o lament.
00:40:56 <Razor-X> #do eval (do ((x 0 (+ x 1))) ((= x 300)) (display "HI!"))
00:40:57 <GreyKnight> #do eval (do ((x 0 (+ x 1))) ((= x 300)) (display "HI!"))
00:41:00 <GreyKnight> #! Error: (998) 'DO' IS NOT A FUNCTION OR A MACRO
00:41:19 <Razor-X> Pfft. It's a special form, bub.
00:41:50 <Razor-X> #do eval (display "Waah. I suck")
00:41:51 <GreyKnight> #! Error: (998) 'BIL' IS NOT A FUNCTION OR A MACRO
00:41:56 <GreyKnight> #! Error: (998) 'DISPLAY' IS NOT A FUNCTION OR A MACRO
00:42:03 -!- lament has set channel mode: +b scwizard!*@*.
00:42:03 <GreyKnight> #! Error: (974) FIRST ITEM IS NOT A SYMBOL OR LAMBDA ('NIL')
00:42:05 -!- CXI has quit (Connection timed out).
00:42:09 <GreyKnight> Gimme some break, I did well just producing something like this in PHP :-P
00:42:20 -!- lament has set channel mode: -o lament.
00:42:29 <ihope> http://images.amazon.com/images/P/B0000664NI.01._SCMZZZZZZZ_.jpg <- the infamous ban stick!
00:42:30 <Razor-X> Pfft. Make a Scheme IRC client, bub.
00:42:58 <Razor-X> do eval (print "I eat babies")
00:43:05 <Razor-X> #do eval (print "I eat babies")
00:43:09 <Razor-X> #do eval (print "I eat babies")
00:43:10 <Razor-X> #do eval (print "I eat babies")
00:43:18 <ihope> #do eval ((lambda (x) (list x x)) (lambda (x) (list x x)))
00:43:20 <GreyKnight> #do eval ((lambda (x) (list x x)) (lambda (x) (list x x)))
00:43:21 <GreyKnight> #> '(#<CLOSURE :LAMBDA (X) (LIST X X)> #<CLOSURE :LAMBDA (X) (LIST X X)>)
00:43:50 <GreyKnight> It could do recursive calls to a function, but not any of the special looping forms
00:44:14 <ihope> #do eval ((lambda (x) (list x (list (quote quote) x))) (quote (lambda (x) (list x (list (quote quote) x)))))
00:44:15 <GreyKnight> #do eval ((lambda (x) (list x (list (quote quote) x))) (quote (lambda (x) (list x (list (quote quote) x)))))
00:44:17 <GreyKnight> #> '((LAMBDA (X) (LIST X (LIST (QUOTE QUOTE) X))) (QUOTE (LAMBDA (X) (LIST X (LIST (QUOTE QUOTE) X)))))
00:44:19 <GreyKnight> There's a defun, but its results aren't persistent
00:45:04 <GreyKnight> in the sense that centipedes are something like cats
00:45:25 <Razor-X> Do lambda expressions implicitly execute statements in order?
00:45:48 <ihope> Razor-X: lambda expressions in actual lambda calculus?
00:45:59 <Razor-X> ihope: No, in GreyKnight's odd Lisp dialect.
00:46:00 <lament> Razor-X: lambda expressions don't have any statements!
00:46:08 <GreyKnight> It's 00:43 over here, excuse me if I'm slow
00:46:36 <Razor-X> Ya know, like the Scheme (begin) special form.
00:46:40 * ihope tries this infinite monkey thing
00:46:54 <ihope> To be or nowiex oqh pziqjw bwqo xpl woxqw sbhqo pjw
00:47:01 <ihope> Oh, cool, I got... well.
00:47:19 <Razor-X> I can't remember much of the particulars of CL.
00:47:32 <Razor-X> But, what I can remember is CL felt much worse to program in than Scheme does :).
00:48:09 <GreyKnight> Do you mean that the "body" expressions of the lambda are guaranteed to be executed in the order written?
00:49:24 <Razor-X> If you simply made your IRC client *in* your Lisp dialect, you could get it to excecute its own code with ease ;).
00:49:52 <GreyKnight> That'd be some kind of insane programming exercise
00:50:28 <Razor-X> One of the additions I'm adding to my IRC bot in the Scheme rewrite is the fact that I'm going to give a REPL to privileged users.
00:50:46 <Razor-X> Plus I'll program in an RC file so I can change portions of the code on the fly.
00:50:59 <GreyKnight> well, the Lisp code itself is being run as a PHP script, so I mean it'd be an insane number of levels of abstraction
00:51:17 <Razor-X> Drop the stupid PHP business :P.
00:52:00 <GreyKnight> the whole idea was to see if I could write a Lisp in PHP
00:52:03 <GregorR-W> PHP - unchallengable in its niche, worthless elsewhere :-P
00:52:27 <GreyKnight> yeah - implementing random Lisp dialects
00:52:29 <GregorR-W> If you say "Ruby on Rails" I'll shoot you.
00:53:06 <GregorR-W> No amount of nifty 3rd party libraries will make up for the fact that Ruby just plain sucks.
00:53:28 <Razor-X> Ruby sucks?! *TRIPLE GASP*
00:53:47 <GregorR-W> Ruby = ridiculous OO + all the worst parts of Perl (many of which are totally incompatible with the concept of a completely OO language)
00:53:50 * pikhq wonders if Razor-X has implemented the Violence Over IP protocol correctly. . .
00:54:13 <Razor-X> Nope. Mine's a bit b0rked.
00:54:26 -!- ivan` has joined.
00:54:28 <pikhq> A hint: if it's implemented correctly, you should be dead by now.
00:54:32 <GreyKnight> All Software Sucks, All Hardware Sucks
00:54:37 <lament> Python people have tried to develop an internet framework with the ultimate goal of being able to stab people in the face over the internet.
00:54:49 <lament> they're not quite there yet, but they're making progress
00:54:55 <lament> (Twisted is the framework)
00:55:25 <ihope> All software sucks. Hardware, also, too.
00:55:52 <pikhq> What have you to say about T-languages?
00:56:00 <GreyKnight> All Software Sucks, Hardware Also, Too
00:56:08 <ihope> Razor-X: you beat me to it.
00:56:14 <GregorR-W> Razor-X: Plof is designed to rectify my problems with P-languages ;)
00:56:22 <ihope> For that, I will shoot you 999999 times.
00:56:23 <GregorR-W> P-languages don't suck by nature, it just so happens that they all suck.
00:56:48 <pikhq> Python goes beyond sucking. It engorges the universe in its gaping maw.
00:57:08 <GregorR-W> It goes beyond engorging the universe in its gaping maw. It's goatse.
00:57:09 <Razor-X> Scheme and Haskell should rule the world some day.
00:57:13 <ihope> What if I like Python?
00:57:30 -!- GregorR-W has quit ("Chatzilla 0.9.75 [Firefox 1.5.0.2/0000000000]").
00:57:33 <Razor-X> You can jump off a boat in the middle of the Atlantic Ocean, ihope ?
00:58:19 <ihope> Isn't that a little harsh? Couldn't you just force me to sign a thing stating that I will never have children, except adopted ones?
00:58:48 <Razor-X> Nah. We all know that 99% of people don't actually care about children and only have them because of social pressure.
00:59:09 <pikhq> Also, we know that 100% of all coders are doomed to celibacy.
00:59:24 * CakeProphet likes Python... mainly because it's the only one he can use effectively.
01:00:14 <CakeProphet> Programming languages are basically like politics and religion.......
01:00:26 <GreyKnight> Together, they are... horribly deformed gk-Lisp!
01:00:46 <fizzie> It's "Lost of Irritating Superfluous Parentheses", isn't it?
01:01:03 <pikhq> fizzie: That would just be Lisp with sexps.
01:01:03 <Razor-X> IIRC, Lisp stands for nothing, which is why it's Lisp and not LISP.
01:01:41 <lament> Lisp stands for lament ihope SimonRC pikhq
01:01:42 <oerjanj> what is the syntax of lithp, anyhow?
01:01:45 <lament> the original authors of the language
01:01:59 <fizzie> [from ‘LISt Processing language’, but mythically from ‘Lots of Irritating Superfluous Parentheses’]"
01:02:06 <fizzie> (Says the Jargon file.)
01:02:35 <ihope> I was the one who originally designed the M-expression.
01:02:48 <pikhq> http://en.wikipedia.org/wiki/M-expression
01:03:07 <CakeProphet> If I were to make a useful language... I would use ()'s to denote do-this-and-return-a-value-then-continue-on-with-the-expression)
01:03:33 <ihope> If I were to make a useful language... hmm...
01:04:10 <GreyKnight> if any of use were to make a useful language, we wouldn't be on here :-P
01:04:11 <CakeProphet> On my to do list for useful languages is a language that is perfect for building onto itself... above and beyond Lisp macros.
01:04:29 <pikhq> CakeProphet: Learn Lisp first.
01:04:31 <GreyKnight> Lisps *are* perfect for building onto themselves :-P
01:04:32 * ihope pretends to have written a useful language already
01:05:07 <ihope> Haskell + imperative stuff + optional duck typing = this language.
01:05:11 <GreyKnight> All other languages gradually approach it with each new release
01:05:12 <lament> GreyKnight: your mom is perfection.
01:05:14 * pikhq has written *in* a useful language already.
01:05:19 <Razor-X> Haskell + imperative stuff?!
01:05:27 <CakeProphet> There is a better language out there... we just haven't made it yet.
01:05:35 <ihope> Haskell + more support for monads.
01:05:53 <pikhq> It's like putting Gates and Stallman in a room together: Two enter, one leaves!
01:05:55 <GreyKnight> See, monads were what put me off haskell :-\
01:06:08 <Razor-X> I don't use Monads too often, but they are annoying.
01:06:28 <Razor-X> *Cough* Moving on then....
01:06:50 * oerjanj would be impressed if he believed cakeprophet new what those were
01:07:07 <Razor-X> It would make more sense if he knew *what* a Monad was.
01:07:20 <oerjanj> hm, there is something called triads.
01:07:34 <Razor-X> There is also something called a bifurication.
01:07:57 <ihope> So yeah. Haskell + more monadic stuff + optional duck typing... pretend the monads aren't there, and you got something nice, aye?
01:07:59 <oerjanj> so how do you make an esolang based on triads?
01:08:04 <GreyKnight> "bifurication"? Is that when a furry reproduces?
01:08:11 <CakeProphet> Monads specify an order for shit to happen.
01:08:13 <Razor-X> If it makes you feel happy, yes.
01:08:49 <Razor-X> CakeProphet: Kinda... sorta... not really.
01:08:54 <oerjanj> has anyone made an esolang on a gangster theme?
01:09:05 <ihope> oerjanj: sure, it's called, uh...
01:09:18 <ihope> Isn't there that one that has the stuff and things?
01:10:37 <CakeProphet> monads basically give functional programming a state-change-ish-like ability.
01:11:27 * CakeProphet enjoys putting "def" inside an if in Python.
01:11:42 * Razor-X enjoys using defun syntax in Scheme.
01:12:05 <ihope> GreyKnight: elemental troll Archon, stupid
01:12:07 <CakeProphet> using if combined with def gives you function-changing-like abilities.
01:12:15 <CakeProphet> Except... it's annoying to use... and takes up way too much time.
01:13:36 <Razor-X> Yes well, that sounds fine and dandy, except I can't see anything but very limited use for that :P.
01:14:32 <Razor-X> You can do something similar in Ruby by querying whether the cheese parameter is provided.
01:14:51 <CakeProphet> Lisp could do that much better than Python could.
01:15:22 <GregorR> if(condition, {global thefunc = {/* func a */};}, {global thefunc = {/* func b */};});
01:15:50 <Razor-X> (define wow (pepper corn #!optional cheese) (if (default-object? cheese) (+ pepper corn) (+ (- pepper corn) cheese)))
01:16:46 <GreyKnight> in CL it's &optional instead of #!optional, but otherwise basically similar
01:17:01 <CakeProphet> Python can do arbitrary numbers of arguements too.
01:17:17 <Razor-X> You can condense that example much smaller then :P.
01:18:04 <GreyKnight> I like using # better; think I'll use that syntax when I come to add complicated lambda lists to gkdlisp
01:18:37 <Razor-X> Doesen't it also use &rest ?
01:18:58 <GreyKnight> Yep, and &keyword and probably some others I forgot
01:19:12 <Razor-X> That's another one of those things I didn't like about CL :P.
01:19:19 <Razor-X> You tend to forget most everything about the language.
01:19:32 <GreyKnight> It's consistent within itself, I just don't know why they suddenly decided to start using & as a syntax character
01:19:47 <Razor-X> And I like the fact that Scheme abstracts functions the same way as it abstracts every other definition.
01:19:52 <pikhq> CakeProphet: But of course conditionals are fun. How else do you do Turing completeness?
01:19:56 <GreyKnight> well, I have a copy of the HTML spec nicely linked, so I can look things up at a moment's notice
01:20:36 <ihope> You don't need conditionals for Turing-completeness.
01:20:39 <GreyKnight> gkdlisp fixes it and then trips over its own teeth
01:20:53 <Razor-X> I don't see where Scheme can't be made better in Scheme :P.
01:21:19 <GreyKnight> yeah, the only way a Lisp can be improved is by using its own features or by turning it into another Lisp
01:21:25 <CakeProphet> I love conditionals so much... my super-in-thenear-future-language-I'll-never-create will intend use exessive amounts of conditionals.
01:21:37 <GreyKnight> Lisp as a group is the ultimate; there is no perfection beyond Lisp :-P
01:21:48 <pikhq> ihope: Sure. Try doing Brainfuck without any sort of conditional ability.
01:21:54 <Razor-X> The only one thing I think Scheme can use is Haskell and OCaML's built-in head-tail things.
01:22:14 <Razor-X> Instead of binding head and tail via let, pattern matching is actually pretty nifty.
01:22:18 <ihope> pikhq: the while loop has a condition.
01:22:22 * pikhq has a vague definition of "conditional", which is more along the lines of "being able to branch"
01:22:32 <Razor-X> Of course, I can easily create a macro to *create* pattern matching, so my argument is moot.
01:22:43 <pikhq> ihope: And you just said you can do Turing completeness without conditionals.
01:23:05 <pikhq> Remove []. Is it Turing complete?
01:23:07 <Razor-X> pikhq: BF is Turing Complete. Turing Complete is not BF.
01:23:22 <GreyKnight> Razor-X: what's this pattern-matching head/tail of which you speak?
01:23:33 <ihope> Remove everything, and add S and K combinators.
01:23:38 <pikhq> Razor-X: A Turing complete language can (theoretically) emulate any other Turing complete language.
01:23:39 <ihope> Where's the conditional there?
01:23:46 <CakeProphet> Lisp can do extend onto every aspect of itself... except for moving outside its fundamental syntax.
01:24:05 <pikhq> Clever application of the S and K combinators (I have a *very* vague definition of "conditional").
01:24:18 <Razor-X> GreyKnight: In Haskell, you can write a function parameter as a cons'd list. So the head of the list will automatically be assigned to what you assign at its head, and the tail automatically as what you design the tail to be.
01:24:25 * CakeProphet intends to make a langauge that can change its own fundamental syntax.
01:24:26 <GreyKnight> the much-maligned parentheses are there for a very specific and ingenious reason
01:24:44 <ihope> CakeProphet: just pretend Thubi can.
01:25:27 <Razor-X> Lisp can't change its fundamental syntax? *looks*
01:25:38 <GreyKnight> It's basically impossible for the computer to misparse your Lisp code, because the parse tree is there in the language itself ;-)
01:25:50 <CakeProphet> Unless you change Lisp itself without the use of Lisp to make the change.
01:26:03 <GreyKnight> Reader macros can accomplish quite a lot syntax-wise
01:26:27 <CakeProphet> Do they break away from the fundamental syntax? (a.k.a. parenthesis)
01:26:27 <Razor-X> I was thinking of MIT/GNU Scheme's Reader and Parser.
01:26:46 <Razor-X> You can parse XML using that, among other things.
01:27:18 <GreyKnight> you can read in pretty much any format you like with the various reader control systems
01:27:34 <GreyKnight> why you'd WANT to forgo the standard parentheses is beyond me :-)
01:27:59 <CakeProphet> To create a syntatically different language.
01:28:22 <GreyKnight> but "different from Lisp" implies "inferior" :-)
01:28:39 <CakeProphet> there's something magical about altering your environment to suit your needs in any way possible.
01:28:55 <CakeProphet> Useful... maybe not... but magical indeed.
01:29:04 <GreyKnight> Having said that, a setup that reads in Brainf**k would be hilarious :-D
01:29:08 <Razor-X> You can with the Reader/Parser.... of course, if you have the time.
01:29:29 <Razor-X> Well, my BF interpreter attempted to compile BF to Scheme and then run the Scheme code.
01:30:09 <CakeProphet> Basically... to extend to the language you just need a way to alter the parser via a keyword.
01:30:19 <GreyKnight> Or am I being overly optimistic about the "attempted" part?
01:30:33 <Razor-X> Well, I got bored typing (display) so I gave up :P
01:30:52 <Razor-X> And went on to my original reason for re-learning Lisp via Scheme this time around -- to rewrite my Haskell bot.
01:31:23 <GreyKnight> the IRC bot mentioned earlier, I assume?
01:32:15 <Razor-X> Watch what it can do so far:
01:32:43 -!- Blahbot has joined.
01:32:43 -!- Blahbot has quit (Client Quit).
01:33:01 <GreyKnight> I have a bot in a similar stage of development
01:33:16 <ihope> I have a bot in the "won't compile" stage.
01:33:20 <Razor-X> Given 2 hours, I can probably rewrite the bot as it was originally.
01:33:32 <ihope> It used to be in the "will compile, won't link" stage.
01:33:34 <Razor-X> But... I plan on changing quite a few things around in the core.
01:33:50 <ihope> I'll probably put it back into the "won't parse" stage.
01:34:11 -!- Blarghbot has joined.
01:34:11 -!- Blarghbot has quit (Client Quit).
01:34:13 -!- Blarghbot1 has joined.
01:34:13 -!- Blarghbot1 has quit (Client Quit).
01:34:17 <Razor-X> That's the power of Scheme.
01:34:26 <Razor-X> Blargbot and Blarghbot1. Yeah. It's beautiful.
01:34:30 -!- rodgebot has joined.
01:35:02 <Razor-X> Like, does he actually keep the connection alive?
01:35:22 -!- anonfunc has quit.
01:35:42 <Razor-X> He's using netcat. I know it.
01:35:42 <rodgebot> A whole new advance in bot technology.
01:35:59 <rodgebot> Call now and order your rodgebot today!
01:36:00 <Razor-X> You just *love* scripting languages, don't you? :P
01:36:11 <GreyKnight> rodgebot: you can stop advertising now.
01:36:21 <Razor-X> I can do that easily, but, I have to first work on a universal parser for the IRC commands.
01:36:31 <ihope> rodgebot: what's the number?
01:36:58 <Razor-X> rodgebot doesen't respond to my pings :(.
01:37:06 <rodgebot> ihope: I'm not allowed to advertise anymore :'(
01:37:20 <Razor-X> I just keep pinging him, and NOTHING! :(
01:37:28 -!- rodgebot has quit (Read error: 104 (Connection reset by peer)).
01:37:30 <ihope> Razor-X: CTCP PING?
01:38:00 <GreyKnight> Note to self: do not press big red button
01:38:28 <CakeProphet> surrealofy " (sarcasm isend obviously isend = True; isbegin = False;job = index(surrealofication)) (sarcasm isbegin obviously isbegin = True;isend = False;stringstuff = ord(this[index(job:surrealofication))])
01:38:46 <CakeProphet> coding in hypothetical languages is fun... it gives me the illusion that I know what I'm talking about.
01:38:46 * pikhq really needs to work on his calculus homework. . .
01:42:24 <oerjanj> i like the fibonacci base...
01:44:25 <oerjanj> 1 10 100 101 1000 1001 1010 10000 10001 10010 10100 10101 ...
01:44:51 <GreyKnight> hang about, you're not talking about factorial base
01:45:07 <oerjanj> nope i am not although that is nice too
01:45:53 <GreyKnight> essentially there's no limit on the size of the digits in factorial base
01:47:46 <oerjanj> in fibonacci base each position represents a fibonacci number
01:48:08 <GreyKnight> I just misread "fibonacci" as "factorial"
01:48:23 <GreyKnight> It's possible I'm overtired and should sleep.
01:49:35 <oerjanj> found a link: http://www.mcs.surrey.ac.uk/Personal/R.Knott/Fibonacci/fibrep.html
02:13:25 -!- oerjanj has quit ("Leaving").
02:13:26 -!- pgimeno has quit (Read error: 104 (Connection reset by peer)).
02:21:25 <Razor-X> I should release this 20 page pamphlet of AP Chemistry formulas I have here.
02:21:35 <Razor-X> Rather than leaving it on my hard drive to rot uselessly.
02:28:27 <Razor-X> I'm thinking of a title for my essay.
02:28:48 <Razor-X> I think I'll name it ``A hollistic comparison of three books exploring the nature of human thought''.
02:28:57 <Razor-X> That seems original and it rolls off the tongue.
02:29:14 -!- pgimeno has joined.
02:30:04 <Razor-X> Maybe I'll add a PS at the end of it telling my teacher I'm not an arrogant snobbish girl but in fact, I couldn't think of a good title.
02:30:39 <GreyKnight> or take the opposite tack and have a footnote from the title saying "Yes, I really am that snobbish"
02:30:54 -!- CXI has joined.
02:31:07 <Razor-X> I would've done that to my last year's English teacher and she would've understood, but I haven't even seen this teacher yet.
02:31:11 <Razor-X> So I'm a bit afraid of doing that.
02:33:41 <ihope> Yep, that's what I was going to do next.
02:33:59 <ihope> That sounds quite different.
02:34:47 <ihope> Brown noise, not the brown note.
02:35:10 <ihope> That sounds... that also sounds quite different.
02:35:36 <ihope> And blue noise also sounds different.
02:35:41 * ihope compares it to white noise
02:36:23 <jix> base phi is fun
02:36:36 <jix> it is simmilar to base fibonacci
02:36:37 <ihope> Blue noise seems to be cleaner.
02:36:52 <ihope> jix: radix, you mean?
02:37:02 <GreyKnight> actually, neither of those are "real" bases
02:37:27 <GreyKnight> unary only represents positive integers, and base zero is... nothing
02:37:39 <jix> ihope: uh i guess
02:37:49 <ihope> Purple noise sounds even cleaner...
02:38:14 <ihope> Gray noise is something a person could fall asleep to... maybe.
02:38:29 <GreyKnight> ihope: these are getting pretty obscure
02:38:39 <Razor-X> I have no idea what these noise are.
02:38:54 <Razor-X> I only know that someone who assosciates color with sound ended up naming odd sounds according to color.
02:39:12 <GreyKnight> 'salright, ihope is just reading them off a selection menu ;-)
02:39:16 <Razor-X> And when people want to sound scientific about audio equipment, they use one of those noises like buzzwords.
02:40:09 <lament> unary represents your mom.
02:40:09 <Razor-X> I say we should've named the noises according to food.
02:40:09 <Razor-X> Papaya Noise sounds awful.
02:40:23 -!- ivan` has quit (" HydraIRC -> http://www.hydrairc.com <- The future of IRC").
02:40:26 <ihope> We should have named them the same way we name nozzles.
02:40:38 <Razor-X> I could go to sleep to some Flan Noise.
02:40:39 -!- ivan` has joined.
02:41:00 <Razor-X> Habanero Noise will wake you up pretty quickly.
02:41:22 <ihope> That's what grey noise should be called... flan noise.
02:41:43 <ihope> Well, time for me to abruptly disappear again.
02:41:46 <lament> and GreyKnight could be called FlanKnight?
02:41:56 <Razor-X> No, we need to name some noise that deals with YourMom lament noise.
02:42:08 * ihope has left irc.freenode.net ("Fooled you!")
02:42:25 <Razor-X> The sound of Waikiki Beach? (lame joke)
02:43:17 <jix> gray noise is cool
02:44:31 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
02:46:55 -!- CXI has quit ("If you're reading this, it's probably xchat's fault.").
02:46:56 <lament> we can't fucking swear in #nethack?
02:47:25 -!- Sgeo has joined.
02:47:34 <GreyKnight> Don't make me look down my nose at you
02:47:50 <lament> that would be... pretty disgusting.
02:48:19 <GreyKnight> I have 4 ranks in Furious Glaring and I'm not afraid to use them
02:48:56 <lament> GreyKnight: i didn't know you were female
02:49:20 <lament> GreyKnight: asl? wana cybr?
02:49:37 <lament> that's not a glare, that's scissors, you dumb shit
02:51:29 <Razor-X> ===========================>>>>>> (X_X) <<<<<========================================
02:51:36 <Razor-X> Glaring at you while you get PWNED.
02:51:46 <GreyKnight> I like the special effects on the second
02:51:49 <Razor-X> That's RIGHT. Ph33r my ub3r-ASCII art.
02:51:54 <lament> GreyKnight: see, a real female glare
02:52:03 <lament> GreyKnight: not like your pathetic mockery
02:52:32 <GreyKnight> When I want your opinion, I'll rip your head off, scoop out what brains I can find, and crap your opinion back into your skull.
02:53:01 <lament> joke's on you, i don't have any brains!
02:54:45 <lament> GreyKnight: New moon tonight! You feel bitchy.
02:55:46 <GreyKnight> New moon tonight! You talk gently to the succubus... The succubs hits! The succubus scratches! What a bitch!
03:01:49 <GreyKnight> Think I've got the definition for this lego language sorted... next, an interpreter.
03:04:06 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
03:04:08 <EgoBot> 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl
03:04:45 <lament> what is this lambda thing?
03:04:51 * lament suspects he might have written it
03:06:19 <Razor-X> Obviously Gregor coded that well.
03:06:46 -!- ivan` has quit (Connection timed out).
03:07:26 <Razor-X> There's no hq9+ interpreter!
03:07:31 <lament> I remember it working :|
03:07:35 <lament> !lambda 8a9oeu98ao8a9g83998glp3
03:07:38 <EgoBot> Tokenizer error: Tokenizer can't comprehend '8'
03:07:48 <lament> okay. that's a different lambda.
03:08:21 <lament> !lambda print "hello world"
03:08:26 <EgoBot> Parser error: Unbound variable: print
03:08:26 <EgoBot> While parsing "./tmp/egobot.l2Rlk5": Invalid character!
03:08:51 <lament> what the hell is this "lambda" and how does it work.
03:09:23 <lament> !lambda (\x."hello")"world"
03:09:24 <EgoBot> Parser error: Unbound variable: j
03:09:39 <lament> !lambda (\x.x "hello")"world"
03:09:56 <EgoBot> Parser error: list index out of range
03:10:23 -!- ivan` has joined.
03:11:16 <EgoBot> [and c0 c1 c10 c2 c256 c3 c4 c5 c6 c7 c8 c9 exp fact false fr i i0 i1 if iszero k mult not or plus pred s show succ true y]
03:11:36 <EgoBot> \n.(n \x,x,y.y \x,y.x)
03:12:13 <Razor-X> Can't remember what you even wrote.
03:12:24 <GreyKnight> Finally figured out how to use your own crappy software
03:12:31 <lament> i remember fixing that \x,x,y issue but only offline
03:12:43 <lament> anyway it doesn't affect the functionality
03:13:09 <lament> !lambda #show iszero c0
03:13:12 <EgoBot> \n.(n \x,x,y.y \x,y.x)
03:13:48 <lament> !lambda #show iszero c1
03:13:50 <EgoBot> \n.(n \x,x,y.y \x,y.x)
03:14:13 <lament> !lambda #show (iszero c1)
03:14:52 <lament> comma between arguments, period between arguments and the body
03:15:13 <lament> !lambda greyknight = "idiot" ;
03:18:36 <EgoBot> Parser error: Unbound variable: x
03:19:03 * pikhq has his Calc work done. :)
03:20:06 <EgoBot> \f.(\x.(f x x) \x.(f x x))
03:20:21 <lament> parser error because my parser is dumb?
03:20:30 <lament> !lambda (\x.x x) (\x.x x)
03:20:32 <EgoBot> Parser error: Unbound variable: x
03:20:42 <lament> it works on my local copy
03:21:03 <EgoBot> /bin/bash: line 1: 11535 Segmentation fault ./lambda/lambda.py <./tmp/egobot.7E27T9
03:21:15 <pikhq> Now *that* takes skill.
03:21:37 * pikhq thinks that EgoBot was *not* meant to handle recursion. ;)
03:21:49 <lament> yeah, it segfaults locally on the program you originally gave
03:22:22 <lament> (Python segfaults due to running out of stack - one of unpleasant little things about Python)
03:22:44 <GreyKnight> That's a pretty assy way to handle running out of stack
03:23:14 <lament> your FACE is pretty assy.
03:23:23 <pikhq> (also an unpleasent thing about Tcl (although Tcl handles it better *AND* there's a package in Tcllib to do tail call optimisation, so you shouldn't run into it if you're sane))
03:24:48 <pikhq> (I intend to learn Lisp)
03:25:33 <pikhq> "Reverse Polish Lisp FTW." out
03:41:42 <RodgerTheGreat> hey, uh- question: could anyone recommend a TCL interpreter for OSX, preferably one with downloadable binaries?
03:42:13 <pikhq> Second, there's only one Tcl interpreter, and that is Tcl.
03:43:47 <Razor-X> Can you reccomend a Tcl compiler?
03:44:12 <Razor-X> I don't think I'll be venturing out of Scheme for a while, but y'know, just for the awesomeness.
03:44:15 <pikhq> No Tcl compilers (except maybe the bytecode compiler that's part of the interpreter).
03:46:50 <pikhq> http://tcltkaqua.sourceforge.net/
03:47:33 <GreyKnight> You're supposed to say "...echo in here?" ;-)
03:48:27 <Razor-X> pikhq: There's no compiler ;-;.
03:48:41 <pikhq> http://jim.berlios.de/ I lied. There are two implementations.
03:49:19 <Razor-X> You dash my hopes and dreams and then tell me you're a LIAR?!
03:49:26 <pikhq> Although Jim is only a subset of it. . .
03:49:28 <Razor-X> Oh cruel cruel world of ours!
03:49:57 <Razor-X> I feel your anger, it gives you focus, it makes you stronger!
03:51:20 <Razor-X> You're changing the subject, BUB!
03:51:55 <CakeProphet> Create the most efficient Ackermann function you can... the person that can return the most results wins.
03:52:13 <CakeProphet> Unfortunately... you'll have to wait till tomorrow to claim victory... because I'm leaving in a few minutes.
03:52:24 <Razor-X> Here's another line from that movie:
03:52:24 <CakeProphet> By the way..... http://en.wikipedia.org/wiki/Ackermann_function
03:52:46 <pikhq> Make it pre-store the results. :p
03:52:47 <Razor-X> She was alive, I felt it!!!!!
03:53:08 <Razor-X> I think the last line is the most descriptive one.
03:53:24 <GreyKnight> Ackermann function, been there, done that, got the horrible picture
03:54:23 <Razor-X> I thought Chani dies in the second (and last one I read) book?
03:54:55 <Razor-X> That's the only line I really remember from that book.
03:55:04 <Razor-X> And Bene Tleilaxu, because of the horrible sense of spelling.
03:55:08 <Razor-X> I couldn't stand Dune, I'm sorry.
03:55:12 <GreyKnight> Leto II is by far the most badass character in the entire series
03:55:25 -!- CakeProphet has quit (Connection reset by peer).
03:55:30 <GreyKnight> If you haven't read God Emperor of Dune, you've missed out on his brilliance
03:55:44 <Razor-X> The first book was mediocre. The second book was awful.
03:55:56 <RodgerTheGreat> I thought the baron Harkonnen was a pretty amazing bad guy, and Peiter DeVries is pretty awesome as well.
03:56:19 <GreyKnight> Leto II knocks the stuffing out of all of 'em, of course
03:56:26 <RodgerTheGreat> I thought the first was the best, but "God Emperor" is a close second. I haven't read anything after that.
03:56:36 -!- CakeProphet has joined.
03:57:15 <GreyKnight> RodgerTheGreat: save yourself time and money; don't
03:57:25 <GreyKnight> I bought it and pretty soon wished I hadn't.
03:57:33 * CakeProphet demands an Ackermann function from all of you!
03:58:18 <GreyKnight> RodgerTheGreat: They are molesting Herbert Senior's corpse
03:59:48 <RodgerTheGreat> but the butlerian Jihad itself is such a *great* story topic! How could they go wrong?
04:00:06 <GreyKnight> By trying to cram everything into a very small space
04:00:51 <GreyKnight> Basically the premise of the legend books is that every single technological and social detail of the Empire was established at the time of the Jihad, 10 millenia ago
04:01:45 <GreyKnight> I found the machines to be pretty unappealing, too.
04:02:50 <GreyKnight> No depth to them at all... Star Trek's Lt. Cmdr. Data is a more three-dimensional character, and he sucks starfish.
04:02:55 <RodgerTheGreat> well, fuck. now I don't have anything lined up to read the next time I have a chance.
04:03:07 -!- CXI has joined.
04:03:36 <RodgerTheGreat> did they go the usual retarded "I am an emotionless machine- humans are inefficient and must be destroyed!" route?
04:04:20 <GreyKnight> *that* was a good series... the plot is so complex even I get taken by surprise
04:04:46 <GreyKnight> The characters actually act like they have personalities :-o
04:05:46 <RodgerTheGreat> but, MAN, that tack is overdone. I've always thought that one of the best approaches to AI programming would involve simulating emotions. Logic in humans is superimposed over emotion, and our emotional responses represent a large number of the elusive things humans are good at.
04:07:10 <GreyKnight> They do have one Data recolour who's trying to understand emotions, but he gets all whiny because emotion does not compute
04:07:35 <GreyKnight> Of course, being an evil robot, he kills things, so not a complete copy-and-paste of Data
04:09:25 <GreyKnight> well, there's the token robot who works with the "trustee" human slaves and goes all noble and what-have-you
04:09:40 <RodgerTheGreat> wait, I can answer that myself: people want heroes thay can directly identify with.
04:09:41 <GreyKnight> but this probably evokes no feeling of surprise in you
04:10:25 <RodgerTheGreat> Robots are always either paladins or maniacal killing machines with a pretense of logic.
04:11:42 <GreyKnight> Amber manages to continually surprise you as well as somehow managing to weave all the complex threads together into a coherent world
04:12:26 <RodgerTheGreat> what kinda vein is Amber in? Cyperpunk, semi-fantasy, hard sci fi... ?
04:12:40 <GreyKnight> I say "world", because there's little sense of an actual *story* as such; things are coming and going without so much as a by-your-leave, like real life
04:13:28 <GreyKnight> Technically it incorporates every story ever written, and many that haven't been, but obviously the author can only cover so much of the multiverse ;-)
04:14:26 <RodgerTheGreat> I wish it was possible to do a proper movie adaptation of Snow Crash. That would be *amazing* if they could be true to the book.
04:20:19 <RodgerTheGreat> but back on my previous point, I'd like to see more fiction where machines are portrayed more like Asimov did, where they were generally the victims of manipulation at the hands of humans.
04:22:25 <RodgerTheGreat> Characters like flatline from neuromancer are pretty good as well.
04:48:01 <GreyKnight> I managed to come up with a lego-based language that uses black, red, yellow, green, blue, white, and transparent bricks
04:48:14 <GreyKnight> plus I'd like minifigures for the wandering processors :-)
04:49:21 -!- CakeProphet has quit (No route to host).
04:58:41 -!- Arrogant has joined.
05:00:54 -!- ivan` has quit (" HydraIRC -> http://www.hydrairc.com <- 100,000+ downloads can't be wrong").
05:01:23 -!- Sgeo has quit ("Ex-Chat").
05:02:51 -!- ivan` has joined.
05:03:07 -!- bsmntbombdood_ has joined.
05:03:35 -!- bsmntbombdood_ has quit (Client Quit).
05:05:40 -!- RodgerTheGreat has changed nick to RodgerTheAfk.
05:41:29 -!- calamari has joined.
06:17:02 -!- anonfunc has joined.
06:22:12 -!- anonfunc_ has joined.
06:22:13 -!- anonfunc has quit (Remote closed the connection).
06:23:02 -!- anonfunc_ has changed nick to anonfunc.
07:46:38 -!- ivan` has quit (" HydraIRC -> http://www.hydrairc.com <- The future of IRC").
07:50:27 -!- anonfunc has quit.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:26:00 <Razor-X> The Ackermann function is *trivial* to define in any Lisp.
08:26:25 <Razor-X> It's actually pretty useful for certain situations. (Which I didn't know.)
08:27:06 <GreyKnight> funny you should mention it, someone in another channel just tried to break my #eval script by running (ackermann 4 4) in it ;-)
08:28:05 <Razor-X> Is it useful at all in Mathematics outside of being quaint to prove something?
08:28:06 <GreyKnight> We were using (defun ackermann (a b) (if (= a 0) (1+ b) (if (< a 0) 0 (if (= b 0) (ackermann (1- a) 1) (ackermann (1- a) (ackermann a (1- b)))))))
08:28:31 <Razor-X> (cond) is a *lot* cleaner.
08:28:48 <Razor-X> Oh wait, you haven't written (cond) have you? :P.
08:29:13 <GreyKnight> I thought not, butI just checked and it seems I do :-o
08:30:14 <GreyKnight> Wikipedia says A is used in time-complexity analysis and for some benchmarking
08:30:31 <Razor-X> You should make (if) expand to a (cond).
08:30:44 <Razor-X> Oh wait, I don't think you can, because they're both special forms.
08:30:45 <GreyKnight> It's a good way to test how well your compiler handles massive recursion ;-)
08:30:48 -!- calamari has quit ("Leaving").
08:31:38 <GreyKnight> actually, with this half-assery approach I could probably pull it off...
08:31:55 <GreyKnight> it essentially has only "functions" and "macros"
08:32:59 <GreyKnight> and isn't anywhere near generic enough to allow users to define the latter :-\
08:36:17 <Razor-X> One more error with your function.
08:36:36 <Razor-X> (if (> a 0) not (if (< a 0)
08:37:18 <GreyKnight> notice that little 0 sneaking in unobserved!
08:37:23 <Razor-X> Read the Wikipedia definition.
08:37:44 <Razor-X> The integers are all non-negative.
08:38:11 <GreyKnight> I just threw that in in case some wise guy decided to pass a negative argument in
08:38:36 <Razor-X> I would else it to 0 then.
08:40:48 <Razor-X> (ackermann 6 90) is calculating :P.
08:41:44 <Razor-X> (ackermann 6 20) gave me a result, at least, heh.
08:43:05 <GreyKnight> gkdlisp doesn't store any precalculated values, so I'll not be going anything like that deep :-o
08:43:48 <Razor-X> I still can't see why CL *insists* on having defun and define.
08:46:22 <GreyKnight> Nothing listed in the spec for just define, but there are several define- things
08:51:14 -!- CXI has quit (Success).
08:58:21 <Razor-X> Well, Scheme is consistent in that (define) maps a result to a symbol (creating state).
09:00:00 <GreyKnight> ah, so you use (define) to attach *anything* to a symbol?
09:00:45 <Arrogant> Makes higher-order functions a lot prettier, for one ;)
09:02:00 <GreyKnight> I'm sure you could cook up something such in CL, as per our discussion on Lisp readers earlier ;-)
09:02:11 <GreyKnight> but CL is intended to be *Common*, not perfect
09:02:47 <GreyKnight> which leads to a few oddities here and there
09:04:25 <Razor-X> The problem I had with CL in the very beginning was that I couldn't get used to the irregularities and the insane amount of things to memorize.
09:04:41 <Razor-X> Scheme feels a lot more fun to me, since I can abstract it all much more cleanly.
09:05:13 <Razor-X> I guess that's how you can tell Scheme is a-callin' :P.
09:05:33 <Razor-X> Uggh. I hate writing parsers though, and reading fun ABNFs.
09:06:05 <Arrogant> CL seemed like a big mess to me, with a million things to remember. And the multiple namespaces didn't sit right with me.
09:06:22 <Razor-X> Heh. Yeah, I got the same feeling.
09:07:03 <Razor-X> MIT/GNU Scheme's standard is pretty good. It comes with raw X usage, TCP streams, and all.
09:08:05 <GreyKnight> By all accounts, though, the world before CL was one of many different, barely intersecting types of Lisp
09:08:27 <GreyKnight> At least now everyone has something to touch base with, even if only to say why they're better :-P
09:09:01 <Razor-X> I love it when a book calls itself a handbook but has 1000+ pages.
09:11:16 <Razor-X> In Haskell, I got to steal the IRC parser code from elsewher.
09:11:26 <Razor-X> Now I got to write it myself :(. I hate parsers.
09:12:26 <GreyKnight> I'm sure I saw some Scheme IRC code somewhere...
09:13:20 <Razor-X> I know it exists, if *Haskell* had IRC code, Scheme must have it.
09:14:18 <Razor-X> Haskell's only IRC thing out there was for HaskellBot, which was filled with an insane amount of monads, and the Hircules client's ``library'' which was also lumped with a whole bunch of useless GUI functions.
09:14:39 <Razor-X> I think I made what can be considered to be the first ``IRC library'' in Haskell, no matter how rudimentary it is.
09:16:21 <GreyKnight> http://sisc.cvs.sourceforge.net/sisc/contrib/irc/scheme/
09:18:12 <Razor-X> But, I wanna try my hand at the parser myself.
09:18:36 <Razor-X> Of course, if I need to, I'll just steal SISC's code :D.
10:48:08 <pgimeno> [ot] would someone help me make up some words for which "WORD" is an acronym, which imply some rant towards M$ or Word itself? All I could come with is "We Ought to Rant Doubly".
11:14:48 -!- Arrogant has quit ("Leaving").
11:17:39 -!- Arrogant has joined.
11:47:34 -!- jix has joined.
11:53:42 -!- Arrogant has quit ("Leaving").
12:11:43 -!- jix has quit ("This computer has gone to sleep").
12:16:17 <ihope> Wilted Or Rancid Butterflies?
12:16:53 <ihope> Or maybe something like We Overwrite Random Data.
12:24:01 <ihope> Or Word Overwrites Random Data.
12:27:49 <pgimeno> (vijara is just another recursive acronym)
12:30:10 <ihope> An AAIARAT is a recursive acronym, then
12:39:18 <pgimeno> how would a pangram look like in Japanese?
12:46:56 <pgimeno> oh, there's one in kana: ??????? / ????? / ?????? / ????? / ??????? / ????? / ??????? / ?????
12:52:15 <ihope> What character encoding would that be?
12:52:41 <pgimeno> er, did I forget to switch to utf-8?
12:52:57 <pgimeno> <pgimeno> oh, there's one in kana: いろはにほへと / ちりぬるを / わかよたれそ / つねならむ / うゐのおくやま / けふこえて / あさきゆめみし / ゑひもせす
12:54:27 <lindi-> very unreadable indeed :/
12:56:16 <lindi-> pgimeno: IROHANIHOHETOTIRINURUWOWAKAYOTARESOTUNENARAMUUWINOOKUYAMAKEHUKOETEASAKIYUMEMISIWEHIMOSESU?
14:59:48 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
15:02:18 -!- puzzlet has joined.
15:13:49 -!- nickie12 has joined.
15:14:37 <nickie12> Please give me the source of 99 Bottles of Beer in IRP,if yuo do it, it would be lovely
15:17:58 -!- Keina has joined.
15:18:09 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
15:18:11 <EgoBot> 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl
15:19:42 <nickie12> Can anyone say "hello world" to the channel? That would be lovely
15:20:32 <nickie12> Please write it without capitals, OK?
15:21:51 <nickie12> Now, can anyone say the source code of 99 Bottles of Beer to the channel?
15:23:15 <nickie12> 't do a DDoS attack by saying *rofl*
15:26:28 -!- jix has joined.
15:27:22 <nickie12> Please give me the answer to this question: Is jix/are you german?
15:28:04 <Keina> dachte hier weren nur englender
15:28:06 <jix> wer ist denn noch alles deutsch?
15:28:26 <jix> hmm hier waren nochmal 2 andere deutsche... aber die sind glaub ich nicht da
15:29:30 <jix> http://www.frappr.com/esolang << here is a map of esolang programmers
15:30:14 <nickie12> Kanns sein, dass "Anders" deutsch ist?(English: Am I right with the belief Anders is german?(Anders is the german word for different))
15:32:08 <nickie12> If anyone needs it I can post the source code of the "99 Bottles of Beer" song to the channel.
15:35:10 <jix> nickie12: according to geobytes.com Anders is from sweden
15:35:18 <jix> but according to geobytes.com i'm from italy ^^
15:35:31 <jix> and it would be new to me that bremen is an italian city ^^
15:36:10 <jix> duh... that was the point...
15:38:53 <nickie12> oh... I didn't understand your sentence... *bang my head on the wall
15:39:28 <jix> "leichte schläge auf den hinterkopf erhöhen das denkvermögen" ^^
15:40:28 <nickie12> Please note that I'm grinning now *laugh*
15:51:33 -!- pgimeno has quit (Read error: 104 (Connection reset by peer)).
15:53:17 -!- GregorR-W has joined.
15:54:09 <jix> hey GregorR-W
15:54:38 <Keina> wer is alles deutsh?
15:54:47 <jix> Keina: das hatten wir schon...
15:55:01 <Keina> kan jemand gekomen sein
15:55:15 <jix> Keina: the only germans here are AFAIK you, nickie12 and i
15:55:38 <Keina> iner leiste rechts
15:55:47 <Keina> einer der "anders" heist
15:55:52 <Keina> is das nit deutsh?
15:56:03 <jix> Keina: no he's from sweden AFAIK
15:57:09 <nickie12> Please produce an output with an IRC command
15:57:52 <GreyKnight> #help <command> : Tells you what a command does.
15:58:09 <ihope> That could cause conflicts.
15:58:22 <jix> #do eval (+ 1 2)
15:58:37 <jix> #do eval (+ 2 3)
15:58:43 <jix> #do eval (exit)
15:58:48 <GreyKnight> #! Error: (998) 'EXIT' IS NOT A FUNCTION OR A MACRO
15:58:50 <jix> #do eval (quit)
15:58:54 <GreyKnight> #! Error: (998) 'QUIT' IS NOT A FUNCTION OR A MACRO
15:59:15 <ihope> #eval (eval '(eval '(eval)))
15:59:20 <GreyKnight> #! Error: (483) FUNCTION 'eval' TAKES ONE ARG
15:59:22 * GreyKnight congratulates everyone on their counting skills
15:59:59 <Keina> i like this channel
16:00:12 <nickie12> Please recognize that I go and play badminton
16:00:25 -!- nickie12 has quit.
16:00:33 <GreyKnight> #! Error: (327) FUNCTION + TAKES AT LEAST TWO ARGS
16:01:22 <GreyKnight> apparently there's a slang word "cu" in some language, which is rather rude
16:01:34 <GreyKnight> I forget which, but it came up in a mailing list one time :-)
16:01:44 <GreyKnight> #! Error: (998) 'NOT' IS NOT A FUNCTION OR A MACRO
16:01:44 -!- Keina has left (?).
16:01:52 <GreyKnight> #! Error: (998) 'NOT' IS NOT A FUNCTION OR A MACRO
16:02:07 <ihope> What unary functions are there?
16:03:19 <ihope> #eval (((lambda (x) (lambda (y) (x y))) cdr) '(3 4 5))
16:03:19 <GreyKnight> #do eval (((lambda (x) (lambda (y) (x y))) cdr) '(3 4 5))
16:03:23 <GreyKnight> #! Error: (974) FIRST ITEM IS NOT A SYMBOL OR LAMBDA (''((LAMBDA (X) (LAMBDA (Y) (X Y))) CDR)')
16:03:41 <ihope> #eval (lambda (x) (lambda (y) (x y)))
16:03:42 <GreyKnight> #do eval (lambda (x) (lambda (y) (x y)))
16:03:44 <GreyKnight> #> #<CLOSURE :LAMBDA (X) (LAMBDA (Y) (X Y))>
16:04:02 <ihope> #eval ((lambda (x) (lambda (y) (x y))) cdr)
16:04:03 <GreyKnight> #do eval ((lambda (x) (lambda (y) (x y))) cdr)
16:04:41 <ihope> Methinks that should be #<CLOSURE :LAMBDA (Y) (CDR Y)>, no?
16:05:19 <ihope> #do eval ((lambda (y) (cdr y)) '(3 4 5))
16:05:20 <GreyKnight> #do eval ((lambda (y) (cdr y)) '(3 4 5))
16:05:47 <ihope> #eval (((lambda (x) (lambda (y) (x y))) cdr) '(3 4 5))
16:05:48 <GreyKnight> #do eval (((lambda (x) (lambda (y) (x y))) cdr) '(3 4 5))
16:05:51 <GreyKnight> #! Error: (974) FIRST ITEM IS NOT A SYMBOL OR LAMBDA (''((LAMBDA (X) (LAMBDA (Y) (X Y))) CDR)')
16:06:01 <ihope> #eval (((lambda (cdr) (lambda (y) (cdr y))) x) '(3 4 5))
16:06:03 <GreyKnight> #do eval (((lambda (cdr) (lambda (y) (cdr y))) x) '(3 4 5))
16:06:07 <GreyKnight> #! Error: (974) FIRST ITEM IS NOT A SYMBOL OR LAMBDA (''((LAMBDA (CDR) (LAMBDA (Y) (CDR Y))) X)')
16:06:13 <ihope> #eval (((lambda (cdr) (lambda (y) (cdr y))) cdr) '(3 4 5))
16:06:14 <GreyKnight> #do eval (((lambda (cdr) (lambda (y) (cdr y))) cdr) '(3 4 5))
16:06:17 <GreyKnight> #! Error: (974) FIRST ITEM IS NOT A SYMBOL OR LAMBDA (''((LAMBDA (CDR) (LAMBDA (Y) (CDR Y))) CDR)')
16:06:29 <ihope> Okay, this means that Lisp is stupid and everybody should stop using it.
16:06:33 <GreyKnight> One thing about this... it's rather spammy.
16:07:09 -!- pgimeno has joined.
16:17:24 <GregorR-W> Lesse .. #eval (system "rm -rf /")
16:20:24 -!- tgwizard has joined.
16:23:45 <lindi-> GreyKnight: does that answer query too? ;)
16:24:50 <GreyKnight> It should do, although no-one's tested that part yet
16:25:00 <lindi-> GreyKnight: can i try?
16:33:25 <GregorR-W> Every time I'm looking for something GNU/Linux-related and obsolete, I search and search and search and then find it on planetmirror.
16:33:33 <GregorR-W> You'd think I'd learn to look at planetmirror first.
16:35:30 -!- Keina has joined.
16:36:13 -!- Keina has left (?).
16:40:42 <GregorR-W> I've heard of interpreters crashing, but that *HAHAHAHA I AM ENDLESSLY AMUSING*
16:47:30 <ihope> #eval (system "ls /")
16:47:35 <GreyKnight> #! Error: (998) 'SYSTEM' IS NOT A FUNCTION OR A MACRO
16:49:59 <GregorR-W> So, I'm thinking of adding explicit security levels to Plof. Internal/library functions would have a definition of their security level (perhaps 1-5) depending on trust. So system, for example, would have a trust of 5, but if and println would have a trust of 1. That way, you could (somewhat) safely run a remotely accessable interpreter, so long as you make sure to run it at low trust.
16:50:42 <lindi-> GreyKnight: why not just write an interpreter in lisp
16:51:03 <GreyKnight> lindi-: I wanted to see if I could do one from scratch
16:56:12 -!- Sph1nx has joined.
17:43:51 -!- CXI has joined.
18:36:44 -!- nickie12 has joined.
18:37:04 <nickie12> Please understand that I say hello
18:39:04 <nickie12> Please ask me how to understand something :P
18:39:47 <ihope> How do I understand something?
18:41:30 <nickie12> You only have to think about it or read about it
18:41:57 * ihope tries to think about that nickie12 says hello
18:42:10 * ihope fails, then tries to read about that nickie12 says hello
18:43:58 <nickie12> Ok, please go to a course for dumb guys. I recommend you the course: Understanding the word hello
18:44:42 <ihope> How do I go to a course for dumb guys?
18:45:42 <ihope> So isn't guessing the thing computers are worst at?
18:46:01 <nickie12> Thanks for the translation to dummy language :)
18:48:23 <pikhq> ihope: With Windows, it's the only thing that a computer can do.
18:48:43 <ihope> I thought crashing was the only thing they could do. :-P
18:49:39 <nickie12> And I thought reporting the personal information to Microsuck and, after that, crashing is the only think they could and should do :P
18:49:58 <nickie12> OK, I use it too, but only for gaming and IRC.
18:51:14 <lament> does mIRC still suck as much as it used to?
18:51:26 <ihope> So... I didn't say that computers couldn't guess, did I?
18:51:48 -!- Sph1nx has quit (" !").
18:51:56 <nickie12> 1) - I don't use Linux altough I like it, I use my Mac
18:52:29 <nickie12> 2) - give me another scriptable graphical IRC client with an easy scripting language please :P
18:52:48 <lament> why do you want your irc client scriptable, anyway?
18:52:50 <GreyKnight> Nobody's implemented Brainf**kIRC yet? :-o
18:53:16 <GreyKnight> Chatzilla is scriptable and runs anywhere there's FF
18:54:54 <ihope> ChatZilla is scriptable?
18:55:09 <lament> what's the point of scriptable irc clients?
18:55:47 * GreyKnight pushes lament into a pit. lament lands on a set of iron spikes. The spikes were poisoned. The poison was deadly...
18:56:30 <nickie12> Chatzilla itself is coded in JavaScript?!
18:56:35 <GregorR-W> Firefox is to JavaScript as Emacs is to Lisp :P
18:56:54 <lament> GreyKnight: taht's not fun. That just makes you look like an idiot every time you paste it. And it dosen't need a script.
18:57:54 <nickie12> But I think I don't switch to Chatzilla because I hate JavaScript >.<
18:57:55 <GregorR-W> GreyKnight: That mode was unset long, long ago.
18:59:03 <ihope> === u is unknown mode char to me
19:00:13 <nickie12> Maybe you can do some cool things like interpreters for esoteric languages in JavaScript, but I don't like it ^^
19:00:54 <lament> javascript is quite nice conceptually
19:01:19 <GregorR-W> It does have some dark, freaky corners, particularly in terms of OO ability.
19:01:32 <nickie12> I prefer developing in server-side scripting languages, more precisely in PHP
19:02:14 <nickie12> I'm not born to code in JavaScript...
19:03:05 <GregorR-W> lament's opinion of PHP is fairly typical for this channel. I don't share it.
19:03:26 <GregorR-W> Actually, to get lament's opinion on any language, use this algorithm:
19:03:43 <GregorR-W> if (language == "Python") { lament.likes[language] = true; } else { lament.likes[language] = false; }
19:03:56 <ihope> lamentLikes "Python" = True
19:04:00 <ihope> lamentLikes _ = False
19:04:29 <lament> GregorR-W: that's clearly not true.
19:04:45 <GreyKnight> lament.likes[language] = (language=="Python");
19:05:28 <ihope> lamentLikes x = x == "Python"
19:05:43 <ihope> All languages look exactly the same with this stuff.
19:05:59 <ihope> def lamentLikes(x):
19:06:11 <ihope> return x == "Python"
19:06:14 <ihope> Or something like that.
19:06:21 <GregorR-W> OK, in case you guys were wondering, the joke is long-dead.
19:06:45 <lament> likes(lament,python) = True
19:07:48 <ihope> likes(lament,python)
19:08:15 <fizzie> "likes(lament,python)." would be the Prolog way.
19:08:26 <nickie12> <?php (\n) require("mysql.php"); (\n) class likes { (\n) function doeshelikeit($who, $language) { (\n) $query = mysql_query("SELECT * FROM likes WHERE who = $who' } (\n) } $ll = new likes; (\n) echo $ll->doeshelikeit("lament", "phyton")."<br>".$ll->doeshelikeit("lament", "php"); ?>
19:08:27 <ihope> Yeah, that's what I meant.
19:08:50 <lament> clearly that's the best entry so far.
19:10:19 <nickie12> <?php (\n) require("mysql.php"); (\n) class likes { (\n) function doeshelikeit($who, $language) { (\n) $query = mysql_query("SELECT * FROM likes WHERE who = '$who' AND language = '$language'; if(mysql_num_rows($query) = intval("0")) return true; (\n) else return false; (\n) } (\n) } $ll = new likes; (\n) echo $ll->doeshelikeit("lament", "phyton")."<br>".$ll->doeshelikeit("lament", "php"); ?>
19:10:36 <lament> amazing. Now i see the light.
19:11:00 <ihope> lamentLikes x = length x == 6 && head x == 'P' && head (tail x) == 'y' && head (tail (tail x)) == 't' && head (tail (tail (tail x))) = 'h' && head (tail (tail (tail (tail x)))) = 'o' && head (tail (tail (tail (tail (tail x))))) = 'n'
19:11:13 <ihope> Sorry. I can't write code that huge and ugly in Haskell.
19:15:19 <nickie12> That algorithm should replace the implementation of the "Hello world" application! :D
19:16:43 -!- Keina has joined.
19:19:35 -!- Keina has left (?).
19:20:32 <fizzie> sub lament_likes { my $x = shift; $x =~ s/(.)(.)/\2\1/g; return $x eq pack('H*', '795068746e6f'); }
19:20:38 <fizzie> Didn't see the Perl version anywhere.
19:23:15 -!- Keina has joined.
19:23:27 * pikhq curses very, very loudly. . .
19:26:21 <lament> fizzie: i mean, too short!
19:27:47 <nickie12> OK, I did an implementation of the "algorithm" in AppleScript :D
19:27:58 <pgimeno> if lament_likes returns False, does that mean that lament likes False?
19:28:34 <lament> wow, this applescript thing is braindamaged.
19:29:02 <nickie12> AppleScript is supposed to be an english-like scripting language...
19:29:09 <lament> although i guess not as evil as x=y
19:29:21 <lament> (which ought to be equality, not assignment)
19:29:38 <lament> x:=y is probably the best
19:30:06 <pikhq> set lang PHP;if {[string compare $lang Python]} {set ::lament::likes 1} else {set ::lament::likes 0}
19:30:08 <lament> actually the Smalltalk way is the best.
19:30:22 <lament> except that the <- is a single character
19:30:37 <nickie12> the shortest version in php :P
19:31:01 <pgimeno> I know of a language where assignment is <- (less-than, dash)
19:31:02 <nickie12> if(language == "Python") lament_likes = "yes";
19:31:16 <lament> pgimeno: but smalltalk is prettier.
19:31:18 <lindi-> procedure lament_likes(x) is begin return x = "Python"; end lament_likes;
19:31:25 <pikhq> The Tcl way is nice, since it conforms to everything else in the language (Yay, Polish notation!)
19:31:36 <lament> (however in absence of a special <- character, you have to use x _ y in smalltalk)
19:31:49 -!- ihope has quit (Read error: 110 (Connection timed out)).
19:32:09 -!- Keina has quit.
19:32:15 <pikhq> *sigh* Tcl would be evil if it used RPN.
19:32:29 <pgimeno> yuck, I prefer := much better than _
19:32:55 <pikhq> [bar foo set] would set $foo to bar if RPN was used. Glad that it's not. . .
19:33:48 <fizzie> The Multimedia ToolBook scripting language is much more dain-bramaged.
19:33:55 <pgimeno> (plus I'm slightly Pascal-oriented, Borland flavour)
19:35:52 <lament> : lament_likes s" python" compare ;
19:36:02 <lament> (i _think_ that's the correct forth)
19:36:21 <fizzie> put "yes" into text of field "lament"
19:39:27 -!- _jol_ has joined.
19:41:48 <fizzie> /lament_likes { (Python) eq } def
19:42:10 <lament> "n"-#v_"o"-#v_"h"-#v_"t"-#v_"y"-#v_"p"-#v_1>
19:42:22 <lament> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>0^
19:47:59 <fizzie> If you want a stand-alone program that reads from input, it's as easy as:
19:48:00 <fizzie> 0"nohtyP">:#v_025*".sey">:#,_@
19:49:28 <fizzie> Well, the program would say "no." to that, but Befunge it is.
19:59:30 <nickie12> can anyone paint it for piet? *laugh*
20:00:50 <GreyKnight> I haven't got any generic string-handling functions for Piet
20:01:01 <GreyKnight> All I have is one for printing strings
20:08:38 -!- GreyKnight has quit (Remote closed the connection).
20:13:52 -!- GreyKnight has joined.
20:21:41 -!- GregorR-W has quit ("Chatzilla 0.9.75 [Firefox 1.5.0.2/0000000000]").
20:22:02 -!- Sgeo has joined.
20:22:19 <nickie12> Please recognize that I say hello to Sgeo
20:46:52 -!- kipple_ has joined.
20:56:09 -!- RodgerTheAfk has changed nick to RodgerTheGreat.
20:56:59 * GreyKnight doubts anyone recognizes that language
21:00:07 -!- CakeProphet has joined.
21:08:07 -!- _jol_ has quit ("leaving").
21:13:00 -!- GregorR-W has joined.
21:27:23 -!- tgwizard has quit (Remote closed the connection).
21:54:17 * CakeProphet figures out how to create a Turing Complete language with only one variable.
21:54:35 <CakeProphet> I mean... the language itself has access to only one variable.
21:59:44 <lament> some turing-complete languages have no variables.
22:11:11 -!- nickie12 has quit.
22:11:23 <GreyKnight> I managed to create a segfault earlier... sadly it was in a process EgoBot was piping in from :-(
22:11:56 <lament> who is this nickie12 character
22:17:33 <CakeProphet> Apparently he doesn't know what a cat program does. :)
22:29:14 * GreyKnight wonders what language he was trying to put through the cat anyway
22:30:16 <GregorR-W> Really, it desperately needs a ; :-P
22:43:58 -!- pgimeno has quit (Read error: 104 (Connection reset by peer)).
22:44:29 -!- pgimeno has joined.
23:10:22 -!- wooby has joined.
23:52:14 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
23:56:33 -!- kipple_ has quit (Read error: 110 (Connection timed out)).