00:00:21 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
00:00:23 <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
00:00:24 <GregorR> YhwOS, the OS for the True Believer.
00:00:41 -!- ooooo has left (?).
00:01:31 <calamari> http://kidsquid.com/images/irdr-01Jan2007.jpg
00:02:08 <calamari> (that's a pic of my ipod screen)
00:02:38 <calamari> not too good at macro photography yet
00:03:54 <calamari> next step is to be able to click links :)
00:09:50 <CakeProphet> hmmm... stack-based languages are pretty easy to inspect...
00:10:05 <CakeProphet> since you can put in a debugging command to have the program print out its stack.
00:13:14 <CakeProphet> but you could achieve the same effect in other languages.
00:13:36 <pikhq> With some difficulty.
00:13:38 <CakeProphet> Like in PYthon you can print globals() and locals() and get the program state from your perspective.
00:13:49 <pikhq> Brainfuck's equivalent is printing out the entire memory.
00:14:07 <CakeProphet> Or dir(object) you peek into the scope of an object.
00:20:50 <pikhq> Anyone seen RazorX lately?
00:27:43 <oerjan> certainly, just not under that name.
00:30:17 <pikhq> Sukoshi: Anata ga iru!
00:52:36 -!- Asztal has joined.
00:56:56 -!- clog has joined.
00:56:56 -!- clog has joined.
00:57:27 -!- meatmanek has joined.
01:14:09 -!- fizzie has joined.
01:17:43 <Sukoshi> bsmntbombdood: I'm Razor-X.
01:21:57 <Sukoshi> あら!忘れた!あけましておめでとうございます。新年で強く生きます!!!
01:24:02 <pikhq> What's 忘 and 強 mean?
01:24:11 <Sukoshi> Your Kanji's not very strong, is it? :P
01:24:47 <pikhq> Also, what's the reading for "new year" there?
01:25:04 <Sukoshi> Both are pretty easy Kanji, so :P
01:25:04 <pikhq> . . . I should've known that.
01:25:33 * pikhq wonders what tsuyoi means
01:26:18 <pikhq> (I can't be expected to know the kanji for words I don't know. . . As for wasureru. . . Yeah, I need to know that for class. My bad.)
01:26:56 <Sukoshi> Advantages of not taking a Japanese class.
01:27:38 * pikhq still doesn't have an IME set up. :/
01:28:54 <pikhq> (furigana, please)
01:29:01 <Sukoshi> へん、かわ --> Strange, exchange.
01:29:11 <Sukoshi> Yeah. It's a Kanji which makes no sense :P
01:29:20 <CakeProphet> http://deadbeefbabe.org/paste/3099 beautiful... my first esolang (that I built an interpreter for)
01:29:29 <Sukoshi> Look. Even the J2's in my school beat you!
01:29:56 <CakeProphet> Now I just need to add in maybe a few more commands (I kinda like it the way it is... with minimal commands though).. and maybe something weird like a preprocessor.
01:29:56 <pikhq> (to be fair, the first two years had the world's. Stupidest. Teacher.)
01:30:07 <pikhq> He waited until second year to teach *kana*.
01:30:15 <Sukoshi> .......................................................................................................
01:30:37 <Sukoshi> Almost every piece of literature I've come across, and my own experiences, scream that you should learn as little Romaji as humanly possible.
01:30:53 <pikhq> I self-taught kana first year.
01:30:57 <pikhq> Only student to do so.
01:31:26 <Sukoshi> Kana is easy to self learn though, heh.
01:32:51 <Sukoshi> 語 is also a Kanji with a lot of readings.
01:34:34 <pikhq> "Go" is the one that comes to mind.
01:35:20 <Sukoshi> Ok. Not as bad as I thought.
01:35:33 <pikhq> (if that's wrong, well, it looks kind of. . . tiny on my screen.)
01:46:07 <CakeProphet> hmmm... there's no conditional jumps in Stew though...
01:46:16 <CakeProphet> unless you can create one from the minimal tools given.
02:15:46 <oerjan> One thing I suspect is that the booleans are entirely useless for computation - you cannot do anything with them other than comparing, giving you just a new boolean.
02:17:36 <oerjan> However, it seems to me that numbers can be used to select an operator from a stack, which can then be run, giving you conditional execution.
02:21:11 <CakeProphet> the @ command with some comparison operations.
02:21:42 <CakeProphet> 0 would give the current queue... 1 would give the second Queue
02:22:52 * CakeProphet loves it when an unintentional feature arises.
02:23:22 <CakeProphet> I also need a string-to-int int-to-string builtin.
02:23:33 -!- Asztal has quit (Read error: 113 (No route to host)).
02:23:45 <CakeProphet> maybe just call it "flip"... strings becomes ints (if possible)... ints become strings.
02:24:00 -!- Asztal has joined.
02:25:26 <CakeProphet> division and mod could easily be used as conditionals.
02:27:06 <CakeProphet> well... divsion plus floor (Python divison will be "true" division by default in later releases... but you can go ahead and specify it now using the __future__ module)
02:28:33 <oerjan> it is also a well-known fact that 1-x and x*y with 0/1 gives you boolean not and and
02:30:26 <oerjan> you can get integer division by combining true division with mod
02:31:15 <oerjan> ah yes, you have all three.
02:31:34 <CakeProphet> I might get rid of the lolno function then
02:31:56 <oerjan> isn't that negation on numbers?
02:33:23 <CakeProphet> so boolean not would work... we just don't need it.
02:35:13 <CakeProphet> I don't want to fool with building a random number generator myself.
02:36:01 <oerjan> although that _is_ considered one of the canonical programs for a new esoteric language. :)
02:36:25 <CakeProphet> well... it's not a full blown random generator.
02:36:37 <CakeProphet> It just allows randit from 1 to a given int
02:37:08 <CakeProphet> and if the value on the queue isn't an integer... it does the from-zero-to-one-float-random-thing (forogot the name of it)
02:38:15 <CakeProphet> floor can also be sumulated with round(x - 0.5)
02:38:21 <oerjan> sounds about as much as you can expect without a full-blown library of statistical distributions.
02:38:54 <CakeProphet> I could put a shitload of the standardlb into the specification... if I wanted.
02:38:56 <oerjan> and everything else can be constructed from those two cases.
02:39:50 <CakeProphet> which I might do as an "extended stew"... for OS related juju
02:41:06 <CakeProphet> hmm.. oh I need to add greater than and less than.
02:41:23 <CakeProphet> greaterthan-and-equal-to is just a superset of multiple operations.
02:43:21 <oerjan> i thought you said you could use div and floor.
02:44:26 * CakeProphet doesn't know how to do gt and lt any other way.
02:45:28 <Sukoshi> The INTERCAL stdlib has random number generation in it.
02:45:54 <CakeProphet> I like the way the syntax oscilates from postfix to prefix
02:47:50 <CakeProphet> I have the urge to add a little hack to do in-line Python....
02:49:06 <Sukoshi> You need to try out other languages.
02:49:40 <CakeProphet> I can do some schemish stuff... nothing huge though.
02:49:46 <oerjan> let's say you have a non-zero integer and you want to test if it is positive or negative.
02:50:13 <Sukoshi> Write an infix->prefix translator in Scheme.
02:50:56 <oerjan> actually, floor (1/(2*x))
02:50:57 <CakeProphet> I can do Glass fairly well... out of all the esolangs it's the one I'm most proficient at.
02:51:25 <oerjan> on second thought, zero is not a problem either.
02:51:35 <CakeProphet> I can read most of C... I still need to learn what structs are :D
02:52:17 <CakeProphet> I can do FORTH... never actually used it... but the syntax is so simple how can you -not- use FORTH?
02:52:52 -!- Asztal has quit (Read error: 104 (Connection reset by peer)).
02:53:10 -!- digital_5e has joined.
02:53:20 <oerjan> but it isn't quite there yet.
02:53:22 <CakeProphet> oh yeah... anything multiplied by zero is one
02:54:20 <CakeProphet> eh... I think I'll just use builtins for comparison :P
02:54:31 <oerjan> that should have only two possible values, -1 and 0.
02:55:12 <CakeProphet> I guess it wouldn't be too hard to implement in Stew... since it's functional, I can abstract.
02:55:30 <CakeProphet> more properly... it's "procedural" (everything is on a global stew)
02:55:45 <oerjan> so -floor (1/(4*x-2)) == (x<=0)
02:57:01 <oerjan> for floats you would take floor before doing this, giving (x<1)
02:57:02 <CakeProphet> CHORD (yes, all caps... it felt like the thing to do) switches integers to ASCII... and ASCII to integers.
02:57:23 <CakeProphet> FLIP changes ints to strings, and strings to ints.
02:58:05 <oerjan> so a CHORD is not a string? :)
03:00:01 <CakeProphet> which are the functions that do the underlying magic.
03:00:25 <CakeProphet> CHORD was something that would have been waaay too tedious to implement in Stew.
03:01:54 <CakeProphet> I suppose you could build a BF interpreter in Stew.
03:02:22 <CakeProphet> just have a queue representing each possible symbol... and do a bunch of conditional rotations via comparisons.
03:02:58 <CakeProphet> except... there's always that pesky while loop.
03:05:53 <oerjan> just make sure that the op for the while loop places itself back in the queue
03:06:26 <oerjan> oh, you mean the bf loop
03:06:50 <ihope> Trying to prove Stew Turing-complete?
03:07:12 <CakeProphet> just wondering -if- it could do a BF interpreter.
03:07:15 <oerjan> can a stack contain stack elements?
03:07:41 <CakeProphet> all data is in the queues... and all the queues are in the stack.
03:07:57 <oerjan> so no queues in the queues either.
03:08:12 <CakeProphet> No unless you can find a bug that lets you do so.
03:09:08 <CakeProphet> If you push all the values from the top queue... it's removed and the one below it takes its place... if that paticular quirk helps an.
03:10:02 <CakeProphet> the only loop construct in Stew (at the moment) is a function mapper()
03:10:11 <oerjan> is there a way to get to queues other than the top one?
03:11:22 -!- digital_5e has quit (Connection timed out).
03:11:24 <CakeProphet> @ takes the topmost int from the top-most queue as a stack looker-backer.
03:11:54 <CakeProphet> it's how you would do conditionals in Stew.
03:12:24 <CakeProphet> give it a comparison... it returns either 1 or 0... and use that to conditionally flip between the top two queues.
03:13:34 <oerjan> is there a way to swap or rotate the top queues?
03:13:36 -!- ihope_ has quit ("Leaving").
03:13:39 <CakeProphet> and I'm guessing... if you used negative integers it would get the bottom most queue... since I didn't really specify any sort of check for that thing... and that's how Python would do it.
03:14:10 <oerjan> that means you can use the bottom queues for globals!
03:15:43 <CakeProphet> % is the foreach operator... it calls a function for each item in the top queue (using some fancy voodoo to make sure that each item is at the front of the queue at some point.
03:16:25 <oerjan> can you use % to delete the topmost queue?
03:17:19 <CakeProphet> well... if your function didn't put anything in the queue.
03:17:39 <CakeProphet> I'd need to tweak the interpreter a bit to parse an empty function though :D
03:18:02 <oerjan> OneOrMore -> ZeroOrMore ? :)
03:20:59 <oerjan> let's say you made each BF loop into a queue.
03:21:14 <CakeProphet> you can get a specific element from the topmost queue as well.
03:21:33 <oerjan> placing it in a specific position from the bottom.
03:22:16 <CakeProphet> (by the way "stew" is the phonetical squashing of stack and queue)
03:23:54 <oerjan> although stue is norwegian for living-room
03:24:10 <CakeProphet> I can't imagine stew being very efficient... pretty much any operation on it involves messing with a two-dimensional array.
03:28:36 <CakeProphet> It'll be hard to get foreach to work properly.
03:29:02 <CakeProphet> As functions that call will eat up their arguments and return new ones... which go on a fancy result list to the side.
03:29:15 <CakeProphet> it would be difficult to make it implicitly "eat up" values...
03:29:47 <CakeProphet> that's one of the few functions that eat up values and don't spit anything back.
03:29:53 <oerjan> is there a way to simply remove a value?
03:30:13 <CakeProphet> You could make it an instrinsic property of foreach... but then it would eat -too- many.
03:30:57 <CakeProphet> pops just sorta happen as the low level commands and functions start consuming values...
03:32:53 <CakeProphet> better yet... make it a builtin... so you can foreach it :D
03:33:35 <CakeProphet> builtin functions have the advanage of being treated as data... commands have the advantage of you-don't-need-to-explicitly-call-them-they-just-happen.
03:37:56 -!- Metuk has quit (Read error: 110 (Connection timed out)).
03:39:30 <oerjan> eh, why is Stew.q not being initialized?
03:41:08 <CakeProphet> Now it just slices from the stack each operation... which is... kind of dirty... but eh.
03:41:18 <oerjan> so the pastebin is not accurate? (http://deadbeefbabe.org/paste/3099)
03:41:43 <CakeProphet> as soon as I make a little tweak, I'll post up the latest.
03:44:12 <CakeProphet> a minor tweak in how Stew does symbols allows the interpreter to call any arbitrary string as though it were an op. :D
03:44:29 <CakeProphet> ( op is the "official" term for a procedure in the Stew lingo...)
03:50:43 <oerjan> WE WILL CALL IT A "DUWN"
03:51:36 <RodgerTheGreat> alright, I think I have a functioning def-bf interpreter...
03:52:22 <CakeProphet> hehe... got my own interpreter testing to do :P
03:52:50 <pikhq> RodgerTheGreat: Test any normal Brainfuck code.
03:52:56 <pikhq> If that fails, j00 fail.
03:53:29 <pikhq> Not sure what to do.
03:53:52 <CakeProphet> oerjan, oh... and functions have the nifty ability to be constants :D
03:54:04 <CakeProphet> since they just push values to the stack... you can use them as constants to values.
03:54:18 <RodgerTheGreat> program counter control is going to be tricky to test...
04:01:11 <oerjan> you can create a constant function
04:01:25 <oerjan> just use eq to start with
04:02:34 <CakeProphet> and... currently my interpreter is printing ouit strange results.
04:03:11 <oerjan> what i mean is, you can use it with foreach to turn every element of a queue into the same value.
04:04:58 <CakeProphet> hehe... using esoteric languages is the fine art of misusing every bit of the languages features.
04:07:29 <oerjan> eh, is recursion the only way to do a loop in Stew?
04:07:50 <oerjan> because it might be hard on the Python stack.
04:09:28 <RodgerTheGreat> well, shit- I'm getting stack underflows. It's either a faulty program or my interpreter
04:09:38 -!- Sukoshi has left (?).
04:09:44 -!- Sukoshi has joined.
04:10:21 <CakeProphet> my interpreter keeps printing the stack with no apparent reason to do so.
04:10:29 <CakeProphet> I've searched the whole program for a reason why.
04:10:47 <oerjan> you might want to adjust run to do proper tail call optimization.
04:11:18 <RodgerTheGreat> I'm working on getting a functioning Def-BF interpreter going
04:11:23 <oerjan> so that recursion can be safely used for loops.
04:12:05 <CakeProphet> oerjan, it retrieves the functions as data... the call is from the ^ command... which calls the call() method... which calls the __call__ method of an Op object :D
04:12:50 <CakeProphet> I could easily reduce it to a call to run()
04:21:15 <CakeProphet> fixed some stuff... but it still prints out the stack a bunch..
04:23:35 <CakeProphet> hmmm... to make it do optimization for tail recursion you simply return the call right?
04:24:00 <CakeProphet> that ensures that Python no longer has to keep track of the functions local state.
04:24:48 * pikhq discovers that SMB3 kicks ass with a game genie. . .
04:25:01 <pikhq> Hammer Mario. All. Day. Long.
04:26:08 <oerjan> or you turn the call into iteration.
04:27:43 <Sukoshi> RodgerTheGreat: Has someone finished the spec?
04:28:07 <RodgerTheGreat> I wrote the original spec, and the low-level portion is complete.
04:28:27 <oerjan> if you check in run whether the last command in the list is ^, and then whether its argument is an op, then you can shortcut and use the same invocation of run to do it.
04:28:53 <RodgerTheGreat> The only change I made to what you've seen before is that I replaced the @ symbol with %, to free up @ as a reserved "word". One moment...
04:30:06 <RodgerTheGreat> I'm implementing the low-level spec outlined in "Basic Commands"
04:30:28 <RodgerTheGreat> Currently, I've left out ? just to save myself some minor headaches
04:31:00 <Sukoshi> So, the low-level commands perform definite jumps?
04:31:26 <Sukoshi> Like +++++%. should output what?
04:31:35 <RodgerTheGreat> %: control the program counter, and #; control the pointer
04:32:42 <Sukoshi> But doesen't % jump to location 5?
04:33:26 <Sukoshi> Hooray. Def-BF -- More ways to infinite loop.
04:34:13 -!- BrainMachine has joined.
04:34:29 <Sukoshi> What about +++++#, inputs 'a' .
04:36:22 -!- oerjan has quit ("Good night.").
04:37:26 -!- calamari has quit ("Leaving").
04:37:26 <Sukoshi> Man. I wish I could play some more with this.
04:37:29 <pikhq> bfprog +++++#,<+++++;.
04:37:36 <Sukoshi> But, I must finish my homework.
04:38:01 <Sukoshi> Why does it spit out some erroneous character at the end?
04:38:08 <pikhq> bfprog +++++#,<<<<<[-]>>>>>.
04:38:35 <RodgerTheGreat> Sukoshi: oh, that's a bug/feature of the way error messages work
04:39:03 <RodgerTheGreat> it just adds a "\nError Message\n" to the output stream
04:39:43 <Sukoshi> I might come up with my own interpreter tonight too.
04:40:20 <Sukoshi> Oh, how does ? work, by the way?
04:40:44 <RodgerTheGreat> once I can get this interpreter firing on all cylinders, I'll start working on the High-Spec->Low-Spec compiler
04:41:21 <RodgerTheGreat> Sukoshi: the plan is for it to read the next n characters as long as they're numbers. Inelegant, but it works
04:41:58 <Sukoshi> How'll you tell that they're numbers? Do an ASCII bound check?
04:42:36 <RodgerTheGreat> or, since it's Java, I can repeatedly try Integer.parseInt()
04:42:59 <Sukoshi> Well, in the all cylinders world, there's nothing that fancy.
04:44:49 <RodgerTheGreat> if you can think of a better way for ? to work, by all means let me know
04:45:28 <RodgerTheGreat> I was thinking about having it just read in the next ascii char, but that limits values to 8-bit, and makes it hard to use interactive interpreter
04:48:26 * pikhq jumps off of cliffs in SMB3, singing "Suicide is painless, it brings on many changes, I can take or leave it if I please."
04:49:09 <GregorR> http://www.codu.org/Kill_Yourself.org
04:49:13 <GregorR> http://www.codu.org/Kill_Yourself.ogg
04:49:13 <pikhq> Actually, it's the song from MASH.
04:49:18 <pikhq> GregorR: I've got it.
04:49:32 <pikhq> http://en.wikipedia.org/wiki/Suicide_Is_Painless
04:49:53 <pikhq> I've got the Kill Yourself song.
04:50:24 <pikhq> "Take out your favorite limb, take out your favorite eye, it doesn't matter how so long as you die!"
04:50:49 <pikhq> RodgerTheGreat: I'm doing Mash *and* Nintendo.
04:51:15 <RodgerTheGreat> lmao: http://en.wikipedia.org/wiki/List_of_songs_about_suicide
04:52:46 <GregorR> I should add my Kill Yourself song to that 8-D
04:58:30 <RodgerTheGreat> "Let me take you down/'cause I'm going to/Strawberry fields-/nothing is real/-and nothing to get hung about/"
05:03:53 <pikhq> Don't use Wikipedia to gain relevance.
05:15:20 -!- anonfunc has quit.
05:16:48 -!- anonfunc has joined.
05:32:50 -!- RodgerTheGreat has quit.
05:32:55 -!- BrainMachine has quit (Remote closed the connection).
06:48:29 <GregorR> http://www.donotputthebaby.com/index.php?s=Mouth
07:56:22 * pikhq would like to salute the RIAA for their claims on a) the rampancy of piracy b) the cost of each song
07:57:58 <pikhq> They have recently valued a single song to be worth $150,000. . .
07:59:05 <Sukoshi> Well, if each person is worth $1,000,000 then their songs must be some fraction of them, no?
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:00:34 <pikhq> Let's estimate that maybe 20% of the US population (6,000,000 people here) pirate songs.
08:01:00 <pikhq> Let's say each of these downloads, say, 3 albums of 12 songs a year.
08:01:23 <pikhq> 2,160,000,000 songs.
08:01:32 <pikhq> This is, obviously, a low estimate.
08:02:13 <pikhq> Now, with each worth $150,000, we get $324,000,000,000,000 worth of songs pirated.
08:02:30 <pikhq> 324 trillion dollars.
08:02:56 <Sukoshi> That's more than the entire GDP of France.
08:03:10 <pikhq> For comparision, the USA GDP is $12.485 trillion dollars.
08:05:28 <pikhq> That's an order of magnitude larger than the world's GDP.
08:06:00 <pikhq> $44,454,843,000,000 dollars.
08:06:06 <pikhq> 44 trillion dollars.
08:10:01 <pikhq> Shift my calculations by an order of magnitude.
08:10:51 <pikhq> 60,000,000, people, 21,600,000,000 songs, $3,240,000,000,000,000 songs pirated.
08:15:06 <Sukoshi> Well, in the RIAA's heart, that's how much is being pirated.
08:16:04 <pikhq> Applying this to global scale gets us having lost every year the amount of value produced since the dawn of mankind.
08:16:20 <pikhq> (just guessing on that, but hey. Sounds about right.)
08:20:49 <pikhq> In conclusion: balding men with more cash than sense should not be allowed to talk about money at all.
08:21:07 <Sukoshi> In conclusion: We should sue the RIAA.
08:22:18 <pikhq> In conclusion: We should just let the RIAA's recent decision to sue a front company for the Russian mafia take its course.
08:22:25 <pikhq> I'm buying the popcorn. ;)
08:22:53 <pikhq> They decided to sue AllOfMP3.
08:22:54 <Sukoshi> The We're-still-totalitarian-you-bums nation.
08:23:13 <pikhq> For. . . More than the GDP of Russia.
08:23:42 <pikhq> Since AllOfMP3 has mafia ties, this should be rather amusing.
08:23:52 <Sukoshi> Yeah, if that happened, AllOfMP3 would own Russia by now and they'd have their own corporate army and their own figurehead President.
08:24:35 <pikhq> s/AllOfMP3/RIAA/ s/Russia/America/
08:25:05 <pikhq> It's RIAA vs. EquallyHugeGiant.
08:25:37 <pikhq> (I've also heard rumors of the RIAA having American mafia ties. . . This gets more and more amusing.)
08:25:46 <Sukoshi> This 'aint exactly ripe fields for Socialism in the world now.
10:01:40 -!- jix_ has joined.
11:43:17 -!- tgwizard has joined.
11:49:05 -!- Asztal has joined.
12:19:24 -!- oklopol has joined.
12:32:01 -!- jix__ has joined.
12:33:20 -!- oerjan has joined.
12:40:29 -!- jix_ has quit (Read error: 113 (No route to host)).
14:33:38 -!- Asztal has quit (Read error: 113 (No route to host)).
14:46:32 -!- anonfunc has quit.
14:57:11 -!- Sph1nx has joined.
15:11:01 -!- ihope_ has joined.
15:12:33 -!- Sph1nx has quit (" !").
15:28:49 -!- ihope has quit (Read error: 110 (Connection timed out)).
15:35:43 -!- oerjan has quit ("leaving").
16:23:47 -!- RodgerTheGreat has joined.
16:28:23 -!- RodgerTheGreat_ has joined.
16:28:23 -!- RodgerTheGreat has quit (Read error: 104 (Connection reset by peer)).
16:31:18 -!- RodgerTheGreat_ has changed nick to RodgerTheGreat.
18:09:31 -!- oerjan has joined.
18:43:54 <oerjan> hey, lambdabot@#haskell also has a BF interpreter
18:51:38 <oklopol> not that shocking since a bf interpreter takes 15 minutes to write
19:04:14 -!- RodgerTheGreat has quit (Read error: 104 (Connection reset by peer)).
19:04:25 -!- RodgerTheGreat has joined.
20:21:16 -!- Asztal has joined.
20:24:48 -!- Asztal has quit (Client Quit).
21:50:46 <bsmntbombdood> using minimal evaluation with boolean and/or makes for nice looking code
21:52:18 <bsmntbombdood> char *editor = getenv("VISUAL") || getenv("EDITOR") || (command_exists_p("emacs") && "emacs") || "vi";
21:53:05 <GregorR> Yes, making use of logical short-circuiting :P
21:54:05 <oerjan> actually it is not essential in that example.
21:54:50 <GregorR> True ... but it would be fairly inefficient without :P
21:57:19 <pikhq> That *works*. . . But I'd rather not use such a thing.
21:57:32 <pikhq> void *p=malloc(x);
21:57:49 <pikhq> Seems a bit clearer to me.
21:58:28 <pikhq> Clarity is worthwhile, IMO.
21:58:52 <oerjan> some languages call that operator 'orelse'.
21:59:12 <oerjan> which is pretty clear.
21:59:49 <oerjan> and (...) or die(1); is idiomatic perl.
22:00:40 <oerjan> hm, that probably should be die("..."). my perl is getting rusty.
22:02:10 * GregorR hates perl's proponderance of silly conditional keywords.
22:02:11 <oerjan> it's good. perfectly clear, too.
22:02:28 <GregorR> Also, I hate this: do something if (x); instead of if (x) do something;
22:02:45 <GregorR> And 'unless', I hate that too.
22:02:53 <GregorR> Really, I just hate Perl.l
22:03:16 <pikhq> I hate executable line noise.
22:03:24 <oerjan> and here i was going to mention that Haskell has when and unless in the Control.Monad module.
22:03:36 <oerjan> prefixed though, being functions.
22:04:29 <oerjan> Malbolge > Brainfuck :)
22:06:08 <GregorR> Mind you, that's only in terms of programming.
22:06:13 <GregorR> In general, the horse dung is more useful.
22:07:22 <oerjan> darn, has someone made a BF interpreter in COBOL yet?
22:07:36 <pikhq> oerjan: Undoubtedly.
22:07:44 <GregorR> I made one in ORK, that's like COBOL++ :)
22:08:07 <pikhq> Actually, it's ADD 1 TO COBOL GIVING COBOL.
22:08:22 <GregorR> pikhq: Sooo much typing ;)
22:08:31 <GregorR> When you say OISC, are you referring to OISC the general concept with no specific implementation or a specific implementation, such as MISC?
22:09:06 <oerjan> of course that is anecdotical, i believe the GIVING COBOL is redundant.
22:09:19 <pikhq> Perhaps even INCREASE COBOL BY 1.
22:09:32 <GregorR> There is such a thing as a programming language.
22:09:37 <GregorR> A programming language can be incremented.
22:09:46 <GregorR> There is a programming language named COBOL.
22:09:50 <GregorR> COBOL is to be incremented.
22:10:10 <oerjan> and i think there is some reasonable expression notation in cobol as well. perhaps.
22:10:17 -!- RodgerTheGreat_ has joined.
22:10:26 <pikhq> Make your class be operated on by a mathematician named Gregor.
22:10:39 -!- RodgerTheGreat has quit (Read error: 104 (Connection reset by peer)).
22:10:50 <GregorR> There is a mathematician named Gregor.
22:10:54 <GregorR> Gregor's first operand is COBOL.
22:10:58 <GregorR> Gregor's second operand is 1.
22:11:51 <GregorR> Or, the acronym for that: MNGGFOCOBOLGSO1GAORKGR
22:34:33 -!- ihope_ has quit (pratchett.freenode.net irc.freenode.net).
22:34:33 -!- tgwizard has quit (pratchett.freenode.net irc.freenode.net).
22:34:34 -!- GregorR has quit (pratchett.freenode.net irc.freenode.net).
22:35:49 -!- ihope_ has joined.
22:35:49 -!- tgwizard has joined.
22:35:49 -!- GregorR has joined.
22:41:10 -!- ihope_ has quit (pratchett.freenode.net irc.freenode.net).
22:41:10 -!- tgwizard has quit (pratchett.freenode.net irc.freenode.net).
22:41:10 -!- GregorR has quit (pratchett.freenode.net irc.freenode.net).
22:41:33 -!- ihope_ has joined.
22:41:33 -!- tgwizard has joined.
22:41:33 -!- GregorR has joined.
22:50:46 -!- ihope_ has quit (pratchett.freenode.net irc.freenode.net).
22:50:46 -!- tgwizard has quit (pratchett.freenode.net irc.freenode.net).
22:50:46 -!- GregorR has quit (pratchett.freenode.net irc.freenode.net).
22:51:08 -!- ihope_ has joined.
22:51:08 -!- tgwizard has joined.
22:51:08 -!- GregorR has joined.
23:03:50 -!- ihope_ has quit (pratchett.freenode.net irc.freenode.net).
23:03:50 -!- tgwizard has quit (pratchett.freenode.net irc.freenode.net).
23:03:50 -!- GregorR has quit (pratchett.freenode.net irc.freenode.net).
23:04:14 -!- ihope_ has joined.
23:04:14 -!- tgwizard has joined.
23:04:14 -!- GregorR has joined.
23:39:49 -!- Asztal has joined.
23:43:48 -!- ihope_ has quit ("http://tunes.org/~nef/logs/esoteric/06.08.09").
23:48:00 -!- Fordsway has joined.
23:50:12 -!- Fordsway has left (?).