00:00:32 <CakeProphet> Freezing up your interpreter by making it do a lot of shit over and over.
00:01:22 <CakeProphet> ihope, So... how would you recommend doing 30000 0's without blowing something up?
00:03:44 <pikhq> Okay. . . I've got myself a Brainfuck frontend to the "interfuck" language.
00:05:42 <ihope> CakeProphet: not allocating them all at once?
00:06:28 <ihope> You could use generators.
00:06:41 * CakeProphet figures out how to use these mythical generators.
00:07:09 <ihope> Generators can do ANYTHING!
00:08:29 <CakeProphet> Python's documentation on generators confuses me..
00:25:14 * pikhq works on a Doublefuck frontend. . .
00:37:58 <pikhq> I remeber that there was an isomorphism between Doublefuck and Brainfuck, but I can't remember what it is.l
00:50:43 <pikhq> Perhaps I'd be best off defining the intermediate language in such a way that multiple arrays can easily be added.
00:59:40 <pikhq> ihope: Ideas for compiling Doublefuck into the intermediate language?
01:01:22 <lament> CakeProphet: nested arrays work just fine.
01:02:03 * pikhq should probably lay off of this for a bit
01:03:04 -!- ihope has quit (sterling.freenode.net irc.freenode.net).
01:03:05 -!- sp3tt has quit (sterling.freenode.net irc.freenode.net).
01:03:05 -!- mtve has quit (sterling.freenode.net irc.freenode.net).
01:03:05 -!- SimonRC has quit (sterling.freenode.net irc.freenode.net).
01:03:05 -!- tokigun has quit (sterling.freenode.net irc.freenode.net).
01:03:06 -!- lindi- has quit (sterling.freenode.net irc.freenode.net).
01:03:06 -!- Anders has quit (sterling.freenode.net irc.freenode.net).
01:03:07 -!- EgoBot has quit (sterling.freenode.net irc.freenode.net).
01:03:07 -!- lament has quit (sterling.freenode.net irc.freenode.net).
01:03:09 -!- sekhmet has quit (sterling.freenode.net irc.freenode.net).
01:03:09 -!- CXI has quit (sterling.freenode.net irc.freenode.net).
01:03:10 -!- ivan` has quit (sterling.freenode.net irc.freenode.net).
01:03:10 -!- puzzlet has quit (sterling.freenode.net irc.freenode.net).
01:03:10 -!- Sgeo has quit (sterling.freenode.net irc.freenode.net).
01:03:10 -!- RodgerTheGreat has quit (sterling.freenode.net irc.freenode.net).
01:03:10 -!- jix has quit (sterling.freenode.net irc.freenode.net).
01:03:10 -!- pgimeno has quit (sterling.freenode.net irc.freenode.net).
01:03:10 -!- bsmntbombdood has quit (sterling.freenode.net irc.freenode.net).
01:03:12 -!- Razor-X has quit (sterling.freenode.net irc.freenode.net).
01:03:12 -!- GregorR has quit (sterling.freenode.net irc.freenode.net).
01:03:12 -!- lindi- has joined.
01:03:24 -!- Anders has joined.
01:03:55 -!- EgoBot has joined.
01:04:49 -!- jix has joined.
01:07:43 -!- pgimeno has joined.
01:07:56 -!- bsmntbombdood has joined.
01:08:05 -!- lament has joined.
01:08:08 -!- GregorR has joined.
01:08:12 -!- Sgeo has joined.
01:10:43 -!- RodgerTheGreat has joined.
01:12:55 -!- Razor-X has joined.
01:12:57 -!- mtve has joined.
01:13:05 -!- tokigun has joined.
01:13:06 -!- CXI has joined.
01:13:21 -!- sp3tt has joined.
01:13:30 -!- ivan` has joined.
01:19:55 <pikhq> Shouldn't be hard to get this thing to target Brainfuck. . .
01:20:28 <pikhq> Unless I want to add some more features to my intermediate language, enabling it to handle stuff like pbrain and Brainfork, that is. . .
01:25:53 -!- sekhmet has joined.
01:27:27 -!- puzzlet has joined.
01:30:12 -!- SimonRC has joined.
02:14:17 <Razor-X> Let's see if I can build my parser in 10 minutes or less.
02:18:54 <GregorR> IF YOU SAY NO YOU'RE SLOOOOOOOOOOW
02:19:13 <pikhq> GregorR: What do you think of my insane idea?
02:19:55 <GregorR> I haven't been reading the log.
02:21:58 <Razor-X> Gah. People keep interrupting me!
02:22:07 <pikhq> Razor-X: Don't watch IRC.
02:22:21 <Razor-X> pikhq: No I mean, my parents actually have things for me to do :P.
02:23:38 <Razor-X> Well, the parser 'aint gettin' done. Seems ah gots me an error here.
02:38:10 <GregorR> I was wondering why you were putting "aint gettin" in qutoes ...
02:41:42 <Razor-X> What does the ain't contraction expand to?
03:03:33 -!- jix__ has joined.
03:12:05 -!- jix has quit (Read error: 60 (Operation timed out)).
03:43:05 -!- Arrogant has joined.
03:47:30 -!- jix__ has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
03:56:47 -!- Arrogant has quit ("Leaving").
04:04:42 -!- CXII has joined.
04:12:14 -!- bsmntbombdood has quit.
04:13:14 -!- CakeProphet has quit (No route to host).
04:14:10 -!- sexteddy has joined.
04:14:30 -!- sexteddy has left (?).
04:14:57 -!- bsmntbombdood has joined.
04:15:38 -!- sexteddy has joined.
04:15:44 -!- sexteddy has left (?).
04:22:30 -!- CXI has quit (Connection timed out).
04:52:10 -!- Arrogant has joined.
05:27:21 -!- Sgeo has quit ("Ex-Chat").
07:04:18 <Razor-X> Wow. This interpreter is turning out a lot longer than I expected it to be.
07:30:11 <GregorR> Wow, there was very briefly a sexteddy in here X-D
07:31:07 <GregorR> Oh, and the "ain't" contraction expands to "is not" for no particular reason.
07:31:49 <Razor-X> That sounds just like English.
07:32:04 <Razor-X> Why did the name change from Inglish to English? There's no particular reason.
07:32:11 <ivan`> ain't can turn into anything you want it to
07:32:24 <Razor-X> Why is it Britain and not Briton even though the latter is more phonetically correct? There's no particular reason.
07:33:41 <GregorR> From now on, I'm using "ai" as an alternative to "is". Pronounced as sort of a nasal "aaah" sound :-P
07:34:40 <Razor-X> That's the English spirit!
07:35:17 <GregorR> Contraction of "it ai" :-P
07:36:21 <Razor-X> Now time to graft attitudnals onto the language.
07:36:32 <Razor-X> How 'bout it. Why don't we add in an attitudnals library onto English?
07:36:54 <fizzie> Wouldn't that be "It'i good."?
07:36:54 <GregorR> import("additudnals.lang");
07:37:04 <fizzie> Since it's normally "it's", not "it'i".
07:37:18 <Razor-X> fizzie: It's that way for no particular reason.
07:37:25 <Razor-X> Haven't you caught onto English logic just yet?
07:38:15 <Razor-X> I suddenly lost motivation for my BF interpreter even though I'm only a few lines away from the finish.
07:38:38 <Razor-X> Now it'll probably stay unfinished forever as I go onto the real project I had meant to start, but used the BF interpreter for practice.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:06:09 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
08:39:34 -!- puzzlet has joined.
08:54:11 -!- CXII has quit (Read error: 110 (Connection timed out)).
09:45:46 -!- Arrogant has quit ("Leaving").
12:18:31 -!- GreyKnight has joined.
13:04:59 <pikhq> GregorR: You do know that "ain't" is a pointless slang usage that makes you sound somewhat uneducated, right?
13:33:33 -!- GreyKnight_ has joined.
13:34:09 -!- GreyKnight has quit (Nick collision from services.).
13:34:11 -!- GreyKnight_ has changed nick to GreyKnight.
13:36:36 -!- jix has joined.
13:40:02 -!- CXI has joined.
13:54:05 -!- ivan` has quit (" HydraIRC -> http://www.hydrairc.com <- IRC with a difference").
13:56:35 -!- GreyKnight has quit (Read error: 110 (Connection timed out)).
13:59:36 -!- GreyKnight_ has joined.
13:59:37 -!- GreyKnight_ has changed nick to GreyKnight.
15:24:11 -!- CXI has quit ("If you're reading this, it's probably xchat's fault.").
15:46:00 -!- tgwizard has joined.
15:54:07 -!- Razor-X has quit ("ERC Version 5.1 (CVS) $Revision: 1.796 $ (IRC client for Emacs)").
15:54:36 -!- Razor-X has joined.
16:10:25 -!- GregorR-W has joined.
16:12:19 <GregorR> pikhq: Yes, but that doesn't mean that there isn't a correct usage.
16:12:40 <GregorR> And, for that matter, "y'all" has the same connotation but is far more valuable of a linguistic construct.
16:28:23 -!- CXI has joined.
17:09:57 -!- kipple_ has joined.
17:33:55 <pikhq> GregorR: But the distinction between "thou" and "you" is proper English (if a bit archaic). ;)
17:42:09 <GregorR-W> "Proper English" is a relative term - English has no overseer.
17:45:03 <pikhq> It could be worse. "Proper English" could be defined by, say, the 1337-5p34k3|2'5 standards body. :p
17:45:48 * pikhq much prefers a mild level of anarchy over. . . That. *shudder*
17:46:28 <GreyKnight> http://www.aeforge.com/aeforum/showpost.php?p=46488
17:48:11 -!- _jol_ has joined.
17:58:51 <GregorR-W> I didn't read that, but saw a bit of it.
17:59:25 <GreyKnight> A terrifying dystopian vision of the future
18:18:45 <GreyKnight> idea: a language based on the idea of thumb-twiddling
18:21:03 <GregorR-W> Thumb twiddling can be done in either direction, therefore it has at least one bit, therefore NetBSD should boot on it.
18:24:21 <GreyKnight> You have two thumbs, which can be either stationary, twiddling clockwise, or twiddling anticlockwise
18:26:07 -!- pgimeno has quit (Read error: 54 (Connection reset by peer)).
18:26:20 <GregorR-W> It's difficult/impossible to twiddle your thumbs in opposite directions in proper "twiddling position"
18:29:57 -!- Blahbot has joined.
18:29:57 -!- Blahbot has quit (Client Quit).
18:30:10 <Razor-X> Hey-o and goodbye Blahbot.
18:31:09 -!- _jol_ has quit ("leaving").
18:41:46 -!- pgimeno has joined.
18:54:01 -!- lament_ has joined.
18:58:12 -!- lament has quit (Nick collision from services.).
18:59:17 -!- lament_ has changed nick to lament.
19:02:44 * pikhq really needs to extend his "interfuck" thing. . .
19:09:50 <pikhq> It's the intermediate language for my Brainfuck compiler.
19:10:22 <pikhq> That's what I'm calling it.
19:29:15 * pikhq is going to plan out additional features and such for this. . .
19:32:31 <Razor-X> My almost-complete interpreter just used a parser to parse BF into Scheme code, and then executed the Scheme code.
19:32:32 <GregorR-W> DAMN YOU TO THE FIREY PITS OF FALSE ADVERTIZING
19:32:49 <pikhq> Razor-X: I'm going all-out on this. :)
19:32:54 <Razor-X> Gregor, it's ``ADVERTISING''.
19:33:49 <GregorR-W> Now I have to try to bring a pair of shoes back after about five weeks again X_X
19:33:56 <GregorR-W> Five weeks of not wearing it, mind you.
19:34:57 <Razor-X> I'm writing an IRC bot instead. The old Haskell one needed some tune-ups.
19:35:44 <pikhq> Hell, if I do this well enough, I might be able to get some support for things like 1337. . .
19:36:08 <Razor-X> At this point, it negotiates the connection and promptly quits.
19:36:58 <Razor-X> Well, school starts tomorrow, so today I won't have much time to code the bot, so I probably won't get to the code to keep it from timing out until later tonight.
19:37:44 * pikhq ends up having a lot of free time during school. . .
19:37:47 <Razor-X> But I'm finding that I actually coded the internals of my Haskell bot pretty well.
19:37:58 <pikhq> Hell; I'm in IRC during class right now.
19:38:08 <Razor-X> I don't have any computer classes this year.
19:38:15 <Razor-X> I don't have time in my schedule -- at all.
19:38:32 <lament> I don't have time. I'm light-like.
19:38:33 <Razor-X> 4 AP classes and one normal class. I don't even have the Arts and P.E. classes I need to graduate done yet.
19:38:40 * pikhq is leaving for lunch in $very_soon
19:38:47 <lament> Razor-X: you're in *high school*?
19:38:55 <lament> Razor-X: and you think you *don't have time*?
19:39:06 <Razor-X> I don't have time, *in school*.
20:56:29 -!- CakeProphet has joined.
20:57:25 * GreyKnight asks CakeProphet if there's any cake coming his way in the near future.
21:24:41 -!- lindi- has quit (Read error: 60 (Operation timed out)).
21:26:30 -!- anonfunc has joined.
22:00:27 <CakeProphet> Hmmm... I got to thinking... that = and != are really just the same thing.
22:01:02 <GregorR-W> Yeah, one of them being not-equality ...
22:01:08 <CakeProphet> So for some hypothetical language... I think it would be neato to have multiple equality types... not sure why that'd be useful... but it sounds fun.
22:04:51 <CakeProphet> I'm going really bizzare with this one... unusual control flow statements, an entirely different system of mathematical operations (different than the usual + - / * )
22:06:42 <GreyKnight> Anyway, from a mathematician's point of view, you could have something along those lines for the operations
22:07:01 <GreyKnight> It'd require some checking to make sure you can still "do" everything with them, though
22:07:37 <GreyKnight> I'm not sure about the otherequalities... some sort of abstract relation
22:07:39 -!- CakeProphet has quit (Nick collision from services.).
22:07:55 -!- CakeProphet has joined.
22:08:25 <CakeProphet> Hmm... anyone get those last two things I said?
22:08:35 <GreyKnight> Last I heard from you was "Dunno intercal."
22:08:51 -!- lindi- has joined.
22:08:54 <GreyKnight> Then I waffled about some abstract mathematical ideas for you
22:09:28 <CakeProphet> I was thinking of a "sarcasm" statement... which checks to see if something is undefined... and returns True (or some other type of bool)
22:10:09 <GreyKnight> http://en.wikipedia.org/wiki/Relation_%28mathematics%29
22:10:17 <GreyKnight> http://en.wikipedia.org/wiki/Field_%28mathematics%29
22:10:50 <GreyKnight> These two cover abstract relations (==, !=, <, >, ...) and operations (+, -, /, *, ...), which might be relevant
22:13:49 * CakeProphet wants to make multiple equality/assignment types... and then a "not equal" for each type.. and then in addition the ability to check the equality of different assignments using the different equality types.
22:13:56 <CakeProphet> Eh... complicated... I'm not even sure myself how it works.
22:14:26 <GreyKnight> well, you could certainly pull it off...
22:14:52 <GreyKnight> In fact, there are essentially an infinite number of ways to do it; hard part is picking one
22:15:38 <GreyKnight> I suppose the more complex the better, here :-)
22:15:56 <GreyKnight> You should represent numbers in base-pi notation while you're at it :-D
22:17:06 <GreyKnight> But this would make your language the first one capable of representing pi exactly
22:18:25 <GreyKnight> Something that redefines +, -, etc to be something not-too-difficult but still *different*
22:18:27 <CakeProphet> I've sort of got too many ideas jumbling around to put them all into one thing.
22:19:49 <CakeProphet> Hmmm... and then one equality type could check for equality of equality types between two values. :D
22:19:54 <GreyKnight> You'll want your new +,* to still be able to make a field out of the set of real numbers, if you know what that means
22:20:06 <GreyKnight> I can generate some that do that for you
22:23:05 <CakeProphet> Like positive and negative... but like five of them :D
22:23:45 <CakeProphet> And then different operations that do different things to different kinds of numbers.
22:24:36 <CakeProphet> In typical math, + adds positive values, and - adds negative... so what happens when you stretch it out into 5 or 6 dimensions instead of 2?
22:24:37 <GreyKnight> You could use complex numbers, disguised as something else?
22:24:53 <GreyKnight> Or go to quaternions, with all sorts of fun
22:25:22 -!- anonfunc_ has joined.
22:27:07 <jix> with complex numbers you'd get normal, negated, conjugated, and negated+conjugated
22:27:20 -!- CakeProphet has quit (Read error: 113 (No route to host)).
22:27:58 <lament> wtf is he talking about.
22:28:08 -!- CakeProphet has joined.
22:28:17 <lament> CakeProphet: what 2 dimensions?
22:28:33 <GreyKnight> Hardest part with using complex numbers is disguising them so the user gets a brain meltdown :-)
22:28:37 <CakeProphet> Argh... what did you say after quaterions?
22:28:47 <jix> CakeProphet: nothing
22:28:48 <GreyKnight> <jix> with complex numbers you'd get normal, negated, conjugated, and negated+conjugated
22:29:02 -!- ihope has joined.
22:29:02 <jix> ah well if it was a non singular you GreyKnight is right
22:29:03 <CakeProphet> positive and negative... two dimensions of polarity.
22:29:10 <jix> CakeProphet: one dimension
22:29:33 <jix> because it's either positive or negative.... it can't be a combination
22:29:44 <ihope> Direction + opposite direction = dimension.
22:29:56 <jix> with complex numbers you'd get two dimensions... one for the real part one for the imaginary one
22:29:59 <GreyKnight> the real numbers exists in one dimension (the real line), the complex exist in two (the complex plane), and the quaternions in 4 (Happy Fun Ball)
22:30:06 * CakeProphet isn't sure he wants combinations of polarity ... but it sounds like fun. ^_^
22:30:15 <GreyKnight> IIRC you can't reasonably extend the numbers to 3 dimensions
22:30:21 <lament> you people are all on crack.
22:30:25 <lament> GreyKnight: it's called 3-vectors.
22:30:38 * ihope attempts to reasonable extend the numbers to 3 dimensions
22:30:54 <jix> lament: and it's still a uhm how ist it called in english...
22:31:13 <GreyKnight> An extension of the complex numbers to three dimensions, such that all the mathematical operations are closed over the set
22:31:21 <CakeProphet> I was thinking of having 7 types of polarity... with each set of two being opposites, and then having a single one on its own.
22:31:28 <lament> GreyKnight: why "of the complex numbers"?
22:31:51 <lament> GreyKnight: all the standard mathematical operations on 3-vectors are closed over 3-vectors. (except for cross product.. duh)
22:32:02 <ihope> i^2 = -1, j^2 = -i, 1^2 = j... j = 1, 1^2 = -i, 1^2 = -1?
22:32:18 <CakeProphet> positive-to-negative, blah-to-meh, pepsi-to-coke, and then a single measure called Jesus or something.
22:32:19 <jix> lament: are 3-vectors still a field?
22:32:38 <jix> because real, complex and quaternions are
22:32:51 <ihope> CakeProphet: so there's no negative Jesus?
22:32:54 <GreyKnight> vectors are a sideshow - complex and hypercomplex numbers are where the real mathematical action is
22:33:05 <CakeProphet> Don't ask me how... I'm still figuring that out.
22:33:46 <jix> do you know that the positive reals are a field to?
22:34:21 <GreyKnight> Oh? What's the additive inverse of 3 in the positive reals?
22:34:23 <ihope> So subtraction and opposites aren't field operations?
22:34:48 <GreyKnight> I guess you could redefine +, but you didn't mention that
22:34:54 <CakeProphet> So... a number might look like.... hmmm.... +%^5? Or would it look like +5%6^4
22:34:59 <jix> GreyKnight: well the definition of field doesn't say that those uhm THINGS (don't know how it's called) has to be + and *
22:36:02 <jix> well i'm no expert for this... ai'm just in grade 11
22:36:43 <jix> uhm.. 15-17 i think
22:37:11 <GreyKnight> well, you're probably ahead of your peers then :-P
22:37:14 <jix> CakeProphet: 17 in the 10th?
22:37:33 <jix> ah wait yes...
22:37:44 <jix> argh... totally forgot my whole class skipped a year
22:38:11 <jix> well not really skipped but squeezed 5 into 4 years
22:38:37 * ihope feels a sudden need to eat something resembling toast
22:39:06 <jix> replace toast with cornflakes
22:44:11 <GreyKnight> I feel old when all the other people on IRC are teenagers :'(
22:44:43 <ihope> And how old are we?
22:45:36 <lament> somewhere between 21 and 28?
22:47:19 <GreyKnight> You're not old! You're barely middle-aged!
22:47:37 <lament> does that mean i'm gonna die at 44?
22:49:54 <kipple_> hmm. appears I am the oldest so far...
22:52:12 <GreyKnight> We need a language that's designed to be implementable with lego bricks.
22:52:39 -!- anonfunc has quit (Connection timed out).
22:53:17 -!- anonfunc_ has changed nick to anonfunc.
22:53:29 <GreyKnight> I love the idea of it, I just can't think how to pull it off :-(
22:53:49 <ihope> Red brick means output, blue brick means subtract, yellow brick means input, and green brick means jump.
22:53:51 <kipple_> If you use the RCX brick it becomes trivial...
22:54:38 <ihope> Wait... you mean the programs would consist of Lego bricks, or the machine running them would?
22:55:29 <GreyKnight> The former, although the latter would be an obvious next step
22:55:39 -!- CakeProphet has quit (Connection timed out).
22:56:08 <GreyKnight> Obviously something involving sequences of colours is trivial, like ihope's suggestion
22:56:48 <GreyKnight> But I'm trying to think of something that can take advantage of lego's three-dimensionality
22:59:51 <ihope> I never said that this would *only* be sequences of colors, though :-)
23:00:10 <GreyKnight> I'm thinking a 2-D plane of stacks of blocks
23:00:39 <GreyKnight> With a/some instruction pointer(s) that roam the field and ascend the stacks to perform actions
23:01:09 <GreyKnight> stacks can also be viewed as encoding numbers, and are addressable as storage locations
23:01:23 <ihope> Maybe we could forget the jump instruction and use the shapes of the stacks to jump.
23:02:06 <ihope> Like... a stack is like a mini-program, and it would be executed from top to bottom. Once the bottom is reached, something's done.
23:02:56 <GreyKnight> How about if each IP uses the next two numbers on its personal stack to determine a relative position at which to find the next stack to execute?
23:03:01 <ihope> Or maybe the main execution stuff would simply choose a position and run down through it, changing the bricks as it goes...
23:03:17 <GreyKnight> for bonus points, have their personal stacks existing as actual stacks of blocks on the field :-)
23:05:14 <ihope> Nah, the blocks themselves would be used as storage.
23:05:29 <GreyKnight> I say use them as storage *and* code >:-)
23:06:22 -!- CakeProphet has joined.
23:06:58 <GreyKnight> For further bonus points, it takes the IPs time to reach their next stack while jumping?
23:07:05 <Razor-X> So a code pointer traverses a set of code blocks and an IP cycles through storage?
23:07:14 <CakeProphet> So.. uh... what insane mathematical shit did I miss?
23:07:37 <CakeProphet> So I think I'm going to hide from all the crazy theoretical math shit.... and go for a more... uh... non-numbers design.
23:08:06 <CakeProphet> As fun as inventing an entirely new system of mathematics is...
23:08:45 <Razor-X> Why were you using complex numbers?
23:08:51 * Razor-X does not have the time to fully go over the logs.
23:09:20 <CakeProphet> I was just using a notation type for representing multi-dimensional polarity... paired with something I'm going to call "multi-dimensional equality"
23:09:25 <GreyKnight> He was talking about generally "extending" number systems, so naturally we got onto that subject
23:09:50 <CakeProphet> positive, negative, cow, omega, chromefuck, lala, Jesus...
23:09:55 <Razor-X> Multi-dimensional equality?
23:10:09 <Razor-X> Oh, you mean attaching alternate dimensions to a quantity.
23:10:21 <CakeProphet> I got the idea from thinking about = and !=... which are essentially two "types" of equality... they just happen to be the inverse of each other.
23:10:28 <Razor-X> I had the idea when I was younger of representing numbers in a vector of n-elements, and I had a rudimentary set of equivalence predicates done.
23:11:09 <Razor-X> You should look at the postulates of Zermelo-Franklin set theory and the Fundamental Arithmetic Law for some ideas on the stuff.
23:11:11 <CakeProphet> b != 3.... it's essentially saying that it equals three, but only in this type of equality.
23:11:28 <GreyKnight> There is no escape from the abstract algebra!
23:11:32 <CakeProphet> b = 3 is false... thus b != three... which brings us back to our original statement.
23:12:13 <lament> CakeProphet: well, in Math, there's a set of rules an equivalence operation has to conform to.
23:12:23 <lament> CakeProphet: = happens to conform to them, and != does not.
23:12:29 <GreyKnight> http://en.wikipedia.org/wiki/Binary_relation
23:12:31 <CakeProphet> So you could have multi-dimensional equality.... $= %= $= #=
23:13:26 <lament> more appropriately, http://en.wikipedia.org/wiki/Equivalence_relation
23:13:57 <lament> != breaks reflexivity and transitivity.
23:14:30 <GreyKnight> lament: well, the full abstract treatment might be a bit *too* abstract for a non-specialist :-)
23:14:41 <GreyKnight> and I gather he's only talking about binary relations
23:14:56 <ihope> Reflexivity, symmetry, transivity... anythingelse?
23:15:21 <lament> GreyKnight: equivalence relations are binary relations
23:16:00 <GreyKnight> oh wait, I thought you'd posted http://en.wikipedia.org/wiki/Relation_%28mathematics%29
23:16:23 <lament> CakeProphet: a "real" equivalence relation other than == is for example (a mod 2 == b mod 2)
23:17:03 <lament> CakeProphet: what is your subject?
23:17:28 <jix> i like math
23:17:32 <jix> i like music too
23:17:38 <jix> uh yeah lego rules!
23:18:30 <jix> with math and lego i even won competitions...
23:18:35 <jix> with music i didn't...
23:18:46 <jix> but i did competitions in all those things
23:19:02 <CakeProphet> so.. er... standard mathematics aside.. I think having types of equivalence is do-able in a language.
23:23:28 <lament> scheme has eq?, eqv?, equal? and =
23:24:03 <GreyKnight> which I guess are isomorphic to the scheme ones :-)
23:24:38 <GreyKnight> I don't think that's quite what CakeProphet has in mind, though, he's just not got the words to express it any better...
23:25:07 * CakeProphet really only halfway knows what he's talking about.
23:25:40 <GreyKnight> If you can construct an example of one of your new relations in action we might get a better idea
23:32:56 <CakeProphet> This might be a little bit jumpy... since I don't have the idea fully conceptualized... but let's say we invent four operations.... cow, scree, flub, and kuma each a type of equality, with relational properties to other types of equality... anything that cow-equals 5 will not scree-equal 5.... but might flub-equal five.... each type of relationship has relationships amongst...
23:32:58 <CakeProphet> ...themselves.... maybe everything that cow-equals will also flub-equal.... but anything that flub-equals will not nessicarily cow-equal... and then something that scree-equals may cow-equal any value -except- the value that scree-equals... so each represent equality, but when compared with conditional logic the different types of equality will behave differently to each other.
23:33:18 <CakeProphet> In fact... the language itself might be able to invent new types of equality that relate to the pre-existing types...
23:33:35 <CakeProphet> Just random ideas... nothing that would be useful or make much sense at all.
23:34:40 <GreyKnight> I think that could be turned into a Venn diagram?
23:35:17 <pikhq> Or maybe he'll end up with "not equal, equal, sort-of equal, halluciongenically equal. . ." :p
23:35:20 <CakeProphet> you could even have it so that if something kuma-equals 4... then it will cow-equal any number.
23:36:07 <GreyKnight> I think this will be either (a) useless, or (b) the next INTERCAL
23:36:29 <ihope> "anything that cow-equals 5 will not scree-equal 5"
23:36:40 <ihope> 5 will have to both cow-equal 5 and scree-equal 5.
23:36:56 <GreyKnight> Being useless is pretty much their entire reason for being
23:37:09 <pikhq> Being useless is what they're used for!
23:37:35 <ihope> CakeProphet: well, if you want them to actually be equality operations.
23:38:49 <ihope> Any equality operation has to have 5 and 5 be equal.
23:38:55 <GreyKnight> Or is "a @= b" more like asserting that (a,b) belongs to a certain set T_@ ?
23:39:12 <CakeProphet> ihope, Within the scope of one equality type... 5 will equal 5
23:39:16 <GreyKnight> that made pretty much not any improved amount of sense...
23:40:37 -!- tgwizard has quit (Remote closed the connection).
23:42:46 <CakeProphet> if x (= 305823095823985902834908: print False else: True
23:43:24 <GreyKnight> Okay, as I see it you have some, apparently pretty arbitrary sets of pairs of numbers
23:43:53 <GreyKnight> each relation "a $= b" means that the pair (a,b) belongs to the particular set T_$
23:44:11 <GreyKnight> So T_= contains (0,0), (1,1), (2,2), ...
23:44:46 <GreyKnight> T_! (for !=) is just the inverse of T_=, contains everything that's not in it
23:45:13 <GreyKnight> And the other T_$, T_#, T_lolwhut contain various semi-random collections of pairs which may or may not intersect
23:46:09 <GreyKnight> presumably there'd be some actual function for determining which pairs belong to the set
23:46:23 <GreyKnight> keeping actual lists of numbers to compare against would be muy wasteful
23:46:44 <CakeProphet> Whether or not something that $='s 5 will also %= 2 depends on the relationship between the $= and %= operators.
23:48:32 <GreyKnight> You define these extra relations purely in terms of the relationships between them, then have the computer use that information to calculate what the relations actually are
23:48:33 <CakeProphet> Just like if x = 5... then x != 5 will return False
23:49:45 -!- kipple_ has quit (Read error: 110 (Connection timed out)).
23:49:54 <GreyKnight> You couldn't rely on it having a unique solution to any arbitrary set of relationships between them, though
23:50:02 <CakeProphet> In my hypothetical language... != would be a type of equality that directly relates to =... so that it something that ='s 5 will != everything except five.
23:50:43 <GreyKnight> DEFINE NEW RELATION != WHERE a==b IMPLIES NOT a!=b
23:50:59 -!- bsmntbombdood_ has joined.
23:51:17 <GreyKnight> I just picked a random syntax for ease of expression
23:51:22 <CakeProphet> It'd be really easy to use an OO design scheme for definiing the relationships... but I want to make it confusing ^_^
23:51:25 -!- bsmntbombdood has quit (Nick collision from services.).
23:51:41 -!- bsmntbombdood_ has changed nick to bsmntbombdood.
23:52:03 <CakeProphet> It's already confusing enough as is... and I have no clue how this would tie in with strings :D
23:52:18 <GreyKnight> in order to apply it to actual numbers, you will have to touch base with the regular mathematical relations at some point
23:52:50 <GreyKnight> DEFINE NEW RELATION $= WHERE a$=b IMPLIES (a+5)==(b*6)
23:53:25 <GreyKnight> for at least *one* of the new operators
23:53:47 <GreyKnight> and the others could maybe then just be defined in terms of it and/or each other
23:54:22 <GreyKnight> as long as there's a chain of implications leading back to the regular relations, the computer should be able to trawl through it to apply the relations to actual numbers
23:54:39 <CakeProphet> That wouldn't work for variable assignment.
23:54:55 <CakeProphet> It would only work for conditional testing.
23:55:46 <CakeProphet> The way I see it... the equality types can also be used as assignment.
23:55:49 <GreyKnight> you can view the assignment "x $= 3" as finding an x such that that expression is true
23:57:06 <GreyKnight> (in that example definition of $= I gave, it's the case that "25 $= 5")
23:57:40 <CakeProphet> I wish I was extremly good at fleshing out parsers... so I could just make random languages?
23:58:01 <CakeProphet> I like the idea of a language that assigns based on not-equals instead of assigning based on =
23:58:17 <GreyKnight> well, you'd have a bit of a problem there...
23:58:35 <GreyKnight> Say you did "ASSIGN x != 5" (is this the sort of thing you mean?"
23:59:02 <GreyKnight> then the interpreter/compiler will have to pick one of the infinite amount of numbers which aren't equal to 5...
23:59:16 <GreyKnight> unless you're suggesting it set x to the entire set of non-5 numbers?
23:59:41 <ihope> Well, there are finite things.
23:59:45 <GreyKnight> so, what value does x receive in that example?
23:59:57 <ihope> That would set x to false.