←2011-08-02 2011-08-03 2011-08-04→ ↑2011 ↑all
00:10:06 <pikhq_> Probably another feature of the sonic screwdriver.
00:10:20 -!- FireFly has quit (Quit: swatted to death).
00:12:27 -!- GreaseMonkey has quit (Quit: The Other Game).
00:16:33 <Phantom_Hoover> <Lymee> help
00:16:33 <lambdabot> Phantom_Hoover: You have 11 new messages. '/msg lambdabot @messages' to read them.
00:16:40 <Phantom_Hoover> Wait, is that the actual temperature where you are?
00:19:27 <NihilistDandy> oerjan, pikhq_: There was a special in the new series...
00:19:52 * Phantom_Hoover notes that for some reason his DF fortress has no food.
00:20:06 <Phantom_Hoover> I'll just wait for the tantrum spiral, then.
00:20:07 <NihilistDandy> Phantom_Hoover: Your Dwarf Fortress Fortress?
00:20:24 <Phantom_Hoover> NihilistDandy, I decided that it was necessary for disambiguation.
00:25:14 * Phantom_Hoover decides to dig through damp stone.
00:28:40 -!- augur has joined.
00:45:58 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
01:16:16 -!- Phantom_Hoover has quit (Quit: Leaving).
01:16:26 -!- copumpkin has joined.
01:17:57 -!- cheater__ has joined.
01:21:20 -!- cheater_ has quit (Ping timeout: 250 seconds).
01:48:18 -!- comex has quit (Remote host closed the connection).
02:09:04 -!- evincar has joined.
02:20:50 -!- lament has joined.
02:22:22 -!- oerjan has quit (Quit: Good night).
02:39:05 -!- azaq23 has quit (Quit: Leaving.).
03:03:01 -!- MDude has changed nick to MSleep.
03:47:06 -!- BeholdMyGlory has quit (Read error: Connection reset by peer).
04:14:41 -!- evincar has quit (Quit: To bed!).
04:22:30 -!- GreaseMonkey has joined.
04:22:30 -!- GreaseMonkey has quit (Changing host).
04:22:30 -!- GreaseMonkey has joined.
04:41:51 -!- variable has quit (Quit: I found 1 in /dev/zero).
04:42:12 <zzo38> I started making the prettyprinting literate Haskell program in TeX, now what I have so far it works. Now I have to make the other parts too.
04:42:58 -!- variable has joined.
04:45:21 -!- pumpkin has joined.
04:48:09 -!- pumpkin has changed nick to copumpkin_.
04:48:50 -!- copumpkin has quit (Ping timeout: 276 seconds).
04:52:42 <quintopia> is there a name for a numbering system where every single positive integer has a distinct symbol?
04:53:05 <coppro> unary
04:53:10 <zzo38> I don't know.
04:53:40 <quintopia> nah, its the extremme opposite of unary
04:54:21 <coppro> unary gives each positive integer a distinct symbol
04:55:06 <quintopia> i thought unary was where every positive integer got a different sized collection of the same symbol
04:55:27 <quintopia> aka, n is n digits long
04:55:45 <CakeProphet> unary = tick marks. 1, 11, 111, 1111
04:55:45 <zzo38> coppro: Are you sure?
04:55:46 <CakeProphet> etc
04:55:46 <quintopia> and i'm talking about where n is one digit long for all n
04:56:00 <quintopia> i guess you could call it base infinity
04:56:05 <coppro> zzo38: yes
04:56:09 <CakeProphet> he's talking about an infinite number of symbols. I don't think that has a name.
04:56:10 <zzo38> quintopia: Yes it is wat I would think
04:56:13 -!- copumpkin_ has changed nick to copumpkin.
04:56:15 <coppro> quintopia: define a digit
04:56:21 <CakeProphet> usually alphabet sets are restricted to be finite.
04:56:35 <coppro> 11 can be taken to be a single symbol
04:56:43 <CakeProphet> except it's not. it's two..
04:56:44 <coppro> that just happens to be a repitition of a subsymbol
04:56:47 <CakeProphet> in the unary system.
04:56:59 <coppro> CakeProphet: suppose I have two images
04:57:00 <quintopia> i think you know what i mean now
04:57:07 <coppro> I can make a new image by putting them next to each other
04:57:13 <quintopia> it is the numbering system using an infinite alphabet
04:57:14 <coppro> quintopia: no because that requires an infinite alphabet which is dumb
04:57:28 <quintopia> it is not dumb
04:58:11 <quintopia> becuase youll only ever need a finite subset of the digits, its basically the same as "base x, where x is the largest number you need right now"
04:58:27 <CakeProphet> symbols aren't images though. You don't make new symbols from existing symbols. You could invent a similar algorithm for decimal system by saying that 23, 24, 25, etc are all distinct symbols. But we call these "symbols" strings, not symbols...
04:59:02 <quintopia> i just saw a minecraft display system where binary numbers are split into separate symbols for each number, and the each segment of the display is wired to the symbols that need to drive that segment
04:59:43 <quintopia> and i feel like that middle step probably has a name
04:59:58 <quintopia> its obviously modular to do as many different numbers as you need
05:01:35 <CakeProphet> how are the symbols constructed.
05:01:58 <fizzie> I think the whole "base k" term implies a positional system, and I don't think it really counts when you only ever use one digit. But that's just an opinion.
05:02:02 <quintopia> each is a wire
05:02:07 <quintopia> i could link it
05:02:23 <CakeProphet> so 1 wire = 1, 2 wires = 2, ...?
05:02:31 <quintopia> fizzie: i agree. which is why i originally asked
05:03:01 <quintopia> CakeProphet: no, there is a wire for 1, a wire for 2, a wire for 3, etc.
05:04:01 <quintopia> only one wire can be active at a time
05:04:54 <quintopia> so a symbol here is "a collection of wires distinguished by the one that is active"
05:05:12 <quintopia> obviously every number has a different symbol
05:06:40 <quintopia> the pythagoreans used a similar system "let k be symbolized by a line segment of length k"
05:09:23 <CakeProphet> okay so the wires aren't really the symbols they just signify if a symbol is on or off. What are the symbols themselves?
05:09:43 <CakeProphet> or... are they the symbols?
05:10:33 <CakeProphet> but in either case, I'd probably say that "baseless" is a good description of this numeral system.
05:10:55 <Patashu> this is unary
05:10:56 <quintopia> what is the difference between a signifier of a symbol, and a symbol
05:10:58 <CakeProphet> but I don't know of an existed term, no.
05:11:06 <quintopia> i'm thinking i agree with patashu
05:11:17 <quintopia> it is all unary in disguise
05:11:22 <CakeProphet> but it's not.....
05:11:36 <Patashu> it's equivalent to the system where you turn wire 1 on for 1, 1+2 on for 2, 1+2+3 on for 3...
05:11:38 <Patashu> which is unary
05:11:45 <quintopia> yes
05:11:50 <CakeProphet> in unary, you take the length of all of your symbols and that is the number that it represents. This system does not work this way
05:11:59 <CakeProphet> you could have 3 symbols turned on and they would not represent 3.
05:12:19 <CakeProphet> because the symbols could each represent a number greater than 1.
05:12:20 <quintopia> you could say "the distance in wires from the zero point to the active wire"
05:12:38 <quintopia> whether that space is filled with ones or zeroes is irrelevant
05:12:46 <quintopia> the greek system is unary too
05:12:58 <CakeProphet> okay so the symbols are added together?
05:13:10 <quintopia> they concatenate their length 1 tick marks end to end rather than side by side
05:14:11 <CakeProphet> okay so it's base 1 but there is more than one symbol.
05:15:22 <quintopia> nah i think it is just that unary should best be understood as "a number represented by the appropriate measurement of a potentially infinitely long/detailed symbol"
05:16:37 <CakeProphet> I'm pretty sure unary just means that you have one arbitrarily chosen symbol that represents 1, and each number N is represented by repeating the symbol N times. Changing the definition would make it inconsistent with the rest of bases.
05:16:41 <quintopia> thanks for clarifying my thoughts
05:16:58 <fizzie> There's a non-positional system of Greek numerals; they have separate digits for 1, 2, ..., 9, 10, 20, ..., 90, 100, 200, ..., 900, and then you denote numbers by a group of 1, 2 or 3 of those. But that's not quite "one symbol for each number", and I don't think it has any special name either.
05:17:02 <quintopia> unary is already inconsistent with the other bases
05:17:16 <CakeProphet> how so?
05:17:34 <CakeProphet> well, traditionally there is no 0.
05:17:51 <quintopia> the length of a base n number is log(x)/log(n)
05:18:10 <quintopia> for n=1, this comes out undefined
05:19:12 <fizzie> Base-k is supposed to have digits from 0 to k-1; so "base 1" should have just a 0; also the value of a string is d_0*b^n + d_1*b^(n-1) + ... + d_n*b^0, so if b=0 and d_n=0 for all d_n, 0 is the only number you can represent.
05:19:38 <fizzie> People still call it base-1 though.
05:19:42 <CakeProphet> fizzie: the choice of symbol is irrelevant. 1 is the single symbol for most unary systems, you could use 0 as well.
05:20:32 <quintopia> so you see again unary is inconsistent with other bases
05:20:44 <CakeProphet> yes, there is no zero, as I said.
05:21:03 <quintopia> in other bases, the positions of symbols matters, in unary, only the "length" of the string matters
05:21:06 <fizzie> CakeProphet: Well, you're entitled to your opinion; I believe saying "base K" should imply you have a positional symbol with that base, and the value of a string is computed by adding multiplied copies of base^n. That's not what happens with unary.
05:21:48 <fizzie> Okay, I sort-of guess it works with powers of one.
05:22:00 <quintopia> which is why one can write unary numbers as line segments of a prescribed length
05:23:11 <CakeProphet> I'm just saying that qhat quintopia is talking about isn't the standard definition of the unary number system, in the strictest sense. What he's talking about eitherh as a different name, is a modification of unary, or has not been named.
05:23:42 <quintopia> you said yourself the choice of symbol doesnt matter CakeProphet
05:24:05 <CakeProphet> yes but unary has /one/ symbol. two if you use a special zero symbol.
05:24:07 <fizzie> You could call unary bijective base-1 though.
05:24:10 -!- lament has quit (Ping timeout: 240 seconds).
05:24:46 <quintopia> so what if instead of zeroes or ones, i choose as my symbol "the number of non-wire regions between wires before the first active wire"
05:24:55 <quintopia> that is just as good as 0 or 1
05:25:06 <quintopia> each nonwire region
05:25:51 <quintopia> and really, the symbols dont have to be the same all the way through
05:26:14 <quintopia> for instance, the length of a string over the english alphabet
05:26:40 <quintopia> a garble of a's and b's and c's is just as good as a long line of 1's
05:26:51 <quintopia> since only the length defines the number
05:27:02 <quintopia> okay sleeptiems
05:27:11 <CakeProphet> well, that does sound quite similar to unary at least. I was going by an earlier explanation that didn't seem to fit unary.
05:35:11 <zzo38> Computer Modern fonts does not have the "double-sharp" sign
05:44:25 <CakeProphet> > join . replicate (length "111") $ length "11111"
05:44:26 <lambdabot> Couldn't match expected type `[a]'
05:44:26 <lambdabot> against inferred type `GHC.Types...
05:44:41 <CakeProphet> > join . replicate (length "111") $ "11111"
05:44:44 <lambdabot> "111111111111111"
05:45:51 <CakeProphet> division will be a bit more difficult.
05:46:17 <CakeProphet> integer division, specifically.
05:46:35 <CakeProphet> which brings up an interesting question. If extend unary to the real numbers, then what is 1.111
05:46:52 <CakeProphet> I don't think that represents anything.
05:47:03 <Patashu> .1 is 1
05:47:04 <Patashu> I think
05:47:12 <Patashu> Because .1 in binary is 1/2, .1 in ternary is 1/3 and so on
05:47:16 <Patashu> so .1 in unary is... 1/1!
05:47:21 <Patashu> :eng101:
05:47:35 <CakeProphet> so the unary system can't describe all of the real numbers.
05:47:48 <CakeProphet> only integers.
05:48:21 <Patashu> yup!
05:48:50 <Patashu> just as places left of the decimal point are all equivalent, places right of the decimal point are all equivalent
05:48:59 <CakeProphet> right.
05:49:25 <CakeProphet> unary is essentially devoid of place value at all.
05:51:26 <Patashu> Woah o.O
05:51:29 <Patashu> I'm looking at the spectogram for this song
05:51:30 * Patashu np: 12120. Klippa - [So #01] The Tree [01:45/02:38]
05:51:32 <Patashu> and it has poplar trees in it
05:51:35 <Patashu> I wonder if it's a coincident
05:51:37 <Patashu> *coincidence
05:53:43 <CakeProphet> coincidence. It's probably just heavier in the bass frequencies.
05:54:37 <Patashu> I'll show you a picture
05:54:57 <CakeProphet> though it could not be coincidence, actually. There is an Aphex Twin track where Richard James encoded a picture of his face into the spectrogram (when view on a logarithmic scale)
05:55:10 <CakeProphet> *viewed
05:58:57 <Patashu> http://img.photobucket.com/albums/v216/Mechadragon/thetree.png
05:59:06 <Patashu> do you see it?
05:59:11 <Patashu> it's like a little forest of 8 poplars
06:08:00 <fizzie> There are quite a lot of "things hidden in spectrogram" songs, I believe.
06:08:17 <fizzie> That image looks quite coincidental though.
06:09:35 <fizzie> Or at least something that could easily be coincidental.
06:38:17 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
07:02:33 -!- olsner has joined.
07:21:00 -!- TeruFSX has quit (Ping timeout: 250 seconds).
07:30:58 -!- pikhq_ has quit (Ping timeout: 250 seconds).
07:30:58 -!- pikhq has joined.
07:49:17 -!- Deewiant_ has joined.
07:51:14 -!- Deewiant has quit (Ping timeout: 252 seconds).
08:10:50 -!- GreaseMonkey has quit (Quit: The Other Game).
08:15:26 -!- nooga has joined.
08:17:20 -!- copumpkin has quit (Ping timeout: 250 seconds).
08:17:45 -!- copumpkin has joined.
08:41:35 -!- zzo38 has quit (Remote host closed the connection).
08:56:12 -!- Taneb has joined.
08:56:50 <Taneb> Hello!
08:59:14 <Taneb> So, what's up?
09:01:17 <Taneb> Not much, I guess
09:02:00 <fizzie> No, it all fell down.
09:03:01 -!- Deewiant_ has changed nick to Deewiant.
09:03:50 <Taneb> Well, I'm now experimenting with clients
09:06:12 <fizzie> It doesn't sound like good PR to say that out loud.
09:10:06 <Taneb> No such thing as bad advertising
09:16:46 <Taneb> Well, just worked out I'll probably be in London on my birthday
09:17:29 <Taneb> And I'll be on TV the day afterwards
09:18:42 <fizzie> And in jail the day after that?
09:18:51 <fizzie> Sounds like quite a celebration.
09:20:09 <Taneb> IN THE SAME BUILDING WHERE RUPERT MURDOCH GOT PIED!
09:20:41 <Taneb> Also, I need breakfast.
09:22:30 <Taneb> Having breakfast now
09:27:31 <Taneb> Had breakfast
09:29:47 <fizzie> A quick breakfast.
09:30:18 <fizzie> A multi-level breakfast can breakfast through any number of surrounding loops.
09:35:20 -!- pikhq has quit (Ping timeout: 250 seconds).
09:35:24 -!- pikhq_ has joined.
09:42:52 -!- monqy has quit (Quit: hello).
09:45:10 <Taneb> I combined the wholegrain breakfast and chocolatey breakfast for maximum breakfast efficiency
09:45:40 <Taneb> Now I must leave
09:45:47 -!- Taneb has quit (Quit: He's a big quitter he is).
09:48:03 -!- Phantom_Hoover has joined.
09:52:37 <Phantom_Hoover> What are the haps my friends.
09:56:00 <fizzie> Today it's been mostly about breakfasts.
10:19:49 -!- FireyFly has joined.
10:20:56 <itidus20> i hate jargon
10:21:12 <itidus20> eh, i mean, notations and jargons
10:24:00 <itidus20> it brings me to a crushing halt reading a mathematical wikipedia article
10:24:02 <itidus20> http://en.wikipedia.org/wiki/Rewriting_system#Abstract_rewriting_systems @ "is the transitive closure of , where is the identity relation, i.e. is the smallest preorder (reflexive and transitive relation) containing . It is also called the reflexive transitive closure of ."
10:25:44 <itidus20> I suppose the logical way to go forward is to examine exactly which terms i cannot understand
10:29:41 <itidus20> and moving on
10:34:46 -!- oerjan has joined.
10:49:31 <oerjan> <itidus20> it brings me to a crushing halt reading a mathematical wikipedia article
10:49:48 <itidus20> lol
10:49:50 <oerjan> sometimes those are ridiculous even when you _do_ know math
10:50:08 <itidus20> i exaggerated a bit. and typed out the answer :D
10:50:18 <oerjan> ok
10:50:30 <itidus20> but seriously it appears the way to proceed is to list the unknown terms
10:50:41 <itidus20> and to research them
10:50:56 <itidus20> sounds like something i was probably told in school
10:51:43 <oerjan> mhm
11:01:46 <coppro> lol
11:01:47 -!- Patashu has joined.
11:01:56 <coppro> I love terminology
11:02:01 <coppro> it lets us say complex things quickly
11:02:04 -!- Taneb has joined.
11:02:08 <coppro> transitive closure especially
11:02:12 <coppro> whoever made that up is a genius
11:02:17 <Taneb> Hello
11:02:54 <Taneb> Transitive closure?
11:03:37 <coppro> yes
11:05:28 <oerjan> does anyone know of a way of testing whether a number is even or odd in just 3 cells of bf. basically turning n,0,0 -> n, n%2, 0 or something similar which can be used to decide whether to quit a loop
11:05:35 <oerjan> *?
11:06:14 <oerjan> (basically, i'm having trouble getting my fractran encoding to _halt_ :P)
11:07:37 * oerjan checks [[Brainfuck algorithms]]
11:07:58 <coppro> the body's healing process is insane
11:08:14 <coppro> in 3 cells? no
11:08:49 <NihilistDandy> Do they not teach the Trivium, anymore?
11:09:48 <coppro> oerjan: wait do you mean 3 cells on a tape?
11:09:56 <oerjan> yes
11:10:06 <coppro> ah
11:10:07 <coppro> hmm
11:10:25 <itidus20> Dandy: there is no teacher:>
11:10:56 <coppro> I can do an evenness test in 5.. hmm
11:11:23 <oerjan> oh i'm pretty sure i could do it in 4 :P
11:11:32 <oerjan> but that's no fun :(
11:11:43 <coppro> ooh actually I can do it in 3
11:11:49 <NihilistDandy> itidus20: Le sigh
11:11:51 <coppro> n,n,0->n,n-1,0
11:12:09 <oerjan> it's important not to lose the n itself, at least if it's odd
11:12:15 <coppro> oh
11:12:27 <coppro> actually can still do it
11:12:32 <coppro> n,n,0->n,n,n-1
11:12:40 <oerjan> preferably in any case
11:12:45 -!- itidus21 has joined.
11:13:31 <coppro> alternately subtract two from the second and third cells
11:13:53 <oerjan> i don't understand what you mean
11:14:09 <coppro> n,n,0->n,n,n-1->n,n-2.n-1 etc.
11:14:37 <oerjan> i don't see how to achieve n,n,n-1 btw
11:14:53 <coppro> oh right..
11:15:00 <coppro> hmmm
11:15:07 -!- itidus20 has quit (Ping timeout: 258 seconds).
11:16:08 -!- itidus21 has changed nick to itidus20.
11:16:34 <coppro> oh easy
11:16:43 <coppro> n,0,0->n,n,0
11:17:09 <oerjan> yes that's ok
11:17:24 <coppro> then until the second cell is 0, subtract one from the second cell and if (the third cell is 0) then (add 2 to the third cell) then subtract 1 from the third cell
11:17:42 <coppro> you get n,0,n%2
11:18:03 <coppro> you can apply this generally to take arbitrary modulus
11:18:35 <oerjan> um that "if (the third cell is 0)" kind of thing is actually a stopping point
11:18:57 <coppro> do it backwards then
11:19:09 <coppro> if (the third cell is not 0) then (subtract 2 from it) then add 1 to it
11:19:22 <coppro> although that works only for base 2
11:19:42 <oerjan> it's not base 2, it's unbounded
11:19:56 <coppro> I mean taking %2
11:20:00 <coppro> hmm...
11:20:01 <oerjan> and i'm trying to avoid negatives
11:20:15 <coppro> why?
11:20:45 <coppro> that seems arbitrary
11:20:54 <oerjan> so it's a direct improvement on the previous 5 cell algorithm, which i don't think needs them
11:21:02 <coppro> dude
11:21:08 <coppro> using negatives is not a flaw
11:21:49 <oerjan> in any case i'm not sure your method works even with negatives.
11:22:07 <oerjan> recall we don't _have_ "if" as a primitive.
11:22:49 <Taneb> Do you need to preserve the number?
11:22:51 <oerjan> it has to be done with loops, and it's awkward to fit things in just 3 cells
11:23:01 <oerjan> Taneb: yes. at least if it's odd.
11:23:14 <oerjan> preferably always, since it would be the final program result.
11:23:35 <Taneb> Hmmm
11:23:49 -!- nooga has quit (Ping timeout: 258 seconds).
11:24:23 <coppro> oerjan: given my pointer at n
11:25:19 <coppro> >[-]>[-]<<[->+>+<<]>>[-<<+>>]<[->[--]+<]
11:25:37 <coppro> leaves me pointing at the 0 in n,0,n%2
11:26:13 <oerjan> yay
11:26:48 <coppro> you can shorten it a bit
11:26:48 <oerjan> ok it's 0,n,*n before the [-<<+>>]<[->[--]+<] right
11:26:58 <coppro> yeah
11:27:11 <coppro> the first block just moves you to *n,n,0
11:27:42 <coppro> the second block flips the third cell from 0 to -1 as you decrement the second
11:27:43 <oerjan> oh and actually n,*n,0 before the [->[--]+<]
11:27:52 <coppro> yeah
11:28:16 <oerjan> coppro: i can do moving things around myself ;P
11:28:26 <coppro> I know
11:28:33 <Taneb> [->+>+<<]>+[>[--<--<++>>]<][<->]+ could work, haven't checked it
11:28:39 <coppro> the last block is the only one actually involved in the calculation
11:28:54 <oerjan> coppro: erm [->[--]+<] doesn't halt if n is odd
11:29:07 <coppro> oerjan: what are you talking about
11:29:14 <oerjan> oh wait duh
11:29:20 <coppro> oh wait...
11:29:23 <coppro> no I got that wrong
11:29:37 <coppro> hmm
11:29:44 <coppro> this would be easy if I had another 0 to work with
11:29:47 <oerjan> i misinterpreted, but is still expect that [--] to sometimes not halt
11:29:50 <coppro> yeah
11:29:51 <oerjan> coppro: you don't say :P
11:30:03 <oerjan> *i
11:30:03 <fizzie> oerjan: Do you need a finite-length program too?
11:30:26 <oerjan> fizzie: yes...
11:30:35 <coppro> oerjan: I take it relying on wraparound is bad?
11:30:49 <oerjan> very bad, unboundedness is essential here
11:31:15 <oerjan> it's supposed to a proof bf is TC with just 3 unbounded cells
11:31:25 <coppro> ah
11:31:28 <oerjan> *be a
11:31:37 <NihilistDandy> I was just about to ask for context, then I got it
11:33:24 <coppro> oerjan: I'm going to bed but will think about it
11:33:35 <oerjan> thanks
11:35:54 <coppro> wait changed my mind I have it
11:36:02 <coppro> given *n,0,0
11:36:10 <oerjan> Taneb: that [<->] looks rather unlikely, it'll either infloop or do nothing
11:37:38 <coppro> [->+<[->>+<<]] >> [-<-<+>>] < [-<+>>+<] >
11:37:48 <coppro> gives you n,0,*n%2
11:37:48 <oerjan> Taneb: i think your main loop also infloops if n is odd
11:38:02 <coppro> first block gives you 0,n/2+1,n/2
11:38:15 <coppro> second block gives you n-n%2,n%2,0
11:38:29 <coppro> third block gives you n,0,n%2
11:38:35 <oerjan> erm n/2 as in integer division?
11:38:37 <coppro> yeah
11:38:46 <coppro> wait fuck no
11:38:48 <coppro> fffff
11:38:48 <oerjan> wouldn't that rather _obliterate_ whether n is even or odd
11:38:59 <coppro> damn you brainfuck
11:39:16 <coppro> nvm
11:39:19 <oerjan> glad to see you are getting the genuine fucked experience :P
11:39:19 <coppro> back to bed
11:39:29 <coppro> lol
11:39:41 <Taneb> This should be simple.
11:39:45 <Taneb> Why isn't this simple.
11:40:08 <coppro> oerjan: /win 7
11:40:11 <coppro> err
11:40:13 <coppro> something
11:40:22 <coppro> k actually going back to bed this time
11:40:39 <oerjan> i'm afraid i don't have that window, coppro. unless it's some secret i haven't heard about.
11:41:16 <oerjan> although i have frequently wondered why irssi always makes an empty /win 3
11:45:19 <quintopia> Patashu: those dont look much like trees to me. you should check ou the spectrum of hildegard westerkamp's "beneath the forest floor" for a real image of a forest. it's so uncanny, it's surely intentional.
11:46:03 <oerjan> Taneb: in fact i made that odd/even distinction in the first place to manage to get an extra bit of "are we finished yet" information out of each applied fractran rule. the problem now is just actually extracting that information again on the top level loop...
11:46:28 <quintopia> oerjan: sounds like you saved a layout with a window open to a channel on a net you don't connect to. do another /layout save and it probably won't anymore.
11:47:12 <oerjan> quintopia: i haven't visited non-freenode for years, if ever :P
11:47:38 <oerjan> but let's try it anyhow
11:47:46 <Taneb> I'm going to think about this differently
11:48:02 <Taneb> We have three variables, a, b, and c
11:48:25 <Taneb> We can add or subtract a constant from any of these variable
11:48:35 <oerjan> Taneb: probably a good idea
11:48:50 <Taneb> And we can start a loop that loops while a variable is not 0
11:49:25 <oerjan> and that same variable must be 0 when we end (i don't think there's enough room to do unbalanced loops usefully)
11:49:57 <Taneb> Yes
11:50:28 <Taneb> variable a is equal to an arbitary number, b and c are zero
11:50:46 <Taneb> Call the number initially in a n
11:51:04 <Taneb> What we want is one variable to hold n, and another to hold n%2
11:51:21 <oerjan> or well, let's not exclude unbalanced loops completely. the problem would be finding out where you are afterwards.
11:51:28 -!- boily has joined.
11:51:35 <quintopia> wb boily
11:57:59 <quintopia> taneb: is your goal to determine if a value is even or odd?
11:58:32 <Taneb> Yes
11:58:41 <Taneb> In three cells in brainfuck
12:00:08 <quintopia> do you know its possible?
12:00:12 <Taneb> No
12:00:22 <Taneb> It is with 5 cels
12:00:25 <Taneb> *cells
12:00:37 <quintopia> the only method i could think of needs four
12:00:54 <Taneb> oerjan
12:00:55 <Taneb> ?
12:01:14 <Taneb> Four would be easy
12:01:43 <Patashu> I can think of a way of doing it in four cells too
12:01:56 <quintopia> its a good problem
12:02:30 <Patashu> n,0,0,0. add 2 to b and 1 to c and after each addition check to see which one equals a using d
12:02:35 <Patashu> hmm, not sure if that translates into bf
12:03:41 -!- FireyFly has changed nick to FireFly.
12:11:49 <coppro> ok I think I have an idea
12:13:21 -!- PatashuPikachuRe has joined.
12:14:29 -!- Patashu has quit (Ping timeout: 252 seconds).
12:17:32 -!- itidus20 has quit (Ping timeout: 255 seconds).
12:23:03 <oerjan> Taneb: yes i believe 4 should be easy. (basically there is then room to include an extra bit of information from the loop i'm using for each fractran rule. although there may be an even simpler way.)
12:25:52 <oerjan> PatashuPikachuRe: the thing is translating to bf frequently means adding an extra cell for flow control...
12:28:27 <oerjan> oops now i'm wondering if _that_ is working again. oh well.
12:31:35 <coppro> ok so I have what appears to be a solution
12:34:25 <coppro> .. dammmmmmmmit
12:34:31 <PatashuPikachuRe> yeah it's tricky it's like, one scratch cell per conditional deep you go
12:34:37 <PatashuPikachuRe> where conditional includes things like moving
12:35:21 <coppro> wait no this is right
12:36:18 <coppro> hrm k so loops that don't evenly affect the IP hurt my mind
12:36:44 -!- derrik has joined.
12:36:53 <oerjan> yes, also they're hard to use here
12:37:12 <oerjan> but then maybe it could be essential
12:40:43 <coppro> pretty sure it can be done with them
12:40:55 <coppro> just need to figure out how to recenter
12:41:04 * coppro turns on light and pulls out whiteboard
12:42:53 <oerjan> well trouble is if you have two cells that need to have an essentially arbitrary value, and the zero you left the loop through, then it seems very hard to check where you are. only if there are two zero cells does it seem reasonable, but can you use that case..
12:43:10 <coppro> ok I see how to do it
12:43:23 <coppro> I will pseudocode because I need to be up in a few hours
12:44:26 * NihilistDandy is on the edge of his seat
12:44:32 <coppro> basically you have an input stack and an output stack
12:44:45 <coppro> let n be the input stack and m be the output stack
12:45:33 <Taneb> I've just had a rather stupid idea
12:45:54 <coppro> wait fuck thta gives no termination codition
12:46:13 <coppro> still I think what you really want to rely on is the position of the stacks
12:46:30 <oerjan> stack of unaries?
12:46:37 <coppro> yeah
12:46:41 <coppro> rather than using value
12:48:24 <oerjan> the thing is, afaict you cannot actually check the position if both "stacks" are filled (i.e. two cells both have arbitrarily large values)
12:50:54 <oerjan> after the end of a loop, you will have either *0,m,n; m,*0,n; or m,n,*0; and neither pair of these can be distinguished
12:51:37 <coppro> what I'm envisioning is [ (move 1 from n to m) [ (move 1 from n to m and something else) ] (something) ]
12:52:31 <oerjan> coppro: that's essentially the idea i am trying to use for the _inner_ fractran loops. i just cannot see a way to get the information out of the loop...
12:52:40 <coppro> fractran loop?
12:53:03 <oerjan> um yes, the idea is to convert fractran to brainfuck
12:53:53 <oerjan> i should write that part down properly
12:56:01 <derrik> how do you write down properly "the idea is to convert fractran to brainfuck"
12:56:04 <derrik> ?
12:56:46 <oerjan> i mean the inner loop structure for that, which i thought i had clear enough idea of but i'm suddenly unsure.
13:00:52 <coppro> got it
13:01:05 <coppro> start with *n,0,m
13:01:16 <coppro> go to *n-1,0,m+1
13:02:06 <coppro> now do a if n-1 is nonzero, you go to m,*0,n-1
13:02:44 <coppro> wait I had it backwards the IP doesn't work that way
13:02:47 <coppro> fff
13:03:14 <oerjan> is this loop supposed to be unbalanced?
13:03:19 <coppro> yeah
13:03:22 <coppro> probably
13:03:36 <coppro> but not necessarily
13:03:37 <oerjan> well looks possible so far
13:04:04 <oerjan> you are either at *0,0,m+1 or m,*0,n-1
13:04:05 <coppro> wait yes you can do this
13:04:07 <coppro> right
13:04:26 <coppro> now go to 0,*0,m+1 or m,0,*n-1
13:04:33 <coppro> and if the cell pointed to is nonzero, move left
13:04:51 <oerjan> right that synchronizes
13:04:55 <coppro> err sorry replace m,*0,n-1 with m+2,*0,n-1
13:04:59 <Taneb> Anyway, my stupid idea was a programming language that spews brainfuck code and immediately interprets it.
13:05:25 <Taneb> This allows for infinite-length programs
13:05:38 <coppro> hmm wait this has the same problem an earlier idea did in that you can't tell when you're done the loop
13:06:17 <coppro> unless, hmm
13:07:06 <coppro> if you then go right and subtract one, you have 0,0,*m or m+2,0,*n-2
13:07:49 <coppro> where n-2 might be zero
13:08:04 <coppro> but you want to end the loop if that or the far left cell is 0
13:08:57 -!- ais523 has joined.
13:09:32 <coppro> aha there's a way and I'm actually sure this time
13:10:22 <coppro> start at 0,m,n. Go to *n-1,m+1,0 and branch
13:10:49 <coppro> if you took the branch, go to *0,m+2,n-2
13:11:09 <oerjan> ok, that's still balanced
13:11:50 <coppro> add one to each cell
13:11:59 <oerjan> all of them?
13:12:18 <coppro> err don't
13:12:26 <coppro> instead, go right one cell. if nonzero go right again
13:13:02 <oerjan> i think that runs off the tape
13:13:21 <coppro> oh damn
13:13:24 <coppro> damndamndamn
13:13:32 <coppro> fucking brainfuck
13:13:56 <coppro> I wonder if you can shift columns to get that algorithm anyway?
13:14:26 <ais523> you know, I think I'm going to not delete http://esoteric.voxelperfect.net/wiki/User:Icornellhoffmane until elliott gets a chance to see it
13:14:35 <ais523> especially because it looks like a parody of spam rather than actual spam
13:14:57 -!- copumpkin has quit (Ping timeout: 264 seconds).
13:15:01 * oerjan realizes ais523 said "not"
13:15:36 -!- copumpkin has joined.
13:17:42 <PatashuPikachuRe> what's the behaviour of brainfuck if you run off the edge of the tape?
13:17:48 <PatashuPikachuRe> segfault? loop? ignore?
13:17:59 -!- ais523 has quit (Read error: Connection reset by peer).
13:18:13 <coppro> aha
13:18:50 <Taneb> implementation dependant
13:18:57 <oerjan> PatashuPikachuRe: i'm pretty sure all of those options will have been tried
13:19:10 <PatashuPikachuRe> figures it's undefined behavior
13:21:15 -!- ais523 has joined.
13:21:27 <ais523> <ais523> off the left edge, it should crash
13:21:30 <ais523> you can't go off the rightedge
13:21:33 <ais523> *right edge
13:21:35 <ais523> because there isn't one
13:22:25 <coppro> from *0,m+2,n-2 and *0,0,m+1 go right, if nonzero then swap the first two columns and then swap the right two columns
13:22:36 <coppro> err
13:22:39 <coppro> swap is a bad term
13:22:43 <oerjan> ais523: original bf had a 30k or so limit
13:22:44 <coppro> move each column left
13:22:51 <coppro> this is fine because the left column is 0
13:22:54 <ais523> oerjan: that was a bug
13:23:20 <oerjan> in any case _this_ problem has tape length 3, and don't you dare leave it.
13:25:42 <fizzie> ais523: What are you basing that assessment on? The original brainfuck-2.lha:README file says "The 30000 array elements".
13:26:20 <coppro> ahaha wait
13:26:27 <coppro> I fail
13:26:33 <coppro> I figured out how to loop only if you got to 0
13:26:43 <coppro> useful but wrong
13:26:51 <ais523> fizzie: I think the spec has mutated over time
13:26:58 <ais523> making the original interp retroactively buggy
13:27:27 <coppro> oerjan: are you in need of a negation operator? :P
13:27:44 <oerjan> coppro: wat
13:27:54 <fizzie> ais523: "Who died and made you a spec-maker?" (IOW, if there's no de jure or de facto standard, I don't see how you'd get to arbitrarily pick one.)
13:29:35 <ais523> fizzie: hmm
13:29:45 <ais523> doesn't more or less every article on BF say that it's Turing-complete?
13:29:49 <coppro> oerjan: I can make it loop if one, but not two, columns are nonzero
13:29:53 <ais523> I think it's that that retroactively changed the spec
13:30:25 <fizzie> ais523: That doesn't mean it unambiguously changes the spec to have an unbounded tape; it could as easily retroactively change it to have unbounded cells instead.
13:30:34 <oerjan> coppro: i'm afraid the reverse would be more impressive
13:30:37 <ais523> fizzie: I suppose so
13:30:42 <oerjan> oh wait
13:30:51 <ais523> majority vote of implementations gives it 8-bit cells, at least
13:30:53 <oerjan> coppro: misread you. hm, interesting...
13:30:57 <ais523> although I'm aware that that's not completely standard
13:31:11 <fizzie> "The brainfuck language uses a simple machine model consisting of the program and instruction pointer, as well as an array of at least 30,000 byte cells initialized to zero; --" <-- wikipedia, the final arbitrator of truth and justice.
13:31:41 <oerjan> coppro: that would indeed make things easier.
13:32:10 <fizzie> (Aways.)
13:32:35 * ais523 originally misparsed that as a typo for "always"
13:32:57 <oerjan> ais523: um it wasn't?
13:33:06 -!- Tritonio has joined.
13:33:14 <ais523> oerjan: I think it's more likely to mean "I am away, at least for a while"
13:35:46 <oerjan> ais523: anyway you're welcome to try to implement n,0,0 -> n,0,n%2 in 3-cell unbounded bf as well :P
13:36:50 <ais523> heh
13:37:05 <ais523> for %2 in gcc-bf, I just multiply by 128, then check zeroness
13:37:12 <ais523> bu that requires 8-bit bounded cells
13:37:55 <oerjan> sorry, no can do
13:39:05 <ais523> you can use repeated negation with unbounded cells, but I'm not sure if three cells is enough
13:39:44 <oerjan> hm i got an idea, what if you calculated n/2 first...
13:40:08 <oerjan> then you can get n,0,(n/2)*2
13:41:07 <oerjan> actually scratch that, you can directly get n%2,n/2,0
13:41:44 <ais523> and you don't need a temporary to swap a cell with a known zero cell in BF (although you need to know its sign in unbounded BF, as always)
13:41:54 <oerjan> and from that i think you can get to n,0,n%2
13:42:24 <oerjan> ais523: well i'm assuming nonnegative so far
13:42:32 <ais523> are you trying to do a Minsky machine with three cells?
13:42:39 <ais523> I've just realised what the conversation's probably about
13:43:04 <oerjan> fractran, actually, which is just a simplified version of that 1-register division machine that's mentioned on the Minsky machine page
13:43:47 <oerjan> (and which is afaiu part of the proof that minsky machines only need 2 registers)
13:44:56 <oerjan> basically to get from the 1-register minsky machine to bf you want to include the machine state in the register, and suddenly you're _very_ close to fractran.
13:45:50 <oerjan> *-minsky, although it was probably invented by minsky
13:46:54 <ais523> can't you just use the BF IP to record the machine state?
13:47:24 <oerjan> maybe but the fractran control flow is so much easier :P
13:48:34 <ais523> I suppose that given that you need mod-2 and mod-3 already, mod-other-primes is probably not too difficult
13:50:44 -!- itidus20 has joined.
13:51:31 <oerjan> note that assuming my ideas work, the actual fractran rules _don't_ need to put the mod in a cell, keeping track of _that_ is handled by BF IP. but there is this little snag at the end of the program, where the test _does_ need to be put in a cell so that the main loop can test it to exit. that one needs only a mod 2 test, not general primes. at least that's my idea and why i asked the channel.
13:54:25 <oerjan> i guess my real question is "how do you exit a loop only when a cell n is even, without clobbering it if it isn't?" but i think that's pretty much equivalent to calculating n%2 anyway.
13:55:56 <quintopia> just solved the 3-cell parity problem. took long enough :/
13:56:05 <oerjan> hey!
13:56:40 <quintopia> i wont spoil. dont have time to right now.
13:57:17 <oerjan> ah. i have to leave in a moment myself anyhow.
13:58:52 -!- oerjan has quit (Quit: Later).
14:01:41 -!- MSleep has changed nick to MDude.
14:05:52 -!- Patashu has joined.
14:07:29 -!- PatashuPikachuRe has quit (Ping timeout: 260 seconds).
14:13:06 -!- Phantom_Hoover has quit (Ping timeout: 250 seconds).
14:13:53 -!- BeholdMyGlory has joined.
14:14:05 -!- Tritonio has quit (Quit: Leaving).
14:18:09 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
14:25:36 -!- Phantom_Hoover has joined.
14:28:30 -!- lament has joined.
14:35:53 -!- lament has quit (Ping timeout: 246 seconds).
14:44:33 -!- copumpkin has joined.
14:56:16 <Sgeo> http://www.mspaforums.com/showthread.php?41081-CARCINOgeneticist-More-like...-oh-wait.&p=5406631&viewfull=1#post5406631 *facepalm* (Homestuck spoilers)
15:01:47 -!- ttm_ has quit (Ping timeout: 276 seconds).
15:05:23 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
15:05:35 -!- ais523 has quit (Remote host closed the connection).
15:07:38 -!- lament has joined.
15:08:59 -!- Taneb has quit (Ping timeout: 255 seconds).
15:09:00 -!- cheater__ has quit (Ping timeout: 255 seconds).
15:09:35 -!- cheater__ has joined.
15:10:57 -!- Phantom_Hoover has joined.
15:15:54 -!- cheater__ has quit (Excess Flood).
15:16:17 -!- cheater__ has joined.
15:17:31 -!- GameOverR has joined.
15:18:26 -!- GameOverR has left.
15:19:12 -!- cheater__ has quit (Excess Flood).
15:21:58 -!- EgoBot has quit (Remote host closed the connection).
15:22:00 -!- HackEgo has quit (Remote host closed the connection).
15:22:10 -!- EgoBot has joined.
15:22:10 -!- HackEgo has joined.
15:22:32 -!- cheater__ has joined.
15:25:36 -!- cheater__ has quit (Excess Flood).
15:30:29 -!- cheater__ has joined.
15:30:29 -!- cheater__ has quit (Excess Flood).
15:30:53 -!- cheater__ has joined.
15:36:26 -!- cheater__ has quit (Ping timeout: 255 seconds).
15:41:32 -!- azaq23 has joined.
15:55:49 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 .).
16:08:19 -!- ais523 has joined.
16:09:54 -!- lament has quit (Ping timeout: 252 seconds).
16:13:14 -!- iamcal has quit (Ping timeout: 258 seconds).
16:13:33 -!- jix_ has quit (Ping timeout: 252 seconds).
16:14:11 -!- jix has joined.
16:14:19 -!- Nisstyre has quit (Ping timeout: 252 seconds).
16:18:48 -!- cheater has joined.
16:27:52 -!- iamcal has joined.
16:32:54 -!- iamcal has quit (Ping timeout: 260 seconds).
16:44:23 -!- Sgeo_ has joined.
16:44:32 -!- Sgeo_ has quit (Read error: Connection reset by peer).
16:45:07 -!- iamcal has joined.
16:59:54 -!- zzo38 has joined.
17:04:24 -!- Nisstyre has joined.
17:15:21 <tswett> Mikä.
17:17:19 <tswett> Mikä on mikä?
17:31:30 <fizzie> Mika on Häkkinen.
17:31:53 <tswett> Ah.
17:32:12 <tswett> Mikä on "ne panee koiriaan ihan oikeasti"?
17:32:21 <fizzie> "They're really fucking their dogs."
17:32:34 <tswett> I see. What sort of word is "koiriaan"?
17:33:20 <tswett> Oh, it's "koiria -an", isn't it.
17:33:26 -!- CakeProphet has quit (Ping timeout: 276 seconds).
17:33:58 <fizzie> Well, "koira" is the nominative case for "dog".
17:34:40 -!- Taneb has joined.
17:34:53 <Taneb> Hello
17:35:04 -!- Gregor has quit (Excess Flood).
17:35:10 -!- Gregor has joined.
17:35:36 -!- Gregor has changed nick to Guest47670.
17:36:16 <fizzie> I think it possibly should be "koiriansa" in formal written text, and what you have there is a bit of a colloquialism maybe. Since "their dogs" would be "heidän koiransa", and then, uh, is it the partitive case? I just speak the language, sorry.
17:38:05 <Taneb> What, ...Klingon?
17:38:11 <fizzie> Finnish.
17:38:25 -!- zzo38 has quit (Remote host closed the connection).
17:38:51 -!- Guest47670 has changed nick to Gregor.
17:39:02 <fizzie> Ah, there it is: http://en.wiktionary.org/wiki/-an#Usage_notes "(third-person possessive suffix variant): When the third-person suffix -nsa is appended to non-nominative noun forms that end in a single -a (those that are in singular and plural inessive, elative, adessive, ablative, essive and abessive and plural partitive and singular partitive ending with -ta), the S and A are very often omitted from the suffix and the last A of the case suffix preceding the r
17:39:02 <fizzie> emaining N is doubled — resulting in this -an. In standard Finnish, both the "full" form and the shortened form are acceptable (cf. -nsä). This same omission takes very often place also in the nominal verb forms used in shortened sentences (see the meanings of -nsa) and in the adverbs requiring this suffix:"
17:39:18 <fizzie> They even use the dog example.
17:41:41 <fizzie> So "koiriansa -> koiriaan" and it's the third-person possessive-suffixed partitive case. I couldn't really even begin to explain why nominative -> partitive in this case goes "koiransa" -> "koiriansa" when normally the partitive suffix is -(t)a. (E.g. "koira" -> "koiraa" in the simplest case.)
17:46:52 <tswett> Could you begin to explain why the partitive plural is "koiria"? :P
17:48:24 <tswett> But, yes. Then I guess "ihan oikeasti" is just an intensifier.
17:48:39 <fizzie> Yes, it's pretty much like "-- for real".
17:49:11 <tswett> If you wanted to ask that phrase, would it be "ihan oikeastiko"?
17:49:26 <fizzie> You could ask that, yes.
17:49:58 <fizzie> You could even just ask "oikeesti?" with the suitable intonation when speaking.
17:50:40 <tswett> If you just asked "ko?", I suppose people would suspect that you're asking whether the ko rule applies.
17:51:20 <fizzie> I'm not sure what I'd suspect; it would be a bit weird thing to say. Maybe that.
17:51:35 <Taneb> What would make the perfect programming language, in your eyes?
17:52:14 <tswett> Taneb: having all necessary features and lacking all unnecessary features.
17:53:55 <tswett> It should have a static typing system that's really fucking expressive.
17:54:50 <tswett> Vitun expressive ihan oikeasti.
17:57:13 <Taneb> Define expressive?
17:58:22 <tswett> Well, it should be able to define types such as "valid strategy for playing Euchre".
17:58:57 <tswett> Which is, I suppose, a function taking a Euchre situation and returning an action valid in that situation.
18:00:46 <tswett> Speaking of which, I think there's really one feature an "esoteric API" ought to have: the ability to dynamically link libraries.
18:06:22 <tswett> Though I wonder, how much information does a dynamic library usually contain about the functions within it? Is it just a list of addresses, or do you also know the calling convention and number of arguments?
18:07:28 <fizzie> On Windows, where multiple calling conventions are common, the names are mangled differently based on the convention.
18:07:32 <pikhq_> tswett: It's just addresses.
18:08:13 <tswett> Neat.
18:08:21 <fizzie> So you could do some deducing based on the mangling type. But mostly it's just symbols-to-addresses.
18:08:41 <pikhq_> You can also deduce whether something is a function or data.
18:09:58 <fizzie> I don't know if any debugging info formats include much metadata. Source locations and all that, at least.
18:11:13 <tswett> I guess dynamically linking libraries is not really enough; you must also be able to call the functions in the libraries you just linked.
18:12:20 <tswett> That could be mostly left up to the esoteric program itself, and you could just have API functions like "stick this stuff into these registers, push that stuff onto the stack, and call him".
18:13:10 <pikhq_> fizzie: Those generally *do* include type metadata.
18:13:18 -!- TeruFSX has joined.
18:13:28 <pikhq_> Part of why debugging symbols take quite a bit of space.
18:13:45 <fizzie> The Windows name mangling for stdcall functions also include the number of argument bytes the function pops off the stack, possibly because that's one calling convention which breaks really badly if the caller and callee disagree about the number of arguments.
18:19:28 -!- ais523_ has joined.
18:19:49 -!- ais523 has quit (Disconnected by services).
18:19:51 -!- ais523_ has changed nick to ais523.
18:19:54 -!- TeruFSX has quit (Read error: Connection reset by peer).
18:20:00 -!- TeruFSX has joined.
18:29:13 -!- pumpkin has joined.
18:32:11 -!- copumpkin has quit (Ping timeout: 240 seconds).
18:39:16 <Lymee> !show test
18:39:17 <EgoBot> That is not a user interpreter!
18:39:22 <Lymee> !show sanetemp
18:39:23 <EgoBot> sh dc -e "1k?32-5*9/p"
18:39:25 <Lymee> !show insanetemp
18:39:25 <EgoBot> sh dc -e "1k?9*5/32+p"
18:39:34 <Lymee> !show nop
18:39:35 <EgoBot> That is not a user interpreter!
18:39:51 <Lymee> !addinterp sanetemp cat
18:39:51 <EgoBot> ​There is already an interpreter for sanetemp!
18:39:52 <Sgeo> !sanetemp 5
18:39:53 <EgoBot> ​-15.0
18:39:54 * Lymee runs
18:40:10 <Sgeo> !sanetemp -40
18:40:10 <EgoBot> dc: stack empty
18:40:22 <Sgeo> ...
18:40:26 <Sgeo> !sanetemp 100
18:40:27 <EgoBot> 37.7
18:40:39 <Sgeo> !insanetemp 0
18:40:40 <EgoBot> 32.0
18:40:58 <Lymee> !sanetemp 100000000000000000000000000
18:40:59 <EgoBot> 55555555555555555555555537.7
18:41:07 <Lymee> That is not a sane tempature. You lie.
18:41:17 <Lymee> !sanetemp 20
18:41:17 <EgoBot> ​-6.6
18:41:20 <Lymee> !sanetemp 30
18:41:20 <EgoBot> ​-1.1
18:43:48 <Lymee> !delinterp sanetemp
18:43:48 <EgoBot> ​Interpreter sanetemp deleted.
18:44:06 <Lymee> !addinterp sanetemp "1k?9*5/459-p"
18:44:06 <EgoBot> ​Interpreter _1k_9_5_459_p_ does not exist!
18:44:15 <Lymee> !addinterp sanetemp sh dc -e "1k?9*5/459-p"
18:44:15 <EgoBot> ​Interpreter sanetemp installed.
18:44:31 <Lymee> !sanetemp 104
18:44:32 <EgoBot> ​-271.8
18:44:49 <Lymee> !delinterp sanetemp
18:44:49 <EgoBot> ​Interpreter sanetemp deleted.
18:45:37 <Lymee> !addinterp sanetemp sh dc -e "1k?9*5/459 67 100/++p"
18:45:38 <EgoBot> ​Interpreter sanetemp installed.
18:45:47 <Lymee> !sanetemp 104
18:45:47 <EgoBot> 646.8
18:46:03 -!- pumpkin has changed nick to copumpkin.
18:46:07 <Lymee> !delinterp sanetemp
18:46:07 <EgoBot> ​Interpreter sanetemp deleted.
18:46:13 <Lymee> !addinterp sanetemp sh dc -e "1k?9*5/459.67+p"
18:46:13 <EgoBot> ​Interpreter sanetemp installed.
18:46:16 <Lymee> !sanetemp 104
18:46:17 <EgoBot> 646.87
18:46:20 <Sgeo> !sanetemp -40
18:46:21 <EgoBot> dc: stack empty
18:46:26 <fizzie> That "?" is going to have trouble with negative numbers
18:46:27 <Sgeo> !sanetemp _40
18:46:28 <EgoBot> 387.67
18:46:49 <Sgeo> !insanetemp 387.67
18:46:49 <EgoBot> 729.8
18:47:03 <Lymee> !delinterp sanetemp
18:47:03 <EgoBot> ​Interpreter sanetemp deleted.
18:47:04 <Lymee> !addinterp sanetemp sh dc -e "1k?459.67-5*9/p"
18:47:04 <EgoBot> ​Interpreter sanetemp installed.
18:47:06 <Lymee> !sanetemp 104
18:47:07 <EgoBot> ​-197.5
18:47:10 <Lymee> What.
18:47:14 * Sgeo knows nothing about dc
18:47:18 <Lymee> !delinterp sanetemp
18:47:18 <EgoBot> ​Interpreter sanetemp deleted.
18:47:20 <Lymee> !addinterp sanetemp sh dc -e "1k?459.67+5*9/p"
18:47:20 <EgoBot> ​Interpreter sanetemp installed.
18:47:22 <Lymee> !sanetemp 104
18:47:22 <EgoBot> 313.1
18:56:13 <Gregor> EgoBot responds to PM y'know
18:56:46 <Phantom_Hoover> <EgoBot> dc: stack empty
18:56:46 <Phantom_Hoover> <Sgeo> ...
18:56:57 <Phantom_Hoover> !sanetemp 40_
18:56:57 <EgoBot> 255.3
18:57:24 <Phantom_Hoover> Oh, right.
18:57:26 <Phantom_Hoover> Stupid dc.
19:03:40 -!- oerjan has joined.
19:08:18 -!- monqy has joined.
19:13:56 <Taneb> `addquote <Taneb> Well, I'm now experimenting with clients
19:13:58 <HackEgo> 558) <Taneb> Well, I'm now experimenting with clients
19:14:06 <Taneb> Did that wrong
19:14:11 <Taneb> How do I remove that?
19:14:40 <monqy> try `delquote, if it works
19:14:41 <Taneb> `delquote 558
19:14:43 <HackEgo> ​*poof*
19:14:49 <monqy> `quote 558
19:14:51 <HackEgo> No output.
19:15:32 <Taneb> `addquote <Taneb> Well, I'm now experimenting with clients <fizzie> It doesn't sound like good PR to say that out loud.
19:15:34 <HackEgo> 558) <Taneb> Well, I'm now experimenting with clients <fizzie> It doesn't sound like good PR to say that out loud.
19:16:14 <Taneb> That's wht I wanted to do
19:16:35 <fizzie> You ignored the two-space rule elliott religiously holds to.
19:16:44 <fizzie> `delquote 558
19:16:46 <HackEgo> ​*poof*
19:16:47 <fizzie> `addquote <Taneb> Well, I'm now experimenting with clients <fizzie> It doesn't sound like good PR to say that out loud.
19:16:48 <HackEgo> 558) <Taneb> Well, I'm now experimenting with clients <fizzie> It doesn't sound like good PR to say that out loud.
19:17:01 -!- pumpkin has joined.
19:17:13 <Taneb> Those people from Hexham are weird
19:17:23 <Taneb> I know this from personal experience
19:17:53 -!- derrik has left.
19:18:37 <ais523> hmm, so I bought the Humble Bundle (#2 and #3), and Amazon needed nothing but the credit card number and expiry date
19:18:42 <ais523> not even the security code on the back
19:18:44 <ais523> that's sort-of amazing
19:18:52 <Taneb> And sort of creepy
19:19:05 <ais523> yep
19:19:17 <ais523> I thought the whole process of that code was to safeguard electronic transactions
19:19:29 -!- copumpkin has quit (Ping timeout: 252 seconds).
19:19:40 <fizzie> It's Amazon; it's only proper that it behaves in amazing ways.
19:19:47 <ais523> I think they're using the typical bank approach of "get contact details, then if something looks off, refund the charge, if it happens a lot go find someone to sue"
19:20:24 <fizzie> For the record, I bought it too thirteen minutes ago, and Paypal's "add card to your account" thing wanted the security code too, but of course now it's rememberating all the details, which is a bit bad.
19:21:11 <Taneb> It's better than it remembering your personal PIN number that identifies you
19:21:26 <ais523> I avoided Paypal; I reasonably-trust Amazon, in that they're big enough that if they were doing particularly evil things in their payment system then I'd probably have heard about it by now
19:22:11 * Sgeo has a few questions about Sam Hughes's Perl tutorial
19:22:13 <Sgeo> "A hash is merely a list with an even number of elements, where the even-numbered elements (0, 2, ...) are all considered as strings."
19:22:14 -!- pumpkin has changed nick to copumpkin.
19:22:34 <Sgeo> Is that accurate? Sounds inefficient for look-ups etc.
19:22:36 <fizzie> Paypal is, I guess, pretty big too. At least they move a lot of money.
19:22:53 <Sgeo> Oh, hmm, maybe "list" in Perl terms, not as a typical... meh
19:23:15 <Sgeo> "Again, unlike sort, and like grep, this block is NOT a small anonymous subroutine and you do NOT call return inside it"
19:23:20 <ais523> Sgeo: that's a bit inaccurate; an even-length list is the representation of a hash used when you put data into it
19:23:30 <ais523> the hash itself is not ordered, it's just a dictionary
19:23:36 <Sgeo> Isn't that sort of inconsistency the thing that plagues PHP?
19:23:41 <ais523> but there's no such thing as a "hash literal", you use an array literal and it converts
19:24:07 <fizzie> It's also "physically" implemented as a usual-ish hashtable.
19:24:22 <Sgeo> my $scalar = ("Alpha", "Beta", "Gamma", "Pie");
19:24:22 <Sgeo> print $scalar; # "4"
19:24:40 <Sgeo> n/m that one
19:26:00 <Sgeo> Um, that's it for my questions, I think.
19:26:44 <ais523> the weird syntax for things like sort/grep/etc is a historical reason
19:27:02 <ais523> I think they finally sorted that out in Perl 6, and the effort of finally sorting it out means that it still isn't finished
19:27:57 <Phantom_Hoover> Hmm, the SQA exam results are being released.
19:28:10 <Phantom_Hoover> I wonder if they'll remember my address this year.
19:30:59 <Taneb> Silly PH, living in a country some of which is west of me!
19:35:44 <ais523> Taneb: surely it's both east /and/ west
19:36:48 <Taneb> Yeah, but I'm not walking East to get to Scoland
19:36:48 <Taneb> Or Scotland or that matte
19:36:48 <Taneb> r
19:37:02 <Taneb> Actually, I'm not going to walk West either
19:37:25 <Taneb> Unless I want to go to Dumfries
19:40:48 <Taneb> And had no money
19:40:58 <Taneb> Nor the charisma to get a lift
19:41:24 <Taneb> Nor the sauveness required to ge away without paying on a train
19:42:55 <Taneb> So, I'm not going to walk to Dumfries
19:43:10 <Taneb> Even though it's to the east o me
19:43:17 <Taneb> I can't type for some reason
19:50:58 -!- invariable has joined.
19:52:23 -!- variable has quit (Read error: Operation timed out).
20:01:03 <coppro> oerjan: how do you calculate n/2? I scrapped that idea when I realized it's probably not possible
20:01:57 <oerjan> i'm not sure that's possible either, but i think either of n/2 and n%2 gives you the other
20:02:10 <coppro> yeah
20:02:19 <coppro> and as for paypal, if you don't store money in the account, you're fine
20:02:26 <coppro> they aren't actually sketchy on credit card or anything
20:02:41 <coppro> just very trigger-happy and arbitrary when it comes to termination
20:04:06 <oerjan> coppro: that idea for doing something conditionally on ther being _two_ zero cells rather than one, how does that work, if it does?
20:04:10 <oerjan> *there
20:08:23 <Taneb> Trying to introduce a friend of mine Haskell
20:08:36 <Taneb> Realised he doesn't understand algebra
20:08:42 <Taneb> Persevering
20:08:52 <oerjan> Taneb the masochist
20:09:16 <Taneb> Okay, he's refusing to do 2 + 2
20:09:28 <oerjan> Taneb the doomed
20:15:32 <Taneb> Hmm...
20:15:57 <Taneb> Can anyone recommend a programming language to an aspirin actor who's crap at maths?
20:16:04 <oerjan> wait, does he understand any form of programming at all?
20:16:07 <Phantom_Hoover> Shakespeare.
20:16:20 <oerjan> ...what's an aspirin actor
20:16:33 <oerjan> someone who gives you headaches?
20:16:34 <Phantom_Hoover> One who acts in aspirin ads, duh.
20:17:20 <oerjan> incidentally, i've never noted that similarity before. i suppose it must have been intentional branding.
20:17:26 <oerjan> *noticed
20:18:05 <oerjan> is the first i long or short?
20:18:27 <Phantom_Hoover> In 'aspirin'? Short.
20:18:32 <oerjan> or wait, hm...
20:20:01 <Taneb> It's a combination of acetyl and spirsäure
20:20:10 <oerjan> "The new drug, formally acetylsalicylic acid, was named Aspirin by Bayer AG after the old botanical name for meadowsweet, Spiraea ulmaria."
20:21:24 <oerjan> and it was german, so the long vs. short i is irrelevant.
20:25:54 <oerjan> aspirieren seems to be german
20:28:55 <Taneb> null []
20:29:05 <Taneb> Woops, wrong tab
20:29:35 <Deewiant> True
20:29:48 <Taneb> Thank you, Deewiant
20:30:09 <Deewiant> <interactive>:1:10 parse error on input `,'
20:31:41 <Taneb> :quit
20:32:02 <Deewiant> Leaving GHCi.
20:35:48 -!- boily has quit (Read error: Operation timed out).
20:35:54 <Sgeo> http://www.gutenberg.org/wiki/Mathematics_%28Bookshelf%29 are any of these a good read?
20:45:46 -!- elliott has joined.
20:46:10 <elliott> hi
20:47:01 <oerjan> hello
20:47:05 <Deewiant> ho
20:47:19 <Sgeo> hi
20:49:53 <monqy> hy
20:50:28 <elliott> 19:32:46: * pikhq_ is tempted to write a partial git implementation. Anyone think of reasons I shouldn't?
20:50:28 <elliott> sg
20:50:31 -!- GreaseMonkey has joined.
20:50:31 -!- GreaseMonkey has quit (Changing host).
20:50:32 -!- GreaseMonkey has joined.
20:50:46 <elliott> 20:01:06: <monqy> what does right-leaning mean help
20:50:46 <elliott> the guy never dedents the code
20:50:47 <elliott> like
20:50:52 <elliott> reallylongfunction = do ...
20:50:55 <elliott> all the code lines are aligned with ...
20:50:58 <elliott> and a bunch of nested conditionals
20:51:04 <elliott> so it's like three hundred chars long :(
20:51:23 <coppro> oerjan: I've forgotten
20:51:33 <oerjan> oh
20:51:42 <Deewiant> I do that, but I also stick to 80 columns
20:51:42 <Lymee> elliott, "codelipo"
20:51:46 <Lymee> Go make a pretty printer named that.
20:52:01 <elliott> Deewiant: You should put a newline after "do" and then one indent :(
20:52:12 <elliott> Unless you write C like
20:52:15 <Deewiant> I don't, if it fits in 80 columns
20:52:18 <elliott> int foo(int a, int b) { printf("...");
20:52:19 <monqy> I usually do a newline after do but sometimes I don't
20:53:05 <elliott> 20:22:14: <oerjan> "The report has sparked anger from IE supporters, who have threatened AptiQuant with legal action.
20:53:06 <elliott> wow
20:53:21 <Taneb> That was later revealeed a fraud
20:53:32 <Taneb> The whole shazam
20:53:44 <ais523> yep, it was a hoax
20:54:21 <elliott> Taneb: um that quote appeared a few lines after the article saying it was a hoax.
20:54:22 <oerjan> darn you mean i won't get my money?
20:54:47 <elliott> oerjan: yes you will. (good thing you're stupid enough to believe this)
20:55:08 <oerjan> ah. excellent.
20:55:33 <elliott> AptiQuant was set up in late July 2011 by comparison shopping website AtCheap.com, in order to launch a fake “study” called “Intelligent Quotient and Browser Usage.” The study claimed that people using Internet Explorer have a below than average IQ score. The study took the IT world by storm. The main purpose behind this hoax was to create awareness about the incompatibilities of IE6, and not to insult or hurt anyone.
20:55:53 <elliott> next time on aptiquant.com: Report on Just How Fucking Stupid We Can Possibly Be
20:56:13 <monqy> isn't ie6 dead
20:56:18 <elliott> no
20:56:20 <monqy> :(
20:56:27 <Lymee> Hmm...
20:56:33 <Lymee> Does cpp work well on Java code?
20:56:45 <olsner> it does, yes
20:56:49 <monqy> I've done it
20:57:14 <ais523> not massively well, because Java code tends not to include #include and #define and all the other stuff that's generally needed to make cpp do something useful
20:57:19 <elliott> People with higher IQ are shunning Internet Explorer study - Computer Business Review
20:57:36 <olsner> I heard that was a hoax
20:57:45 <elliott> :P
20:57:52 <elliott> In May 2010, Microsoft started its "milk campaign", saying that using IE6 is like drinking nine-year-old milk.
20:58:04 <elliott> ah, this explains Firefox's new "release once every week" policy.
20:58:05 <olsner> but as long as it isn't it gives us opera users more reason to feel good about ourselves and look down on other-browser users
20:58:15 <ais523> elliott: oh, there was an awesome bit of spam which I left for you, but Keymaker deleted it
20:58:20 <Taneb> Well, goodnight
20:58:21 <elliott> ais523: :(
20:58:24 <ais523> elliott: so using IE9 is like drinking month-old milk?
20:58:28 <ais523> elliott: it was advertising Google
20:58:34 <elliott> ais523: that was my Firefox joke >:(
20:58:35 <ais523> and had a link to google.com at the end
20:58:39 <elliott> :D
20:58:42 -!- Taneb has quit (Quit: THEY ARE HERE).
20:58:46 <elliott> can you delete it for like three seconds or something
20:58:55 <elliott> (diff) (hist) . . N AnyPL‎; 18:55 . . (+18,908) . . PLarsen (Talk | contribs) (Renamed APL to AnyPL to avoid misconceptions)
20:58:57 <elliott> (diff) (hist) . . APL‎; 18:58 . . (-18,999) . . PLarsen (Talk | contribs) (APL is renamed to AnyPL)
20:59:03 <monqy> whats move page
20:59:03 <monqy> help
20:59:06 <elliott> ais523: hmm, can I ask you to delete AnyPL, revert that change to APL, and move it to AnyPL?
20:59:29 <ais523> <spambot> google is a search engine which clearly is a search google will give google maps ,google world, google news google mail etc[http://www.google.com google]
20:59:41 <elliott> not a license violation since they're the only contributor and we're public domain, but it still erases history
20:59:49 <elliott> ais523: it clearly is a search :D
21:00:08 <elliott> I'm not sure I can call a language User:Icornellhoffmane
21:00:17 <oerjan> elliott: there are probably edits to AnyPL for at least the name change...
21:00:21 <elliott> Icornellhoffmane sounds like a cool language name, though
21:00:28 <elliott> oerjan: um yes but they can easily be repeated.
21:00:41 <elliott> by saving AnyPL's source code
21:00:45 <elliott> and saving it over the resulting article
21:00:49 <monqy> User:Icornellhoffmane/index.php
21:00:58 <olsner> oh... this: http://www.bbc.co.uk/news/technology-14389430 is sad news then
21:01:14 <ais523> elliott: err, please don't tell me how to do a history merge
21:01:15 <olsner> (the "Internet Explorer story was bogus" story)
21:01:21 <elliott> ais523: :D
21:01:22 <ais523> especially not if you get it wrong
21:01:26 <oerjan> elliott: well i'm just worried ais523 might take you literally
21:01:26 <elliott> ais523: oh did I :(
21:01:38 <elliott> oerjan: he has access to deleted pages, anyway
21:01:49 <elliott> ais523: I forgot it was common practice, and also forgot the name
21:01:49 <ais523> wait, I didit wrong too
21:01:52 <elliott> hahaha
21:01:56 <elliott> do you want me to tell you how to do it
21:02:02 <elliott> oh, groan
21:02:09 <elliott> you forgot to omit the blanking change
21:02:24 <ais523> no I didn't
21:02:29 <ais523> it was a change made to the combined pages
21:02:50 <elliott> well, it breaks the diffs
21:03:10 <ais523> it was just vandalism + revert
21:03:16 <elliott> haha
21:03:37 <ais523> anyway, you do a combined delete+move first, then undelete, then set the top revision
21:03:46 <ais523> and I got the last two steps in the wrong order, and so set the wrong top revision
21:04:20 <elliott> well, my way was equivalent if the wrongly moved page has no changes made
21:04:47 <ais523> except it leaves there with no revisions on the page for a while, and people wonder why the page has been deleted
21:04:56 <ais523> you used to have to do something like that
21:05:03 <elliott> haha
21:05:13 <ais523> and I ended up editing db-histmerge to say "this page needs to be temporarily deleted" or something like that
21:05:24 <ais523> because people are all "WHY ARE YOU DELETING MY PAGE"
21:08:02 -!- invariable has quit (Remote host closed the connection).
21:08:30 -!- variable has joined.
21:12:42 <oerjan> ^def test bf ,[[->+<],]>.
21:12:42 <fungot> Defined.
21:12:45 <oerjan> ^test hm
21:12:45 <fungot>
21:12:50 <oerjan> wat
21:13:17 <oerjan> that, indeed, was unexpected.
21:13:29 <oerjan> oh wait
21:13:52 <oerjan> ^def test bf ,[>[-]<[->+<],]>.
21:13:52 <fungot> Defined.
21:13:55 <oerjan> ^test hm
21:13:56 <fungot> m
21:20:38 <elliott> furniture: the movie
21:23:20 <elliott> monqy: im....glfwpipe.........................................................
21:23:26 <monqy> :o
21:23:39 <cheater> is logo a functional language?
21:24:56 <elliott> is scheme a functional language
21:25:33 <monqy> help whats a functieonl language help
21:25:57 <GreaseMonkey> is BASIC a functional language?
21:26:08 <elliott> is cobol a functional language
21:26:13 <elliott> is monqy a functional language
21:26:40 <monqy> im the most fucntioanl language hello
21:26:47 <olsner> is elliott a functional
21:26:51 <GreaseMonkey> is english a functional language
21:26:53 <elliott> is olsner functional
21:27:02 <olsner> elliott is functional?
21:27:09 <elliott> functional olsner
21:27:15 <elliott> .com
21:27:30 <GreaseMonkey> objective elliott
21:28:10 <olsner> structured water: functional healing
21:28:33 <olsner> also, why is the topic so empty nowadays?
21:28:47 <elliott> because anti-clog sentiment
21:28:48 <elliott> brewed
21:28:52 <elliott> and i clamp on down on it
21:28:57 <elliott> with my fsits
21:29:03 <monqy> is clog a functional language
21:29:08 <olsner> topic is glove, much too glove
21:29:20 <elliott> anti-glove it
21:29:48 <monqy> is a functional language
21:29:50 <olsner> unglove my heart^Wtopic
21:31:15 <elliott> .org
21:31:17 <elliott> .com
21:31:41 <olsner> .org.com.net.ng
21:31:51 <elliott> .tk
21:31:58 <olsner> .co.uk
21:32:05 <elliott> .biz.info
21:32:21 <olsner> (this is all concatenated, right? otherwise it's just silly...)
21:32:22 <monqy> .java.lang
21:32:34 <elliott> olsner: yes
21:32:39 <elliott> .Exception
21:32:40 <olsner> elliott: good
21:33:09 <elliott> .good
21:33:18 <olsner> .god
21:33:28 <elliott> .jesus
21:33:39 <elliott> .holyghost
21:33:44 <elliott> .email
21:33:56 <olsner> .xxx
21:34:43 <elliott> @istanbul.cn
21:34:43 <lambdabot> Unknown command, try @list
21:34:54 <elliott> my new email address
21:36:23 <oerjan> istanbul isn't in china
21:36:45 <oerjan> <elliott> YET!
21:37:51 -!- ais523 has quit (Remote host closed the connection).
21:43:22 -!- variable has quit (Ping timeout: 258 seconds).
21:44:14 <cheater> hello
21:44:41 <cheater> does anyone know what mathematical formula appears in this video at the time 2:08? http://www.youtube.com/watch?v=kbGVIdA3dx0
21:45:48 <olsner> oh please, you already sent me that link
21:46:31 <olsner> youtube links should probably be forbidden in #esoteric, they seldom do anything good in here
21:48:42 <olsner> now, something like "lol, this zardoz thing! you should, like, totally, check out the trailer on like youtube" would be a different issue entirely
21:49:01 <olsner> hmm, mostly anyway
21:50:06 -!- zzo38 has joined.
21:51:13 <elliott> olsner: what
21:53:09 <olsner> elliott: indeed
21:53:28 <zzo38> In D.
21:54:02 <olsner> In Dd.
21:54:16 <elliott> "CLICK ON VAN DAMMES MULLET TO SEE MORE" -- actual internet advert
21:55:42 <monqy> what
21:55:56 <monqy> what sort of ad
21:55:57 <monqy> is this
21:56:06 <monqy> is the mullet moving
21:56:13 <elliott> no
21:56:16 <elliott> do you want a picture
21:56:21 <monqy> do you get a free ipod if you click it
21:56:32 <elliott> it is for coors light i think
21:57:00 <elliott> http://ompldr.org/vOXF3bQ
21:57:40 <olsner> hmm, but technically his mullet would be behind his face, wouldn't it?
21:58:42 <oerjan> ^def test bf ,[>+[-[---->+++++<]<[>>[-----<++++>]<++<-[->>+<<]]>>[-<<+>>]<[-<[>[->+<]>++<<[->+<]>-<]>[-<+>]]>[-<+>]<[-<[>[->+<]>++<<[->+<]>-<]>[-<+>]]>[-<+>]<[-<[>[->+<]>++<<[->+<]>-<]>[-<+>]]>[-<+>]<]<.,]
21:58:43 <fungot> Defined.
21:58:50 <oerjan> ^test 0123456789
21:58:51 <fungot> <123A567F9
21:59:17 * oerjan cackles evilly
21:59:46 <oerjan> > chr 60
21:59:47 <lambdabot> '<'
21:59:56 <quintopia> whats going on :/
22:00:06 <oerjan> i'm testing part of my fractran conversion
22:00:38 <oerjan> that appears to be a working "if (n%4 == 0) then n=5*(n/4);"
22:01:05 <oerjan> (iterating over input characters, for testing)
22:02:22 <elliott> oerjan: :DDDDDDDDDDDDddddddddd
22:02:45 <zzo38> Probably it can be done (if a program is written) converting MSE file into TeXnicard file. For card data you could probably do it both ways, although various template features and stuff has only in TeXnicard. You also probably it is difficult to convert the scripts between MSE and TeXnicard.
22:03:14 <oerjan> elliott: i still have that minor halting problem you'll find in the logs
22:03:38 <elliott> oerjan: oh
22:03:47 <elliott> oerjan: i will click on van dammes mullet to see more,
22:05:06 <oerjan> basically, i can iterate things of the form if (n%C1 == 0) then n=C2*(n/C1)+C3; but the == 0 detection is such that i cannot use it to halt the main program...
22:05:36 <zzo38> I now have made prettyprinting Haskell, although, there is still a few things wrong. It includes:
22:05:40 <zzo38> * Spacing is a bit wrong
22:05:46 <zzo38> * Template Haskell is not supported
22:06:03 <zzo38> * Pragmas not yet supported
22:06:48 <zzo38> * Magic hash is only partially supported
22:07:06 <cheater> does it have bullet points
22:07:10 <zzo38> * Cannot make strings span multiple source texts
22:07:25 <zzo38> * Some of the default symbols should be changed and more should be added
22:07:45 <zzo38> But, can you see how it currently is? See if it seem good, or whatever else it is?
22:08:04 <elliott> 21:34:35: <Taneb> Numberwang depends on more variables than a single number
22:08:04 <elliott> 21:35:13: <Taneb> No, but I was once in the studio audience of the show
22:08:04 <elliott> i was going to go "cool" but tHTNE,....
22:08:06 <elliott> I EREALISED IT WAS A FAKE SHOW
22:08:17 <quintopia> well due to the problem posed tnis morning, i did figure out how to find x%n in n+1 cells for all positive n (and i suspect i could make n a parameter for just one more cell). that was fun puzzle, thanks.
22:08:20 <zzo38> cheater: Bullet points? Do you mean as a part of the program code or else?
22:08:20 <elliott> <oerjan> basically, i can iterate things of the form if (n%C1 == 0) then n=C2*(n/C1)+C3; but the == 0 detection is such that i cannot use it to halt the main program...
22:09:01 <elliott> oerjan: hmm well I know a BF Joust technique is to turn if(a){b}else{c};d into while(a){b;d};c;d
22:09:11 <elliott> oerjan: but that's when you have bounds on program running time, etc...
22:09:19 <elliott> so you can know it'll never go past d
22:09:23 <oerjan> quintopia: note that the original x needs to be preserved in some cell
22:09:42 <cheater> zzo38, no i mean more bullet points than the ones you just posted
22:09:47 <quintopia> oerjan: i didnt assume that. it takes one more cell if you want to do that
22:09:50 <oerjan> or at least reconstructable
22:09:53 <cheater> it seems like the main feature of your program is bullet points
22:09:55 <oerjan> quintopia: darn :(
22:09:58 <elliott> 21:52:39: <olsner> Taneb: you've seen numberwang *LIVE*!?
22:09:58 <elliott> 21:52:40: <oerjan> i know almost nothing about it
22:09:58 <elliott> 21:52:57: <oerjan> as i've never used it myself
22:09:58 <elliott> 21:53:20: <oerjan> it's for compile-time metaprogramming, afaik
22:10:22 <zzo38> cheater: No, I was just listing what some of the problem are currently with the program.
22:10:33 <elliott> 21:57:59: <zzo38> Do you know, if it is allowed in Template Haskell, to have one $ command that will return something for use of the next $ command that is found if it can use it?
22:10:41 <elliott> zzo38: you mean an impure splice, basically?
22:10:45 <elliott> i.e. $(foo) could be 9 one place and 0 another
22:11:31 <olsner> elliott: it turned out he hadn't, he merely simply just lied about having done that
22:11:33 <elliott> splices run in the Q monad which is a MonadIO, so yes, they can be non-deterministic, and even delete files or whatever if they want. storing a value for next time is probably possible by manipulating places you can store state in IO. they couldn't use an IORef without unsafePerformIO
22:11:40 <elliott> olsner: numberwang is not real.........
22:11:40 <zzo38> elliott: Yes I mean a bit like that
22:11:46 <olsner> elliott: of course it is
22:12:06 <elliott> 21:59:39: <zzo38> Can you compile Haskell codes into LLVM codes? I have read LLVM documentation it does suppports Haskell calling convention
22:12:13 <elliott> zzo38: GHC has this
22:12:18 <elliott> and I think it's quickly becoming the most favoured backend.
22:12:28 <monqy> r.i.p. c--
22:12:54 <oerjan> <elliott> oerjan: but that's when you have bounds on program running time, etc... <-- not particularly useful when you're trying to make a program which _actually_ halts :P
22:12:58 <elliott> 22:07:58: <zzo38> Not what I am looking for, though. What it is, is if there is something for adding LLVM codes into a program similar to "asm" command in C, except using LLVM codes instead of native codes, and for Haskell instead of only with C
22:13:13 <elliott> zzo38: well you can achieve something semi-equivalent by compiling LLVM IR at runtime using the API, and then casting that to a function type
22:13:17 <elliott> oerjan: indeed
22:13:26 <elliott> oerjan: you could use <<< as a sure-fire halter >:)
22:14:02 <zzo38> elliott: But can you, for example, the return value of a $(...) can be a pair of one value (probably a union type) and the second one is the object representing what is replaced in the program code
22:14:26 <olsner> elliott: but I rather referred to the numberwang sketch(es), which might have had live audiences (though I think they wouldn't have been watching numberwang per se, but rather would've been watching mitchell and webb)
22:14:43 <elliott> zzo38: I don't understand what you mean by "the object representing what is replaced in the program code"
22:14:48 <zzo38> elliott: OK, but I mean can you include LLVM codes at compile-time? I don't mean at run-time
22:15:33 <elliott> zzo38: i don't think so
22:15:52 <oerjan> <monqy> r.i.p. c-- <-- wait it's gone?
22:16:26 <monqy> i do not know
22:16:42 <monqy> is it not gone
22:16:50 <monqy> or not going, that is
22:17:44 <elliott> 04:52:42: <quintopia> is there a name for a numbering system where every single positive integer has a distinct symbol?
22:17:45 <quintopia> oerjan: you might find the flagging technique i used helps with the halting issue (if you dont already use it). it essentially lets you exit a loop if any of a whole bunch of cells has been zeroed...
22:17:46 <elliott> quintopia: the naturals
22:17:53 -!- GreaseMonkey has quit (Quit: The Other Game).
22:18:02 <quintopia> elliott: that subject is over
22:18:02 <elliott> "whole bunch" he has precisely three cells
22:18:08 <elliott> quintopia: i un-overed it
22:18:15 <zzo38> elliott: I mean, the type of "..." expression in $(...) which can be "Q Exp" or "Q Typ" or "Q [Dec]" so can it be made a pair instead so that you can keep track of previous things? Such as, you can do put everything figured out previously at the end, or prevent duplicates, or whatever
22:18:38 <quintopia> wait, is he trrying to fit the entire converter into 3 cells?
22:18:48 <oerjan> <elliott> oerjan: you could use <<< as a sure-fire halter >:) <-- i don't think so. also i'm not sure i can actually perform an action _specifically_ when something is %2 == 0
22:18:53 <elliott> zzo38: i'm not quite sure i understand
22:18:56 <elliott> quintopia: that's the whole point of the converter
22:19:06 <elliott> oerjan: it was a joke, if you only have three cells then <<< is necessarily invalid
22:19:08 <quintopia> why
22:19:17 <elliott> quintopia: to prove that three-cell BF is tc
22:19:24 <quintopia> aha
22:19:37 <quintopia> so we know already that four cell BF is?
22:19:46 <elliott> 04:56:09: <CakeProphet> he's talking about an infinite number of symbols. I don't think that has a name.
22:19:47 <elliott> it does, it's called a "set"
22:19:50 <elliott> quintopia: no. oerjan is just hardcore.
22:19:53 <elliott> we know that six is IIRC
22:19:55 <elliott> or was it seven
22:20:06 <monqy> or was it five
22:20:14 <elliott> zzo38: are you basically saying that you want foo in $(foo) to be able to use global state?
22:20:14 <monqy> im dont know ;_;
22:20:22 <elliott> i.e. if you do $(foo "a") it will note that "a" has been done
22:20:29 <elliott> and not do it again if you say $(foo "a") later or whatever
22:21:23 <oerjan> elliott: five
22:21:24 <elliott> 04:57:28: <quintopia> it is not dumb
22:21:25 <elliott> 04:58:11: <quintopia> becuase youll only ever need a finite subset of the digits, its basically the same as "base x, where x is the largest number you need right now"
22:21:25 <elliott> this is the same fallacy that makes a language with a fixed-but-arbitrary-size heap TC
22:21:32 <cheater> olsner, i hadn't sent you any links
22:21:35 <cheater> don't feel so special
22:21:47 <zzo38> elliott: You failed to understand? O, well, I don't know much about Haskell so maybe I wrote everything mixed up. But, I mean, for example, if "xyz" is a function receiving (Integer) and then returns (Integer,Q Exp) type then you can type $(xyz) so it expects the last pair with Integer type at first and makes the new one Integer and then put the Q Exp expression spliced out
22:22:06 <cheater> i don't really care if you've seen it 2 or 0 times unless you're going to recognize the formula, then i care but only a tiny bit.
22:22:26 <quintopia> elliott: i realized it was dumb later...it'd be better if you just finished reading everything before commenting
22:22:26 <olsner> cheater: I see what you mean, but then again anything I see on my screen has been sent to me, regardless of who the recipient(s) was/were
22:22:42 <elliott> quintopia: that is not the Way.
22:22:50 <cheater> i hadn't sent it to you. i had sent it to a channel, to which you subscribed by joining.
22:22:58 <elliott> zzo38: sorry, I still don't quite understand
22:23:28 <olsner> cheater: still your fault I saw it
22:23:37 <cheater> if anything, i hadn't opted to send it to you, you opted to receive it
22:23:46 <quintopia> i know its not how you do things, and that you intentionally elect to be annoying about backlog commenting, but i can still hold out hope you will become civilized can't i?
22:23:52 <elliott> fuck that olsner
22:23:54 <elliott> how dare he say "oh please, you already sent me that link"
22:23:55 <elliott> asshole
22:23:57 <elliott> you show him dude
22:24:07 <elliott> quintopia: you realise oerjan did it first :)
22:24:09 <elliott> and continues to
22:24:16 <cheater> quintopia, elliott is always annoying
22:24:26 <cheater> learn to live with it, he can't be changed
22:24:29 <olsner> elliott: Indeed.
22:24:32 <elliott> i think cheater woke up on the wrong side of the bed today
22:24:35 <elliott> (his bed has two wrong sides)
22:24:49 <cheater> my bed has about six sides
22:24:57 <cheater> given that it's in 3-D Space
22:24:59 <olsner> hmm, two wrong sides... how many sides does that leave for being the right side(s)?
22:25:06 <cheater> four.
22:25:10 <quintopia> no
22:25:16 <quintopia> dont forget inside and outside
22:25:19 <elliott> olsner: well i assumed it is against a wall
22:25:19 <olsner> (I would hate to wake up on the under-side of my bed)
22:25:22 <elliott> so i guess he could lunge over the front
22:25:27 <cheater> oh man, those are SIDES too!
22:25:28 <olsner> and the inside, of course
22:25:35 <elliott> there are other sides, but none of them are practical to exit from.
22:25:39 <elliott> exit on
22:25:58 <olsner> but who said anything about exiting the bed?
22:26:04 <olsner> it's waking up that's the issue
22:26:15 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
22:26:19 <cheater> i live in a room with no walls
22:26:27 <elliott> cheater is homeless.
22:26:32 <cheater> not really.
22:26:43 <cheater> the world is my home!!!!!
22:27:54 <elliott> 05:58:57: <Patashu> http://img.photobucket.com/albums/v216/Mechadragon/thetree.png
22:27:54 <elliott> those are really shitty trees
22:28:21 <olsner> looks like a spectrogram
22:28:35 <elliott> `addquote <Taneb> I combined the wholegrain breakfast and chocolatey breakfast for maximum breakfast efficiency
22:28:37 <HackEgo> 559) <Taneb> I combined the wholegrain breakfast and chocolatey breakfast for maximum breakfast efficiency
22:28:44 <cheater> why do people call logo the lisp without parentheses?
22:28:49 <zzo38> Maybe I can explain better. something :: String -> (Integer,Q Exp) something x = [| aaa bbb |] f x = $(something) Now there must be at least one previous $(...) of type "(anything) -> (String,Q (anything))"
22:28:51 <olsner> almost exactly like the spectrograms that websdr gives you
22:29:21 <zzo38> (But it doesn't have to be the directly previous one, there can be anything else in between)
22:29:32 <elliott> cheater: because it is a fixed-arity lisp.
22:29:40 <oerjan> cheater: because it is rather similar below the syntax
22:29:42 <cheater> that song totally does not look sequenced.
22:29:44 <elliott> something :: String -> (Integer,Q Exp) something x = [| aaa bbb |]
22:29:46 <elliott> zzo38: this is not valid
22:29:59 <elliott> zzo38: something x = (length x, [| aaa |]) might be.
22:30:08 <zzo38> Yes, I know that, sorry. Now you made better.
22:30:13 <zzo38> I got mixed up.
22:30:21 <elliott> f x = $(something)
22:30:27 <elliott> also not valid, because something is not of type Q Exp
22:30:31 <zzo38> Your example is the kind of things I mean.
22:30:49 <zzo38> elliott: Yes I know is not valid. I am asking if there is some way to do something similar to what I described
22:30:56 <elliott> hmm
22:31:04 <zzo38> Like, is there a way to make it valid.
22:31:10 <elliott> "Now there must be at least one previous $(...) of type "(anything) -> (String,Q (anything))"" <-- what do you mean by "there must be at least one previous" etc.?
22:31:19 <elliott> like, do you want to stop anyone using that splice once?
22:31:22 <elliott> they have to use it two or three times or whatever
22:31:37 <zzo38> elliott: No, I mean there must be an input otherwise how can it be used?
22:31:39 <elliott> does the Integer record the number of times the splice has been used?
22:31:53 <elliott> zzo38: ah. well yes, (String -> Q Exp) is not of type Q Exp.
22:31:57 <zzo38> The "Integer" would be the input. So there must be a input
22:31:58 <cheater> zzo38, do you just mean state
22:32:15 <zzo38> cheater: Yes, maybe I mean like that
22:32:17 <elliott> zzo38: the Integer there is part of the return type
22:32:21 <elliott> not part of the input
22:33:08 <cheater> except in state
22:33:21 <quintopia> arrive in state
22:33:25 <elliott> 11:21:02: <coppro> dude
22:33:25 <elliott> 11:21:08: <coppro> using negatives is not a flaw
22:33:29 <elliott> coppro: it is if negatives impact his translation
22:34:04 <Sgeo> Is it bad that I'm bruteforcing VVVVVV puzzles?
22:34:42 <elliott> i'll pass this question on to our VVVVVVVVVVVvvvvvvvvv expert FireFly
22:34:43 <elliott> erm
22:34:44 <elliott> fizzie
22:34:59 <FireFly> Well, I did finish VVVVVV
22:35:11 <monqy> i finished the uh
22:35:13 <monqy> free demo
22:35:19 <monqy> ages ago
22:35:32 <elliott> i should buy the bnudle............
22:35:38 <elliott> idnie bnudle.
22:35:40 <FireFly> Yes, you should
22:36:58 <monqy> the bnudle is probably good but the trailer killed me and did bad things to my corpse
22:37:29 <monqy> at least i think it was the trailer
22:37:43 <elliott> 12:36:53: <oerjan> yes, also they're hard to use here
22:37:44 <elliott> 12:37:12: <oerjan> but then maybe it could be essential
22:37:49 <elliott> oerjan: is BF with only balanced loops TC?
22:38:00 <elliott> I somewhat doubt it considering how simple an instruction set you can translate them to
22:38:16 <elliott> if it isn't, then you _must_ used an unbalanced loop somewhere.
22:38:17 <oerjan> elliott: yes it is.
22:38:20 <elliott> oerjan: huh, okay
22:38:26 <elliott> oerjan: cool, we should eliminate them, then
22:38:31 <elliott> would make optimisation a hell of a lot easier.
22:39:06 <oerjan> in fact i haven't used any unbalanced loops in the conversion yet, but i'd use one if it could help with the halting...
22:39:43 <oerjan> elliott: pikhq_'s BFM worked much better when generating balanced loops iirc
22:39:49 <elliott> well if you can arrange things so that you would fortuitously land on a 0 when you need to halt...
22:39:58 <monqy> how do unbalanced loops workii forget the spec
22:39:58 <elliott> oerjan: heh, well obviously compilers can do balanced loops really quickly
22:40:04 <elliott> because of the polynomial translation
22:40:28 <elliott> monqy: unbalanced = doesn't move left as much as it moves right
22:40:49 <monqy> oh
22:40:54 <monqy> oh right
22:40:59 <monqy> I was thinking different things oops
22:41:14 <zzo38> elliott: Yes the Integer is part of return type in that example, which means the input type of one of the $(...) in the future can be Integer. But since the input type this time is String, requires one of the previous ones to have a pair with String as the output
22:41:27 <zzo38> Now do you understand what I mean?
22:41:41 <Sgeo> FireFly, I feel like I was mashing buttons for the chords
22:41:57 <elliott> zzo38: you mean...
22:42:04 <elliott> zzo38: $(something 9) could return (Integer, Q Exp)
22:42:06 <elliott> erm
22:42:09 <elliott> zzo38: $(something 9) could return (String, Q Exp)
22:42:13 <elliott> then in $(something x)
22:42:17 <elliott> x would have to be a String??
22:42:22 <elliott> I don't really see what you mean at all
22:42:58 <Sgeo> Bleeping diode
22:43:08 <monqy> bleeping?
22:43:57 <zzo38> elliott: No! I mean, probably you would have a function with a type "Integer -> String -> (Integer, Q Exp)" then you can have "$(something 42)" which results in a type "String -> (Integer, Q Exp)" which is the type of the splice. And then it call it with the previous one having type "(String, Q Exp)" or "(String, Q [Dec])" etc, the first of that pair is the input of the function, the output the second part makes the expression.
22:44:18 <elliott> ah, hmm
22:44:20 <elliott> you mean
22:44:22 <elliott> you would use it like:
22:44:27 <elliott> $($(something 99) "abc")?
22:44:43 <zzo38> No. That is not what I mean.
22:45:12 <elliott> :(
22:45:16 <zzo38> Probably at first you would need something with the input type being () so that you can start
22:45:26 <zzo38> Otherwise you always need a input value and you don't have any
22:46:29 <zzo38> I will write a better example
22:46:32 <elliott> 17:51:35: <Taneb> What would make the perfect programming language, in your eyes?
22:46:32 <elliott> @lang :-P
22:46:32 <lambdabot> pong
22:47:14 <monqy> zepto
22:47:21 <monqy> @lang too
22:47:21 <lambdabot> pong
22:47:25 <oerjan> monqy: apparently c-- is still used when compiling with llvm, it's the last common stage before all the separate backends, http://hackage.haskell.org/trac/ghc/wiki/Commentary/Compiler/HscMain
22:47:31 <monqy> aha
22:50:07 <oerjan> although i do recall there was some backend which went off an earlier stage
22:50:29 <oerjan> an experimental one, i wonder if it was the javascript one
22:50:46 <oerjan> or wait that wasn't ghc at all was it.
22:51:11 <monqy> yhc, apparently
22:51:26 <oerjan> mhm
22:51:31 -!- copumpkin has joined.
22:51:47 <elliott> rip yhc
22:52:30 <elliott> 20:28:55: <Taneb> null []
22:52:30 <elliott> 20:29:05: <Taneb> Woops, wrong tab
22:52:31 <elliott> 20:29:35: <Deewiant> True
22:52:31 <elliott> 20:29:48: <Taneb> Thank you, Deewiant
22:52:31 <elliott> 20:30:09: <Deewiant> <interactive>:1:10 parse error on input `,'
22:52:31 <elliott> 20:31:41: <Taneb> :quit
22:52:33 <elliott> 20:32:02: <Deewiant> Leaving GHCi.
22:52:37 <elliott> Deewiant: you should have done /quit Leaving GHCi. instead :P
22:54:46 <elliott> Five Humble Indie Bundle 2 games added to the Humble Indie Bundle 3
22:54:48 <elliott> oh for goodness sake
22:57:07 <monqy> what does this mean
22:57:17 <cheater> it means you get to play gish
22:57:22 <cheater> or was that in HIB1
22:57:38 <monqy> what's hib2 specific now
22:57:39 <monqy> if anything
23:00:24 <zzo38> Here is better example http://sprunge.us/cHbI I know it is wrong that is why I ask what other way to do a similar thing.
23:02:47 <zzo38> Now it is understand??????????????????????????????????????????????????????????????????????????????????????????????????????
23:02:57 <elliott> zzo38: I'll check
23:03:31 <elliott> zzo38: OK, so what you want is mutable state
23:03:37 <elliott> you could do this:
23:03:51 <elliott> state :: IORef Bool; state = unsafePerformIO $ newIORef False
23:03:55 <elliott> bbb :: Q Exp
23:04:28 <elliott> bbb = do r <- liftIO $ readIORef state; liftIO $ writeIORef state False; if r then [ | 5 |] else [| 7 |]
23:04:33 <elliott> similarly for cc
23:04:39 <elliott> and aaa becomes unneccessary because we specify an initialiser
23:04:47 <elliott> zzo38: this requires unsafePerformIO though, which is Bad
23:04:50 <elliott> and indeed breaks the type system
23:04:54 <elliott> and is thus kept in an unsafe module
23:05:04 <elliott> zzo38: if you want to do it safely, then you need to exploit the fact that you can access the IO monad from Q
23:05:06 <zzo38> elliott: I know, it is unsafePerformIO that is why I wanted it differently without unsafe
23:05:15 <elliott> for instance, you could use whether stdout is in binary mode or not
23:05:26 <elliott> or some other piece of internal state that doesn't matter to you
23:05:30 <elliott> this is a huge hack, of course
23:05:37 <elliott> you could write out the boolean to a file and read it back in, too
23:05:38 <elliott> etc.
23:05:45 <elliott> but generally i'd say that you shouldn't :P
23:05:57 <elliott> ofc if it's just for a fun hack then it's fine. but then if it's just for a fun hack unsafePerformIO is ok too.
23:06:07 <elliott> so, yes it can almost certainly be done
23:06:10 <elliott> it'll be ugly though :)
23:06:47 <monqy> alternatively, don't mutable state ;_;
23:06:54 <zzo38> I know that wouldn't be very well, which is why I asked it differently. But, OK, now I know at least it can be done in case it is necessary
23:08:00 <elliott> well it probably can. if your user has no permissions to write any kind of file at all, you rely on stdout being in a certain encoding so you can't change that, ..., then you couldn't do it
23:08:12 <elliott> but I suspect the base libraries have some way to twiddle a bit on and off without effecting everything, by accident :)
23:09:55 <cheater> anyone got an idea why gawk AND mawk would both only output one space when doing this? LC_ALL=en_US.UTF-8 gawk 'BEGIN{ printf(".%3s.\n", "ü")}'
23:10:27 <zzo38> Maybe another way would be to make $(doeverything x) where doeverything :: [([Integer], Q [Dec])] -> Q [Dec]
23:10:28 <cheater> apparently it works on other people's computers
23:10:30 <zzo38> Does this way work?
23:10:36 <cheater> but i tried on all my computers and it doesn't
23:10:52 <elliott> zzo38: um well x would have to be a list of ([Integer], Q [Dec])s
23:10:55 <elliott> which is a weird thing to pass
23:11:13 <zzo38> Yes I know it is
23:11:24 <cheater> can it be that my libc is somehow fucked up?
23:12:54 <zzo38> Or maybe a different type instead of [Integer] it should be a monad on the first half of the pair, or a function type. And then you can have commands that can check these thing the function "doeverything" pass each result to the next one and then make the output Q [Dec] based on each one put it together
23:13:50 <zzo38> I was wrong when I put [Integer] probably a function type or a monad type (or maybe you need both?) would work instead
23:14:19 <elliott> zzo38: no. if you return type is (Q Dec), then you cannot cause any effects outside of Q.
23:14:35 <elliott> you are restricted to what effects Q offers
23:16:19 <pikhq_> cheater: So, what, ". ü." is the string it should output?
23:18:21 <elliott> monqy: http://sprunge.us/WZLA help this is too funny (guy in haskell logs has team, is developing online version of Risk, apparently no good at concurrent programming, expects 10000 concurrent users)
23:19:20 <elliott> 06:37:42 <Zyclops> do you guys compile your haskell to machine code?
23:19:37 <elliott> (06:47:05 <Zyclops> what do they mean when they say pascal is pure?)
23:20:37 <monqy> i dont know whether to keep this guy away from haskell or force him to learn it until he becomes smart
23:20:51 <elliott> what do they mean when they say pascal is pure
23:20:53 <elliott> help
23:22:18 <cheater> pikhq_, it should output two spaces to the left of the umlaut u
23:22:31 <cheater> . ü.
23:23:10 <cheater> notice the string specifier is %3s which means the field should be formatted to 3 characters wide.
23:23:57 <monqy> elliott: did they reach a conclusion
23:24:07 <elliott> monqy: im not srue...................................................................
23:25:56 <cheater> pikhq_, you'll notice that it works for ascii letters and other single-byte characters. it does for me too. now for multibyte characters it might work for you, but it most certainly does not work here
23:26:36 <monqy> im searching for zyclops does this make me a bad person
23:26:53 <monqy> 02:17Zyclopshey pythoners, anyone know how to get python-setuptools installed under bsd?
23:26:56 <monqy> 02:22Zyclopsah ha
23:26:59 <monqy> 02:23Zyclopsi't py-setuptools under /ports/devel/
23:27:10 <monqy> never heard from again
23:27:17 -!- elliott has quit (Read error: Connection reset by peer).
23:27:23 -!- elliott has joined.
23:28:04 <zzo38> Maybe you can pass the list [((Xyzzy, Q [Dec]) -> (Xyzzy, Q [Dec]), Q [Dec])] So that, you can have a type "Xyzzy" which tells the things need to keep track of, and then Q [Dec] is the program codes and the other one is a function that transform it based on the state, you can have a function taking parameter and make output due to currying functions too
23:28:12 <elliott> 07:40:06 <Guest28011> erus`: linux-programmers only know about shell scripting and C
23:29:14 -!- ttm_ has joined.
23:29:27 <monqy> i am having trouble finding zyclops' risk adventures online
23:29:44 <elliott> http://tunes.org/~nef/logs/haskell/11.07.31
23:29:46 <monqy> maybe he gave up :(
23:29:46 <elliott> ur welcmome
23:30:08 <monqy> oh that recent?
23:30:14 <zzo38> I know some things of AWK, but I never used AWK with Unicode, I have only used AWK with ASCII, so I don't know the answer of the questions you asked about AWK
23:30:47 <elliott> wait no
23:30:59 <elliott> argh
23:31:00 <elliott> where is it
23:31:15 <elliott> http://tunes.org/~nef/logs/haskell/11.07.31
23:31:16 <elliott> yeah
23:33:39 <monqy> 07:02:34 <Zyclops> erm.. my progamming liniage went…. BBC basic -> basic -> visual basic -> c++ -> java -> php -> ruby
23:33:51 <monqy> then he leaves
23:33:52 <monqy> :'(
23:34:59 <zzo38> (Where, "Xyzzy" is a object that keeps track of all the information needed tp be kept track of between the different pieces of the Haskell codes, so that the record might include a number and a function that increments that number and include it, or a list to keep track of duplicates and put all fields of a record spread out moved together, etc)
23:37:14 -!- FireFly has quit (Quit: swatted to death).
23:37:18 <zzo38> Because, how can you otherwise make a number in Template Haskell that increments after each time?
23:37:37 <zzo38> (That is, if you don't use unsafe or other I/O stuff that doesn't belong)
23:41:01 <elliott> zzo38: using IO from within Q is perfectly acecptable.
23:41:03 <elliott> acceptable.
23:41:18 <elliott> using unsafe functions probably is not, but IO is supposed to be accessible from Q.
23:41:45 <elliott> runIO :: IO a -> Q aSource
23:41:45 <elliott> The runIO function lets you run an I/O computation in the Q monad. Take care: you are guaranteed the ordering of calls to runIO within a single Q computation, but not about the order in which splices are run.
23:41:45 <elliott> Note: for various murky reasons, stdout and stderr handles are not necesarily flushed when the compiler finishes running, so you should flush them yourself.
23:41:49 <elliott> s/aSource/a/
23:41:57 <elliott> oh right
23:42:01 <elliott> zzo38: my solution was _incorrect_
23:42:07 <elliott> because splices can be run in any order
23:42:17 <elliott> so basically, no, there is no way for them to predictably keep state
23:49:30 -!- Sulmersal has joined.
23:50:37 -!- Sulmersal has left ("Leaving").
23:51:26 <zzo38> elliott: OK, so there isn't a way. Maybe I can propose the variant which keeps state. In addition to types "Q Exp" and "Q Typ" and so on, the result can also be of a type "x -> (y, Q Exp)" and "x -> (y, Q Typ)" and so on, where "y" can be any type, and "x" must be either "()" or the same as the "y" type of a previous splice. The ordering of splices in a "chain" is guaranteed but others aren't.
23:51:43 -!- variable has joined.
23:53:03 <zzo38> I don't know how well it would work with the rest of the stuff they have.
23:56:56 <elliott> back
23:57:11 <elliott> zzo38: Well, umm, that's just the state monad.
23:57:26 <elliott> But, you cannot really force an ordering of splices at all.
23:57:32 <elliott> Because the compiler can compile modules in any order, etc.
23:58:26 <monqy> do it all in a single splice?
←2011-08-02 2011-08-03 2011-08-04→ ↑2011 ↑all