00:10:06 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 help 00:16:33 Phantom_Hoover: You have 11 new messages. '/msg lambdabot @messages' to read them. 00:16:40 Wait, is that the actual temperature where you are? 00:19:27 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 I'll just wait for the tantrum spiral, then. 00:20:07 Phantom_Hoover: Your Dwarf Fortress Fortress? 00:20:24 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 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 is there a name for a numbering system where every single positive integer has a distinct symbol? 04:53:05 unary 04:53:10 I don't know. 04:53:40 nah, its the extremme opposite of unary 04:54:21 unary gives each positive integer a distinct symbol 04:55:06 i thought unary was where every positive integer got a different sized collection of the same symbol 04:55:27 aka, n is n digits long 04:55:45 unary = tick marks. 1, 11, 111, 1111 04:55:45 coppro: Are you sure? 04:55:46 etc 04:55:46 and i'm talking about where n is one digit long for all n 04:56:00 i guess you could call it base infinity 04:56:05 zzo38: yes 04:56:09 he's talking about an infinite number of symbols. I don't think that has a name. 04:56:10 quintopia: Yes it is wat I would think 04:56:13 -!- copumpkin_ has changed nick to copumpkin. 04:56:15 quintopia: define a digit 04:56:21 usually alphabet sets are restricted to be finite. 04:56:35 11 can be taken to be a single symbol 04:56:43 except it's not. it's two.. 04:56:44 that just happens to be a repitition of a subsymbol 04:56:47 in the unary system. 04:56:59 CakeProphet: suppose I have two images 04:57:00 i think you know what i mean now 04:57:07 I can make a new image by putting them next to each other 04:57:13 it is the numbering system using an infinite alphabet 04:57:14 quintopia: no because that requires an infinite alphabet which is dumb 04:57:28 it is not dumb 04:58:11 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 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 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 and i feel like that middle step probably has a name 04:59:58 its obviously modular to do as many different numbers as you need 05:01:35 how are the symbols constructed. 05:01:58 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 each is a wire 05:02:07 i could link it 05:02:23 so 1 wire = 1, 2 wires = 2, ...? 05:02:31 fizzie: i agree. which is why i originally asked 05:03:01 CakeProphet: no, there is a wire for 1, a wire for 2, a wire for 3, etc. 05:04:01 only one wire can be active at a time 05:04:54 so a symbol here is "a collection of wires distinguished by the one that is active" 05:05:12 obviously every number has a different symbol 05:06:40 the pythagoreans used a similar system "let k be symbolized by a line segment of length k" 05:09:23 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 or... are they the symbols? 05:10:33 but in either case, I'd probably say that "baseless" is a good description of this numeral system. 05:10:55 this is unary 05:10:56 what is the difference between a signifier of a symbol, and a symbol 05:10:58 but I don't know of an existed term, no. 05:11:06 i'm thinking i agree with patashu 05:11:17 it is all unary in disguise 05:11:22 but it's not..... 05:11:36 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 which is unary 05:11:45 yes 05:11:50 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 you could have 3 symbols turned on and they would not represent 3. 05:12:19 because the symbols could each represent a number greater than 1. 05:12:20 you could say "the distance in wires from the zero point to the active wire" 05:12:38 whether that space is filled with ones or zeroes is irrelevant 05:12:46 the greek system is unary too 05:12:58 okay so the symbols are added together? 05:13:10 they concatenate their length 1 tick marks end to end rather than side by side 05:14:11 okay so it's base 1 but there is more than one symbol. 05:15:22 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 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 thanks for clarifying my thoughts 05:16:58 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 unary is already inconsistent with the other bases 05:17:16 how so? 05:17:34 well, traditionally there is no 0. 05:17:51 the length of a base n number is log(x)/log(n) 05:18:10 for n=1, this comes out undefined 05:19:12 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 People still call it base-1 though. 05:19:42 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 so you see again unary is inconsistent with other bases 05:20:44 yes, there is no zero, as I said. 05:21:03 in other bases, the positions of symbols matters, in unary, only the "length" of the string matters 05:21:06 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 Okay, I sort-of guess it works with powers of one. 05:22:00 which is why one can write unary numbers as line segments of a prescribed length 05:23:11 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 you said yourself the choice of symbol doesnt matter CakeProphet 05:24:05 yes but unary has /one/ symbol. two if you use a special zero symbol. 05:24:07 You could call unary bijective base-1 though. 05:24:10 -!- lament has quit (Ping timeout: 240 seconds). 05:24:46 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 that is just as good as 0 or 1 05:25:06 each nonwire region 05:25:51 and really, the symbols dont have to be the same all the way through 05:26:14 for instance, the length of a string over the english alphabet 05:26:40 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 since only the length defines the number 05:27:02 okay sleeptiems 05:27:11 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 Computer Modern fonts does not have the "double-sharp" sign 05:44:25 > join . replicate (length "111") $ length "11111" 05:44:26 Couldn't match expected type `[a]' 05:44:26 against inferred type `GHC.Types... 05:44:41 > join . replicate (length "111") $ "11111" 05:44:44 "111111111111111" 05:45:51 division will be a bit more difficult. 05:46:17 integer division, specifically. 05:46:35 which brings up an interesting question. If extend unary to the real numbers, then what is 1.111 05:46:52 I don't think that represents anything. 05:47:03 .1 is 1 05:47:04 I think 05:47:12 Because .1 in binary is 1/2, .1 in ternary is 1/3 and so on 05:47:16 so .1 in unary is... 1/1! 05:47:21 :eng101: 05:47:35 so the unary system can't describe all of the real numbers. 05:47:48 only integers. 05:48:21 yup! 05:48:50 just as places left of the decimal point are all equivalent, places right of the decimal point are all equivalent 05:48:59 right. 05:49:25 unary is essentially devoid of place value at all. 05:51:26 Woah o.O 05:51:29 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 and it has poplar trees in it 05:51:35 I wonder if it's a coincident 05:51:37 *coincidence 05:53:43 coincidence. It's probably just heavier in the bass frequencies. 05:54:37 I'll show you a picture 05:54:57 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 *viewed 05:58:57 http://img.photobucket.com/albums/v216/Mechadragon/thetree.png 05:59:06 do you see it? 05:59:11 it's like a little forest of 8 poplars 06:08:00 There are quite a lot of "things hidden in spectrogram" songs, I believe. 06:08:17 That image looks quite coincidental though. 06:09:35 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 Hello! 08:59:14 So, what's up? 09:01:17 Not much, I guess 09:02:00 No, it all fell down. 09:03:01 -!- Deewiant_ has changed nick to Deewiant. 09:03:50 Well, I'm now experimenting with clients 09:06:12 It doesn't sound like good PR to say that out loud. 09:10:06 No such thing as bad advertising 09:16:46 Well, just worked out I'll probably be in London on my birthday 09:17:29 And I'll be on TV the day afterwards 09:18:42 And in jail the day after that? 09:18:51 Sounds like quite a celebration. 09:20:09 IN THE SAME BUILDING WHERE RUPERT MURDOCH GOT PIED! 09:20:41 Also, I need breakfast. 09:22:30 Having breakfast now 09:27:31 Had breakfast 09:29:47 A quick breakfast. 09:30:18 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 I combined the wholegrain breakfast and chocolatey breakfast for maximum breakfast efficiency 09:45:40 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 What are the haps my friends. 09:56:00 Today it's been mostly about breakfasts. 10:19:49 -!- FireyFly has joined. 10:20:56 i hate jargon 10:21:12 eh, i mean, notations and jargons 10:24:00 it brings me to a crushing halt reading a mathematical wikipedia article 10:24:02 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 I suppose the logical way to go forward is to examine exactly which terms i cannot understand 10:29:41 and moving on 10:34:46 -!- oerjan has joined. 10:49:31 it brings me to a crushing halt reading a mathematical wikipedia article 10:49:48 lol 10:49:50 sometimes those are ridiculous even when you _do_ know math 10:50:08 i exaggerated a bit. and typed out the answer :D 10:50:18 ok 10:50:30 but seriously it appears the way to proceed is to list the unknown terms 10:50:41 and to research them 10:50:56 sounds like something i was probably told in school 10:51:43 mhm 11:01:46 lol 11:01:47 -!- Patashu has joined. 11:01:56 I love terminology 11:02:01 it lets us say complex things quickly 11:02:04 -!- Taneb has joined. 11:02:08 transitive closure especially 11:02:12 whoever made that up is a genius 11:02:17 Hello 11:02:54 Transitive closure? 11:03:37 yes 11:05:28 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 *? 11:06:14 (basically, i'm having trouble getting my fractran encoding to _halt_ :P) 11:07:37 * oerjan checks [[Brainfuck algorithms]] 11:07:58 the body's healing process is insane 11:08:14 in 3 cells? no 11:08:49 Do they not teach the Trivium, anymore? 11:09:48 oerjan: wait do you mean 3 cells on a tape? 11:09:56 yes 11:10:06 ah 11:10:07 hmm 11:10:25 Dandy: there is no teacher:> 11:10:56 I can do an evenness test in 5.. hmm 11:11:23 oh i'm pretty sure i could do it in 4 :P 11:11:32 but that's no fun :( 11:11:43 ooh actually I can do it in 3 11:11:49 itidus20: Le sigh 11:11:51 n,n,0->n,n-1,0 11:12:09 it's important not to lose the n itself, at least if it's odd 11:12:15 oh 11:12:27 actually can still do it 11:12:32 n,n,0->n,n,n-1 11:12:40 preferably in any case 11:12:45 -!- itidus21 has joined. 11:13:31 alternately subtract two from the second and third cells 11:13:53 i don't understand what you mean 11:14:09 n,n,0->n,n,n-1->n,n-2.n-1 etc. 11:14:37 i don't see how to achieve n,n,n-1 btw 11:14:53 oh right.. 11:15:00 hmmm 11:15:07 -!- itidus20 has quit (Ping timeout: 258 seconds). 11:16:08 -!- itidus21 has changed nick to itidus20. 11:16:34 oh easy 11:16:43 n,0,0->n,n,0 11:17:09 yes that's ok 11:17:24 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 you get n,0,n%2 11:18:03 you can apply this generally to take arbitrary modulus 11:18:35 um that "if (the third cell is 0)" kind of thing is actually a stopping point 11:18:57 do it backwards then 11:19:09 if (the third cell is not 0) then (subtract 2 from it) then add 1 to it 11:19:22 although that works only for base 2 11:19:42 it's not base 2, it's unbounded 11:19:56 I mean taking %2 11:20:00 hmm... 11:20:01 and i'm trying to avoid negatives 11:20:15 why? 11:20:45 that seems arbitrary 11:20:54 so it's a direct improvement on the previous 5 cell algorithm, which i don't think needs them 11:21:02 dude 11:21:08 using negatives is not a flaw 11:21:49 in any case i'm not sure your method works even with negatives. 11:22:07 recall we don't _have_ "if" as a primitive. 11:22:49 Do you need to preserve the number? 11:22:51 it has to be done with loops, and it's awkward to fit things in just 3 cells 11:23:01 Taneb: yes. at least if it's odd. 11:23:14 preferably always, since it would be the final program result. 11:23:35 Hmmm 11:23:49 -!- nooga has quit (Ping timeout: 258 seconds). 11:24:23 oerjan: given my pointer at n 11:25:19 >[-]>[-]<<[->+>+<<]>>[-<<+>>]<[->[--]+<] 11:25:37 leaves me pointing at the 0 in n,0,n%2 11:26:13 yay 11:26:48 you can shorten it a bit 11:26:48 ok it's 0,n,*n before the [-<<+>>]<[->[--]+<] right 11:26:58 yeah 11:27:11 the first block just moves you to *n,n,0 11:27:42 the second block flips the third cell from 0 to -1 as you decrement the second 11:27:43 oh and actually n,*n,0 before the [->[--]+<] 11:27:52 yeah 11:28:16 coppro: i can do moving things around myself ;P 11:28:26 I know 11:28:33 [->+>+<<]>+[>[--<--<++>>]<][<->]+ could work, haven't checked it 11:28:39 the last block is the only one actually involved in the calculation 11:28:54 coppro: erm [->[--]+<] doesn't halt if n is odd 11:29:07 oerjan: what are you talking about 11:29:14 oh wait duh 11:29:20 oh wait... 11:29:23 no I got that wrong 11:29:37 hmm 11:29:44 this would be easy if I had another 0 to work with 11:29:47 i misinterpreted, but is still expect that [--] to sometimes not halt 11:29:50 yeah 11:29:51 coppro: you don't say :P 11:30:03 *i 11:30:03 oerjan: Do you need a finite-length program too? 11:30:26 fizzie: yes... 11:30:35 oerjan: I take it relying on wraparound is bad? 11:30:49 very bad, unboundedness is essential here 11:31:15 it's supposed to a proof bf is TC with just 3 unbounded cells 11:31:25 ah 11:31:28 *be a 11:31:37 I was just about to ask for context, then I got it 11:33:24 oerjan: I'm going to bed but will think about it 11:33:35 thanks 11:35:54 wait changed my mind I have it 11:36:02 given *n,0,0 11:36:10 Taneb: that [<->] looks rather unlikely, it'll either infloop or do nothing 11:37:38 [->+<[->>+<<]] >> [-<-<+>>] < [-<+>>+<] > 11:37:48 gives you n,0,*n%2 11:37:48 Taneb: i think your main loop also infloops if n is odd 11:38:02 first block gives you 0,n/2+1,n/2 11:38:15 second block gives you n-n%2,n%2,0 11:38:29 third block gives you n,0,n%2 11:38:35 erm n/2 as in integer division? 11:38:37 yeah 11:38:46 wait fuck no 11:38:48 fffff 11:38:48 wouldn't that rather _obliterate_ whether n is even or odd 11:38:59 damn you brainfuck 11:39:16 nvm 11:39:19 glad to see you are getting the genuine fucked experience :P 11:39:19 back to bed 11:39:29 lol 11:39:41 This should be simple. 11:39:45 Why isn't this simple. 11:40:08 oerjan: /win 7 11:40:11 err 11:40:13 something 11:40:22 k actually going back to bed this time 11:40:39 i'm afraid i don't have that window, coppro. unless it's some secret i haven't heard about. 11:41:16 although i have frequently wondered why irssi always makes an empty /win 3 11:45:19 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 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 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 quintopia: i haven't visited non-freenode for years, if ever :P 11:47:38 but let's try it anyhow 11:47:46 I'm going to think about this differently 11:48:02 We have three variables, a, b, and c 11:48:25 We can add or subtract a constant from any of these variable 11:48:35 Taneb: probably a good idea 11:48:50 And we can start a loop that loops while a variable is not 0 11:49:25 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 Yes 11:50:28 variable a is equal to an arbitary number, b and c are zero 11:50:46 Call the number initially in a n 11:51:04 What we want is one variable to hold n, and another to hold n%2 11:51:21 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 wb boily 11:57:59 taneb: is your goal to determine if a value is even or odd? 11:58:32 Yes 11:58:41 In three cells in brainfuck 12:00:08 do you know its possible? 12:00:12 No 12:00:22 It is with 5 cels 12:00:25 *cells 12:00:37 the only method i could think of needs four 12:00:54 oerjan 12:00:55 ? 12:01:14 Four would be easy 12:01:43 I can think of a way of doing it in four cells too 12:01:56 its a good problem 12:02:30 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 hmm, not sure if that translates into bf 12:03:41 -!- FireyFly has changed nick to FireFly. 12:11:49 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 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 PatashuPikachuRe: the thing is translating to bf frequently means adding an extra cell for flow control... 12:28:27 oops now i'm wondering if _that_ is working again. oh well. 12:31:35 ok so I have what appears to be a solution 12:34:25 .. dammmmmmmmit 12:34:31 yeah it's tricky it's like, one scratch cell per conditional deep you go 12:34:37 where conditional includes things like moving 12:35:21 wait no this is right 12:36:18 hrm k so loops that don't evenly affect the IP hurt my mind 12:36:44 -!- derrik has joined. 12:36:53 yes, also they're hard to use here 12:37:12 but then maybe it could be essential 12:40:43 pretty sure it can be done with them 12:40:55 just need to figure out how to recenter 12:41:04 * coppro turns on light and pulls out whiteboard 12:42:53 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 ok I see how to do it 12:43:23 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 basically you have an input stack and an output stack 12:44:45 let n be the input stack and m be the output stack 12:45:33 I've just had a rather stupid idea 12:45:54 wait fuck thta gives no termination codition 12:46:13 still I think what you really want to rely on is the position of the stacks 12:46:30 stack of unaries? 12:46:37 yeah 12:46:41 rather than using value 12:48:24 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 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 what I'm envisioning is [ (move 1 from n to m) [ (move 1 from n to m and something else) ] (something) ] 12:52:31 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 fractran loop? 12:53:03 um yes, the idea is to convert fractran to brainfuck 12:53:53 i should write that part down properly 12:56:01 how do you write down properly "the idea is to convert fractran to brainfuck" 12:56:04 ? 12:56:46 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 got it 13:01:05 start with *n,0,m 13:01:16 go to *n-1,0,m+1 13:02:06 now do a if n-1 is nonzero, you go to m,*0,n-1 13:02:44 wait I had it backwards the IP doesn't work that way 13:02:47 fff 13:03:14 is this loop supposed to be unbalanced? 13:03:19 yeah 13:03:22 probably 13:03:36 but not necessarily 13:03:37 well looks possible so far 13:04:04 you are either at *0,0,m+1 or m,*0,n-1 13:04:05 wait yes you can do this 13:04:07 right 13:04:26 now go to 0,*0,m+1 or m,0,*n-1 13:04:33 and if the cell pointed to is nonzero, move left 13:04:51 right that synchronizes 13:04:55 err sorry replace m,*0,n-1 with m+2,*0,n-1 13:04:59 Anyway, my stupid idea was a programming language that spews brainfuck code and immediately interprets it. 13:05:25 This allows for infinite-length programs 13:05:38 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 unless, hmm 13:07:06 if you then go right and subtract one, you have 0,0,*m or m+2,0,*n-2 13:07:49 where n-2 might be zero 13:08:04 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 aha there's a way and I'm actually sure this time 13:10:22 start at 0,m,n. Go to *n-1,m+1,0 and branch 13:10:49 if you took the branch, go to *0,m+2,n-2 13:11:09 ok, that's still balanced 13:11:50 add one to each cell 13:11:59 all of them? 13:12:18 err don't 13:12:26 instead, go right one cell. if nonzero go right again 13:13:02 i think that runs off the tape 13:13:21 oh damn 13:13:24 damndamndamn 13:13:32 fucking brainfuck 13:13:56 I wonder if you can shift columns to get that algorithm anyway? 13:14:26 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 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 what's the behaviour of brainfuck if you run off the edge of the tape? 13:17:48 segfault? loop? ignore? 13:17:59 -!- ais523 has quit (Read error: Connection reset by peer). 13:18:13 aha 13:18:50 implementation dependant 13:18:57 PatashuPikachuRe: i'm pretty sure all of those options will have been tried 13:19:10 figures it's undefined behavior 13:21:15 -!- ais523 has joined. 13:21:27 off the left edge, it should crash 13:21:30 you can't go off the rightedge 13:21:33 *right edge 13:21:35 because there isn't one 13:22:25 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 err 13:22:39 swap is a bad term 13:22:43 ais523: original bf had a 30k or so limit 13:22:44 move each column left 13:22:51 this is fine because the left column is 0 13:22:54 oerjan: that was a bug 13:23:20 in any case _this_ problem has tape length 3, and don't you dare leave it. 13:25:42 ais523: What are you basing that assessment on? The original brainfuck-2.lha:README file says "The 30000 array elements". 13:26:20 ahaha wait 13:26:27 I fail 13:26:33 I figured out how to loop only if you got to 0 13:26:43 useful but wrong 13:26:51 fizzie: I think the spec has mutated over time 13:26:58 making the original interp retroactively buggy 13:27:27 oerjan: are you in need of a negation operator? :P 13:27:44 coppro: wat 13:27:54 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 fizzie: hmm 13:29:45 doesn't more or less every article on BF say that it's Turing-complete? 13:29:49 oerjan: I can make it loop if one, but not two, columns are nonzero 13:29:53 I think it's that that retroactively changed the spec 13:30:25 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 coppro: i'm afraid the reverse would be more impressive 13:30:37 fizzie: I suppose so 13:30:42 oh wait 13:30:51 majority vote of implementations gives it 8-bit cells, at least 13:30:53 coppro: misread you. hm, interesting... 13:30:57 although I'm aware that that's not completely standard 13:31:11 "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 coppro: that would indeed make things easier. 13:32:10 (Aways.) 13:32:35 * ais523 originally misparsed that as a typo for "always" 13:32:57 ais523: um it wasn't? 13:33:06 -!- Tritonio has joined. 13:33:14 oerjan: I think it's more likely to mean "I am away, at least for a while" 13:35:46 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 heh 13:37:05 for %2 in gcc-bf, I just multiply by 128, then check zeroness 13:37:12 bu that requires 8-bit bounded cells 13:37:55 sorry, no can do 13:39:05 you can use repeated negation with unbounded cells, but I'm not sure if three cells is enough 13:39:44 hm i got an idea, what if you calculated n/2 first... 13:40:08 then you can get n,0,(n/2)*2 13:41:07 actually scratch that, you can directly get n%2,n/2,0 13:41:44 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 and from that i think you can get to n,0,n%2 13:42:24 ais523: well i'm assuming nonnegative so far 13:42:32 are you trying to do a Minsky machine with three cells? 13:42:39 I've just realised what the conversation's probably about 13:43:04 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 (and which is afaiu part of the proof that minsky machines only need 2 registers) 13:44:56 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 *-minsky, although it was probably invented by minsky 13:46:54 can't you just use the BF IP to record the machine state? 13:47:24 maybe but the fractran control flow is so much easier :P 13:48:34 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 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 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 just solved the 3-cell parity problem. took long enough :/ 13:56:05 hey! 13:56:40 i wont spoil. dont have time to right now. 13:57:17 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 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 Mikä. 17:17:19 Mikä on mikä? 17:31:30 Mika on Häkkinen. 17:31:53 Ah. 17:32:12 Mikä on "ne panee koiriaan ihan oikeasti"? 17:32:21 "They're really fucking their dogs." 17:32:34 I see. What sort of word is "koiriaan"? 17:33:20 Oh, it's "koiria -an", isn't it. 17:33:26 -!- CakeProphet has quit (Ping timeout: 276 seconds). 17:33:58 Well, "koira" is the nominative case for "dog". 17:34:40 -!- Taneb has joined. 17:34:53 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 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 What, ...Klingon? 17:38:11 Finnish. 17:38:25 -!- zzo38 has quit (Remote host closed the connection). 17:38:51 -!- Guest47670 has changed nick to Gregor. 17:39:02 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 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 They even use the dog example. 17:41:41 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 Could you begin to explain why the partitive plural is "koiria"? :P 17:48:24 But, yes. Then I guess "ihan oikeasti" is just an intensifier. 17:48:39 Yes, it's pretty much like "-- for real". 17:49:11 If you wanted to ask that phrase, would it be "ihan oikeastiko"? 17:49:26 You could ask that, yes. 17:49:58 You could even just ask "oikeesti?" with the suitable intonation when speaking. 17:50:40 If you just asked "ko?", I suppose people would suspect that you're asking whether the ko rule applies. 17:51:20 I'm not sure what I'd suspect; it would be a bit weird thing to say. Maybe that. 17:51:35 What would make the perfect programming language, in your eyes? 17:52:14 Taneb: having all necessary features and lacking all unnecessary features. 17:53:55 It should have a static typing system that's really fucking expressive. 17:54:50 Vitun expressive ihan oikeasti. 17:57:13 Define expressive? 17:58:22 Well, it should be able to define types such as "valid strategy for playing Euchre". 17:58:57 Which is, I suppose, a function taking a Euchre situation and returning an action valid in that situation. 18:00:46 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 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 On Windows, where multiple calling conventions are common, the names are mangled differently based on the convention. 18:07:32 tswett: It's just addresses. 18:08:13 Neat. 18:08:21 So you could do some deducing based on the mangling type. But mostly it's just symbols-to-addresses. 18:08:41 You can also deduce whether something is a function or data. 18:09:58 I don't know if any debugging info formats include much metadata. Source locations and all that, at least. 18:11:13 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 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 fizzie: Those generally *do* include type metadata. 18:13:18 -!- TeruFSX has joined. 18:13:28 Part of why debugging symbols take quite a bit of space. 18:13:45 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 !show test 18:39:17 That is not a user interpreter! 18:39:22 !show sanetemp 18:39:23 sh dc -e "1k?32-5*9/p" 18:39:25 !show insanetemp 18:39:25 sh dc -e "1k?9*5/32+p" 18:39:34 !show nop 18:39:35 That is not a user interpreter! 18:39:51 !addinterp sanetemp cat 18:39:51 ​There is already an interpreter for sanetemp! 18:39:52 !sanetemp 5 18:39:53 ​-15.0 18:39:54 * Lymee runs 18:40:10 !sanetemp -40 18:40:10 dc: stack empty 18:40:22 ... 18:40:26 !sanetemp 100 18:40:27 37.7 18:40:39 !insanetemp 0 18:40:40 32.0 18:40:58 !sanetemp 100000000000000000000000000 18:40:59 55555555555555555555555537.7 18:41:07 That is not a sane tempature. You lie. 18:41:17 !sanetemp 20 18:41:17 ​-6.6 18:41:20 !sanetemp 30 18:41:20 ​-1.1 18:43:48 !delinterp sanetemp 18:43:48 ​Interpreter sanetemp deleted. 18:44:06 !addinterp sanetemp "1k?9*5/459-p" 18:44:06 ​Interpreter _1k_9_5_459_p_ does not exist! 18:44:15 !addinterp sanetemp sh dc -e "1k?9*5/459-p" 18:44:15 ​Interpreter sanetemp installed. 18:44:31 !sanetemp 104 18:44:32 ​-271.8 18:44:49 !delinterp sanetemp 18:44:49 ​Interpreter sanetemp deleted. 18:45:37 !addinterp sanetemp sh dc -e "1k?9*5/459 67 100/++p" 18:45:38 ​Interpreter sanetemp installed. 18:45:47 !sanetemp 104 18:45:47 646.8 18:46:03 -!- pumpkin has changed nick to copumpkin. 18:46:07 !delinterp sanetemp 18:46:07 ​Interpreter sanetemp deleted. 18:46:13 !addinterp sanetemp sh dc -e "1k?9*5/459.67+p" 18:46:13 ​Interpreter sanetemp installed. 18:46:16 !sanetemp 104 18:46:17 646.87 18:46:20 !sanetemp -40 18:46:21 dc: stack empty 18:46:26 That "?" is going to have trouble with negative numbers 18:46:27 !sanetemp _40 18:46:28 387.67 18:46:49 !insanetemp 387.67 18:46:49 729.8 18:47:03 !delinterp sanetemp 18:47:03 ​Interpreter sanetemp deleted. 18:47:04 !addinterp sanetemp sh dc -e "1k?459.67-5*9/p" 18:47:04 ​Interpreter sanetemp installed. 18:47:06 !sanetemp 104 18:47:07 ​-197.5 18:47:10 What. 18:47:14 * Sgeo knows nothing about dc 18:47:18 !delinterp sanetemp 18:47:18 ​Interpreter sanetemp deleted. 18:47:20 !addinterp sanetemp sh dc -e "1k?459.67+5*9/p" 18:47:20 ​Interpreter sanetemp installed. 18:47:22 !sanetemp 104 18:47:22 313.1 18:56:13 EgoBot responds to PM y'know 18:56:46 dc: stack empty 18:56:46 ... 18:56:57 !sanetemp 40_ 18:56:57 255.3 18:57:24 Oh, right. 18:57:26 Stupid dc. 19:03:40 -!- oerjan has joined. 19:08:18 -!- monqy has joined. 19:13:56 `addquote Well, I'm now experimenting with clients 19:13:58 558) Well, I'm now experimenting with clients 19:14:06 Did that wrong 19:14:11 How do I remove that? 19:14:40 try `delquote, if it works 19:14:41 `delquote 558 19:14:43 ​*poof* 19:14:49 `quote 558 19:14:51 No output. 19:15:32 `addquote Well, I'm now experimenting with clients It doesn't sound like good PR to say that out loud. 19:15:34 558) Well, I'm now experimenting with clients It doesn't sound like good PR to say that out loud. 19:16:14 That's wht I wanted to do 19:16:35 You ignored the two-space rule elliott religiously holds to. 19:16:44 `delquote 558 19:16:46 ​*poof* 19:16:47 `addquote Well, I'm now experimenting with clients It doesn't sound like good PR to say that out loud. 19:16:48 558) Well, I'm now experimenting with clients It doesn't sound like good PR to say that out loud. 19:17:01 -!- pumpkin has joined. 19:17:13 Those people from Hexham are weird 19:17:23 I know this from personal experience 19:17:53 -!- derrik has left. 19:18:37 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 not even the security code on the back 19:18:44 that's sort-of amazing 19:18:52 And sort of creepy 19:19:05 yep 19:19:17 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 It's Amazon; it's only proper that it behaves in amazing ways. 19:19:47 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 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 It's better than it remembering your personal PIN number that identifies you 19:21:26 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 "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 Is that accurate? Sounds inefficient for look-ups etc. 19:22:36 Paypal is, I guess, pretty big too. At least they move a lot of money. 19:22:53 Oh, hmm, maybe "list" in Perl terms, not as a typical... meh 19:23:15 "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 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 the hash itself is not ordered, it's just a dictionary 19:23:36 Isn't that sort of inconsistency the thing that plagues PHP? 19:23:41 but there's no such thing as a "hash literal", you use an array literal and it converts 19:24:07 It's also "physically" implemented as a usual-ish hashtable. 19:24:22 my $scalar = ("Alpha", "Beta", "Gamma", "Pie"); 19:24:22 print $scalar; # "4" 19:24:40 n/m that one 19:26:00 Um, that's it for my questions, I think. 19:26:44 the weird syntax for things like sort/grep/etc is a historical reason 19:27:02 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 Hmm, the SQA exam results are being released. 19:28:10 I wonder if they'll remember my address this year. 19:30:59 Silly PH, living in a country some of which is west of me! 19:35:44 Taneb: surely it's both east /and/ west 19:36:48 Yeah, but I'm not walking East to get to Scoland 19:36:48 Or Scotland or that matte 19:36:48 r 19:37:02 Actually, I'm not going to walk West either 19:37:25 Unless I want to go to Dumfries 19:40:48 And had no money 19:40:58 Nor the charisma to get a lift 19:41:24 Nor the sauveness required to ge away without paying on a train 19:42:55 So, I'm not going to walk to Dumfries 19:43:10 Even though it's to the east o me 19:43:17 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 oerjan: how do you calculate n/2? I scrapped that idea when I realized it's probably not possible 20:01:57 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 yeah 20:02:19 and as for paypal, if you don't store money in the account, you're fine 20:02:26 they aren't actually sketchy on credit card or anything 20:02:41 just very trigger-happy and arbitrary when it comes to termination 20:04:06 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 *there 20:08:23 Trying to introduce a friend of mine Haskell 20:08:36 Realised he doesn't understand algebra 20:08:42 Persevering 20:08:52 Taneb the masochist 20:09:16 Okay, he's refusing to do 2 + 2 20:09:28 Taneb the doomed 20:15:32 Hmm... 20:15:57 Can anyone recommend a programming language to an aspirin actor who's crap at maths? 20:16:04 wait, does he understand any form of programming at all? 20:16:07 Shakespeare. 20:16:20 ...what's an aspirin actor 20:16:33 someone who gives you headaches? 20:16:34 One who acts in aspirin ads, duh. 20:17:20 incidentally, i've never noted that similarity before. i suppose it must have been intentional branding. 20:17:26 *noticed 20:18:05 is the first i long or short? 20:18:27 In 'aspirin'? Short. 20:18:32 or wait, hm... 20:20:01 It's a combination of acetyl and spirsäure 20:20:10 "The new drug, formally acetylsalicylic acid, was named Aspirin by Bayer AG after the old botanical name for meadowsweet, Spiraea ulmaria." 20:21:24 and it was german, so the long vs. short i is irrelevant. 20:25:54 aspirieren seems to be german 20:28:55 null [] 20:29:05 Woops, wrong tab 20:29:35 True 20:29:48 Thank you, Deewiant 20:30:09 :1:10 parse error on input `,' 20:31:41 :quit 20:32:02 Leaving GHCi. 20:35:48 -!- boily has quit (Read error: Operation timed out). 20:35:54 http://www.gutenberg.org/wiki/Mathematics_%28Bookshelf%29 are any of these a good read? 20:45:46 -!- elliott has joined. 20:46:10 hi 20:47:01 hello 20:47:05 ho 20:47:19 hi 20:49:53 hy 20:50:28 19:32:46: * pikhq_ is tempted to write a partial git implementation. Anyone think of reasons I shouldn't? 20:50:28 sg 20:50:31 -!- GreaseMonkey has joined. 20:50:31 -!- GreaseMonkey has quit (Changing host). 20:50:32 -!- GreaseMonkey has joined. 20:50:46 20:01:06: what does right-leaning mean help 20:50:46 the guy never dedents the code 20:50:47 like 20:50:52 reallylongfunction = do ... 20:50:55 all the code lines are aligned with ... 20:50:58 and a bunch of nested conditionals 20:51:04 so it's like three hundred chars long :( 20:51:23 oerjan: I've forgotten 20:51:33 oh 20:51:42 I do that, but I also stick to 80 columns 20:51:42 elliott, "codelipo" 20:51:46 Go make a pretty printer named that. 20:52:01 Deewiant: You should put a newline after "do" and then one indent :( 20:52:12 Unless you write C like 20:52:15 I don't, if it fits in 80 columns 20:52:18 int foo(int a, int b) { printf("..."); 20:52:19 I usually do a newline after do but sometimes I don't 20:53:05 20:22:14: "The report has sparked anger from IE supporters, who have threatened AptiQuant with legal action. 20:53:06 wow 20:53:21 That was later revealeed a fraud 20:53:32 The whole shazam 20:53:44 yep, it was a hoax 20:54:21 Taneb: um that quote appeared a few lines after the article saying it was a hoax. 20:54:22 darn you mean i won't get my money? 20:54:47 oerjan: yes you will. (good thing you're stupid enough to believe this) 20:55:08 ah. excellent. 20:55:33 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 next time on aptiquant.com: Report on Just How Fucking Stupid We Can Possibly Be 20:56:13 isn't ie6 dead 20:56:18 no 20:56:20 :( 20:56:27 Hmm... 20:56:33 Does cpp work well on Java code? 20:56:45 it does, yes 20:56:49 I've done it 20:57:14 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 People with higher IQ are shunning Internet Explorer study - Computer Business Review 20:57:36 I heard that was a hoax 20:57:45 :P 20:57:52 In May 2010, Microsoft started its "milk campaign", saying that using IE6 is like drinking nine-year-old milk. 20:58:04 ah, this explains Firefox's new "release once every week" policy. 20:58:05 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 elliott: oh, there was an awesome bit of spam which I left for you, but Keymaker deleted it 20:58:20 Well, goodnight 20:58:21 ais523: :( 20:58:24 elliott: so using IE9 is like drinking month-old milk? 20:58:28 elliott: it was advertising Google 20:58:34 ais523: that was my Firefox joke >:( 20:58:35 and had a link to google.com at the end 20:58:39 :D 20:58:42 -!- Taneb has quit (Quit: THEY ARE HERE). 20:58:46 can you delete it for like three seconds or something 20:58:55 (diff) (hist) . . N AnyPL‎; 18:55 . . (+18,908) . . PLarsen (Talk | contribs) (Renamed APL to AnyPL to avoid misconceptions) 20:58:57 (diff) (hist) . . APL‎; 18:58 . . (-18,999) . . PLarsen (Talk | contribs) (APL is renamed to AnyPL) 20:59:03 whats move page 20:59:03 help 20:59:06 ais523: hmm, can I ask you to delete AnyPL, revert that change to APL, and move it to AnyPL? 20:59:29 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 not a license violation since they're the only contributor and we're public domain, but it still erases history 20:59:49 ais523: it clearly is a search :D 21:00:08 I'm not sure I can call a language User:Icornellhoffmane 21:00:17 elliott: there are probably edits to AnyPL for at least the name change... 21:00:21 Icornellhoffmane sounds like a cool language name, though 21:00:28 oerjan: um yes but they can easily be repeated. 21:00:41 by saving AnyPL's source code 21:00:45 and saving it over the resulting article 21:00:49 User:Icornellhoffmane/index.php 21:00:58 oh... this: http://www.bbc.co.uk/news/technology-14389430 is sad news then 21:01:14 elliott: err, please don't tell me how to do a history merge 21:01:15 (the "Internet Explorer story was bogus" story) 21:01:21 ais523: :D 21:01:22 especially not if you get it wrong 21:01:26 elliott: well i'm just worried ais523 might take you literally 21:01:26 ais523: oh did I :( 21:01:38 oerjan: he has access to deleted pages, anyway 21:01:49 ais523: I forgot it was common practice, and also forgot the name 21:01:49 wait, I didit wrong too 21:01:52 hahaha 21:01:56 do you want me to tell you how to do it 21:02:02 oh, groan 21:02:09 you forgot to omit the blanking change 21:02:24 no I didn't 21:02:29 it was a change made to the combined pages 21:02:50 well, it breaks the diffs 21:03:10 it was just vandalism + revert 21:03:16 haha 21:03:37 anyway, you do a combined delete+move first, then undelete, then set the top revision 21:03:46 and I got the last two steps in the wrong order, and so set the wrong top revision 21:04:20 well, my way was equivalent if the wrongly moved page has no changes made 21:04:47 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 you used to have to do something like that 21:05:03 haha 21:05:13 and I ended up editing db-histmerge to say "this page needs to be temporarily deleted" or something like that 21:05:24 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 ^def test bf ,[[->+<],]>. 21:12:42 Defined. 21:12:45 ^test hm 21:12:45 21:12:50 wat 21:13:17 that, indeed, was unexpected. 21:13:29 oh wait 21:13:52 ^def test bf ,[>[-]<[->+<],]>. 21:13:52 Defined. 21:13:55 ^test hm 21:13:56 m 21:20:38 furniture: the movie 21:23:20 monqy: im....glfwpipe......................................................... 21:23:26 :o 21:23:39 is logo a functional language? 21:24:56 is scheme a functional language 21:25:33 help whats a functieonl language help 21:25:57 is BASIC a functional language? 21:26:08 is cobol a functional language 21:26:13 is monqy a functional language 21:26:40 im the most fucntioanl language hello 21:26:47 is elliott a functional 21:26:51 is english a functional language 21:26:53 is olsner functional 21:27:02 elliott is functional? 21:27:09 functional olsner 21:27:15 .com 21:27:30 objective elliott 21:28:10 structured water: functional healing 21:28:33 also, why is the topic so empty nowadays? 21:28:47 because anti-clog sentiment 21:28:48 brewed 21:28:52 and i clamp on down on it 21:28:57 with my fsits 21:29:03 is clog a functional language 21:29:08 topic is glove, much too glove 21:29:20 anti-glove it 21:29:48 is a functional language 21:29:50 unglove my heart^Wtopic 21:31:15 .org 21:31:17 .com 21:31:41 .org.com.net.ng 21:31:51 .tk 21:31:58 .co.uk 21:32:05 .biz.info 21:32:21 (this is all concatenated, right? otherwise it's just silly...) 21:32:22 .java.lang 21:32:34 olsner: yes 21:32:39 .Exception 21:32:40 elliott: good 21:33:09 .good 21:33:18 .god 21:33:28 .jesus 21:33:39 .holyghost 21:33:44 .email 21:33:56 .xxx 21:34:43 @istanbul.cn 21:34:43 Unknown command, try @list 21:34:54 my new email address 21:36:23 istanbul isn't in china 21:36:45 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 hello 21:44:41 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 oh please, you already sent me that link 21:46:31 youtube links should probably be forbidden in #esoteric, they seldom do anything good in here 21:48:42 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 hmm, mostly anyway 21:50:06 -!- zzo38 has joined. 21:51:13 olsner: what 21:53:09 elliott: indeed 21:53:28 In D. 21:54:02 In Dd. 21:54:16 "CLICK ON VAN DAMMES MULLET TO SEE MORE" -- actual internet advert 21:55:42 what 21:55:56 what sort of ad 21:55:57 is this 21:56:06 is the mullet moving 21:56:13 no 21:56:16 do you want a picture 21:56:21 do you get a free ipod if you click it 21:56:32 it is for coors light i think 21:57:00 http://ompldr.org/vOXF3bQ 21:57:40 hmm, but technically his mullet would be behind his face, wouldn't it? 21:58:42 ^def test bf ,[>+[-[---->+++++<]<[>>[-----<++++>]<++<-[->>+<<]]>>[-<<+>>]<[-<[>[->+<]>++<<[->+<]>-<]>[-<+>]]>[-<+>]<[-<[>[->+<]>++<<[->+<]>-<]>[-<+>]]>[-<+>]<[-<[>[->+<]>++<<[->+<]>-<]>[-<+>]]>[-<+>]<]<.,] 21:58:43 Defined. 21:58:50 ^test 0123456789 21:58:51 <123A567F9 21:59:17 * oerjan cackles evilly 21:59:46 > chr 60 21:59:47 '<' 21:59:56 whats going on :/ 22:00:06 i'm testing part of my fractran conversion 22:00:38 that appears to be a working "if (n%4 == 0) then n=5*(n/4);" 22:01:05 (iterating over input characters, for testing) 22:02:22 oerjan: :DDDDDDDDDDDDddddddddd 22:02:45 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 elliott: i still have that minor halting problem you'll find in the logs 22:03:38 oerjan: oh 22:03:47 oerjan: i will click on van dammes mullet to see more, 22:05:06 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 I now have made prettyprinting Haskell, although, there is still a few things wrong. It includes: 22:05:40 * Spacing is a bit wrong 22:05:46 * Template Haskell is not supported 22:06:03 * Pragmas not yet supported 22:06:48 * Magic hash is only partially supported 22:07:06 does it have bullet points 22:07:10 * Cannot make strings span multiple source texts 22:07:25 * Some of the default symbols should be changed and more should be added 22:07:45 But, can you see how it currently is? See if it seem good, or whatever else it is? 22:08:04 21:34:35: Numberwang depends on more variables than a single number 22:08:04 21:35:13: No, but I was once in the studio audience of the show 22:08:04 i was going to go "cool" but tHTNE,.... 22:08:06 I EREALISED IT WAS A FAKE SHOW 22:08:17 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 cheater: Bullet points? Do you mean as a part of the program code or else? 22:08:20 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 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 oerjan: but that's when you have bounds on program running time, etc... 22:09:19 so you can know it'll never go past d 22:09:23 quintopia: note that the original x needs to be preserved in some cell 22:09:42 zzo38, no i mean more bullet points than the ones you just posted 22:09:47 oerjan: i didnt assume that. it takes one more cell if you want to do that 22:09:50 or at least reconstructable 22:09:53 it seems like the main feature of your program is bullet points 22:09:55 quintopia: darn :( 22:09:58 21:52:39: Taneb: you've seen numberwang *LIVE*!? 22:09:58 21:52:40: i know almost nothing about it 22:09:58 21:52:57: as i've never used it myself 22:09:58 21:53:20: it's for compile-time metaprogramming, afaik 22:10:22 cheater: No, I was just listing what some of the problem are currently with the program. 22:10:33 21:57:59: 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 zzo38: you mean an impure splice, basically? 22:10:45 i.e. $(foo) could be 9 one place and 0 another 22:11:31 elliott: it turned out he hadn't, he merely simply just lied about having done that 22:11:33 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 olsner: numberwang is not real......... 22:11:40 elliott: Yes I mean a bit like that 22:11:46 elliott: of course it is 22:12:06 21:59:39: Can you compile Haskell codes into LLVM codes? I have read LLVM documentation it does suppports Haskell calling convention 22:12:13 zzo38: GHC has this 22:12:18 and I think it's quickly becoming the most favoured backend. 22:12:28 r.i.p. c-- 22:12:54 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 22:07:58: 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 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 oerjan: indeed 22:13:26 oerjan: you could use <<< as a sure-fire halter >:) 22:14:02 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 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 zzo38: I don't understand what you mean by "the object representing what is replaced in the program code" 22:14:48 elliott: OK, but I mean can you include LLVM codes at compile-time? I don't mean at run-time 22:15:33 zzo38: i don't think so 22:15:52 r.i.p. c-- <-- wait it's gone? 22:16:26 i do not know 22:16:42 is it not gone 22:16:50 or not going, that is 22:17:44 04:52:42: is there a name for a numbering system where every single positive integer has a distinct symbol? 22:17:45 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 quintopia: the naturals 22:17:53 -!- GreaseMonkey has quit (Quit: The Other Game). 22:18:02 elliott: that subject is over 22:18:02 "whole bunch" he has precisely three cells 22:18:08 quintopia: i un-overed it 22:18:15 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 wait, is he trrying to fit the entire converter into 3 cells? 22:18:48 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 zzo38: i'm not quite sure i understand 22:18:56 quintopia: that's the whole point of the converter 22:19:06 oerjan: it was a joke, if you only have three cells then <<< is necessarily invalid 22:19:08 why 22:19:17 quintopia: to prove that three-cell BF is tc 22:19:24 aha 22:19:37 so we know already that four cell BF is? 22:19:46 04:56:09: he's talking about an infinite number of symbols. I don't think that has a name. 22:19:47 it does, it's called a "set" 22:19:50 quintopia: no. oerjan is just hardcore. 22:19:53 we know that six is IIRC 22:19:55 or was it seven 22:20:06 or was it five 22:20:14 zzo38: are you basically saying that you want foo in $(foo) to be able to use global state? 22:20:14 im dont know ;_; 22:20:22 i.e. if you do $(foo "a") it will note that "a" has been done 22:20:29 and not do it again if you say $(foo "a") later or whatever 22:21:23 elliott: five 22:21:24 04:57:28: it is not dumb 22:21:25 04:58:11: 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 this is the same fallacy that makes a language with a fixed-but-arbitrary-size heap TC 22:21:32 olsner, i hadn't sent you any links 22:21:35 don't feel so special 22:21:47 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 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 elliott: i realized it was dumb later...it'd be better if you just finished reading everything before commenting 22:22:26 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 quintopia: that is not the Way. 22:22:50 i hadn't sent it to you. i had sent it to a channel, to which you subscribed by joining. 22:22:58 zzo38: sorry, I still don't quite understand 22:23:28 cheater: still your fault I saw it 22:23:37 if anything, i hadn't opted to send it to you, you opted to receive it 22:23:46 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 fuck that olsner 22:23:54 how dare he say "oh please, you already sent me that link" 22:23:55 asshole 22:23:57 you show him dude 22:24:07 quintopia: you realise oerjan did it first :) 22:24:09 and continues to 22:24:16 quintopia, elliott is always annoying 22:24:26 learn to live with it, he can't be changed 22:24:29 elliott: Indeed. 22:24:32 i think cheater woke up on the wrong side of the bed today 22:24:35 (his bed has two wrong sides) 22:24:49 my bed has about six sides 22:24:57 given that it's in 3-D Space 22:24:59 hmm, two wrong sides... how many sides does that leave for being the right side(s)? 22:25:06 four. 22:25:10 no 22:25:16 dont forget inside and outside 22:25:19 olsner: well i assumed it is against a wall 22:25:19 (I would hate to wake up on the under-side of my bed) 22:25:22 so i guess he could lunge over the front 22:25:27 oh man, those are SIDES too! 22:25:28 and the inside, of course 22:25:35 there are other sides, but none of them are practical to exit from. 22:25:39 exit on 22:25:58 but who said anything about exiting the bed? 22:26:04 it's waking up that's the issue 22:26:15 -!- copumpkin has quit (Quit: Computer has gone to sleep.). 22:26:19 i live in a room with no walls 22:26:27 cheater is homeless. 22:26:32 not really. 22:26:43 the world is my home!!!!! 22:27:54 05:58:57: http://img.photobucket.com/albums/v216/Mechadragon/thetree.png 22:27:54 those are really shitty trees 22:28:21 looks like a spectrogram 22:28:35 `addquote I combined the wholegrain breakfast and chocolatey breakfast for maximum breakfast efficiency 22:28:37 559) I combined the wholegrain breakfast and chocolatey breakfast for maximum breakfast efficiency 22:28:44 why do people call logo the lisp without parentheses? 22:28:49 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 almost exactly like the spectrograms that websdr gives you 22:29:21 (But it doesn't have to be the directly previous one, there can be anything else in between) 22:29:32 cheater: because it is a fixed-arity lisp. 22:29:40 cheater: because it is rather similar below the syntax 22:29:42 that song totally does not look sequenced. 22:29:44 something :: String -> (Integer,Q Exp) something x = [| aaa bbb |] 22:29:46 zzo38: this is not valid 22:29:59 zzo38: something x = (length x, [| aaa |]) might be. 22:30:08 Yes, I know that, sorry. Now you made better. 22:30:13 I got mixed up. 22:30:21 f x = $(something) 22:30:27 also not valid, because something is not of type Q Exp 22:30:31 Your example is the kind of things I mean. 22:30:49 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 hmm 22:31:04 Like, is there a way to make it valid. 22:31:10 "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 like, do you want to stop anyone using that splice once? 22:31:22 they have to use it two or three times or whatever 22:31:37 elliott: No, I mean there must be an input otherwise how can it be used? 22:31:39 does the Integer record the number of times the splice has been used? 22:31:53 zzo38: ah. well yes, (String -> Q Exp) is not of type Q Exp. 22:31:57 The "Integer" would be the input. So there must be a input 22:31:58 zzo38, do you just mean state 22:32:15 cheater: Yes, maybe I mean like that 22:32:17 zzo38: the Integer there is part of the return type 22:32:21 not part of the input 22:33:08 except in state 22:33:21 arrive in state 22:33:25 11:21:02: dude 22:33:25 11:21:08: using negatives is not a flaw 22:33:29 coppro: it is if negatives impact his translation 22:34:04 Is it bad that I'm bruteforcing VVVVVV puzzles? 22:34:42 i'll pass this question on to our VVVVVVVVVVVvvvvvvvvv expert FireFly 22:34:43 erm 22:34:44 fizzie 22:34:59 Well, I did finish VVVVVV 22:35:11 i finished the uh 22:35:13 free demo 22:35:19 ages ago 22:35:32 i should buy the bnudle............ 22:35:38 idnie bnudle. 22:35:40 Yes, you should 22:36:58 the bnudle is probably good but the trailer killed me and did bad things to my corpse 22:37:29 at least i think it was the trailer 22:37:43 12:36:53: yes, also they're hard to use here 22:37:44 12:37:12: but then maybe it could be essential 22:37:49 oerjan: is BF with only balanced loops TC? 22:38:00 I somewhat doubt it considering how simple an instruction set you can translate them to 22:38:16 if it isn't, then you _must_ used an unbalanced loop somewhere. 22:38:17 elliott: yes it is. 22:38:20 oerjan: huh, okay 22:38:26 oerjan: cool, we should eliminate them, then 22:38:31 would make optimisation a hell of a lot easier. 22:39:06 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 elliott: pikhq_'s BFM worked much better when generating balanced loops iirc 22:39:49 well if you can arrange things so that you would fortuitously land on a 0 when you need to halt... 22:39:58 how do unbalanced loops workii forget the spec 22:39:58 oerjan: heh, well obviously compilers can do balanced loops really quickly 22:40:04 because of the polynomial translation 22:40:28 monqy: unbalanced = doesn't move left as much as it moves right 22:40:49 oh 22:40:54 oh right 22:40:59 I was thinking different things oops 22:41:14 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 Now do you understand what I mean? 22:41:41 FireFly, I feel like I was mashing buttons for the chords 22:41:57 zzo38: you mean... 22:42:04 zzo38: $(something 9) could return (Integer, Q Exp) 22:42:06 erm 22:42:09 zzo38: $(something 9) could return (String, Q Exp) 22:42:13 then in $(something x) 22:42:17 x would have to be a String?? 22:42:22 I don't really see what you mean at all 22:42:58 Bleeping diode 22:43:08 bleeping? 22:43:57 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 ah, hmm 22:44:20 you mean 22:44:22 you would use it like: 22:44:27 $($(something 99) "abc")? 22:44:43 No. That is not what I mean. 22:45:12 :( 22:45:16 Probably at first you would need something with the input type being () so that you can start 22:45:26 Otherwise you always need a input value and you don't have any 22:46:29 I will write a better example 22:46:32 17:51:35: What would make the perfect programming language, in your eyes? 22:46:32 @lang :-P 22:46:32 pong 22:47:14 zepto 22:47:21 @lang too 22:47:21 pong 22:47:25 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 aha 22:50:07 although i do recall there was some backend which went off an earlier stage 22:50:29 an experimental one, i wonder if it was the javascript one 22:50:46 or wait that wasn't ghc at all was it. 22:51:11 yhc, apparently 22:51:26 mhm 22:51:31 -!- copumpkin has joined. 22:51:47 rip yhc 22:52:30 20:28:55: null [] 22:52:30 20:29:05: Woops, wrong tab 22:52:31 20:29:35: True 22:52:31 20:29:48: Thank you, Deewiant 22:52:31 20:30:09: :1:10 parse error on input `,' 22:52:31 20:31:41: :quit 22:52:33 20:32:02: Leaving GHCi. 22:52:37 Deewiant: you should have done /quit Leaving GHCi. instead :P 22:54:46 Five Humble Indie Bundle 2 games added to the Humble Indie Bundle 3 22:54:48 oh for goodness sake 22:57:07 what does this mean 22:57:17 it means you get to play gish 22:57:22 or was that in HIB1 22:57:38 what's hib2 specific now 22:57:39 if anything 23:00:24 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 Now it is understand?????????????????????????????????????????????????????????????????????????????????????????????????????? 23:02:57 zzo38: I'll check 23:03:31 zzo38: OK, so what you want is mutable state 23:03:37 you could do this: 23:03:51 state :: IORef Bool; state = unsafePerformIO $ newIORef False 23:03:55 bbb :: Q Exp 23:04:28 bbb = do r <- liftIO $ readIORef state; liftIO $ writeIORef state False; if r then [ | 5 |] else [| 7 |] 23:04:33 similarly for cc 23:04:39 and aaa becomes unneccessary because we specify an initialiser 23:04:47 zzo38: this requires unsafePerformIO though, which is Bad 23:04:50 and indeed breaks the type system 23:04:54 and is thus kept in an unsafe module 23:05:04 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 elliott: I know, it is unsafePerformIO that is why I wanted it differently without unsafe 23:05:15 for instance, you could use whether stdout is in binary mode or not 23:05:26 or some other piece of internal state that doesn't matter to you 23:05:30 this is a huge hack, of course 23:05:37 you could write out the boolean to a file and read it back in, too 23:05:38 etc. 23:05:45 but generally i'd say that you shouldn't :P 23:05:57 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 so, yes it can almost certainly be done 23:06:10 it'll be ugly though :) 23:06:47 alternatively, don't mutable state ;_; 23:06:54 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 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 but I suspect the base libraries have some way to twiddle a bit on and off without effecting everything, by accident :) 23:09:55 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 Maybe another way would be to make $(doeverything x) where doeverything :: [([Integer], Q [Dec])] -> Q [Dec] 23:10:28 apparently it works on other people's computers 23:10:30 Does this way work? 23:10:36 but i tried on all my computers and it doesn't 23:10:52 zzo38: um well x would have to be a list of ([Integer], Q [Dec])s 23:10:55 which is a weird thing to pass 23:11:13 Yes I know it is 23:11:24 can it be that my libc is somehow fucked up? 23:12:54 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 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 zzo38: no. if you return type is (Q Dec), then you cannot cause any effects outside of Q. 23:14:35 you are restricted to what effects Q offers 23:16:19 cheater: So, what, ". ü." is the string it should output? 23:18:21 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 06:37:42 do you guys compile your haskell to machine code? 23:19:37 (06:47:05 what do they mean when they say pascal is pure?) 23:20:37 i dont know whether to keep this guy away from haskell or force him to learn it until he becomes smart 23:20:51 what do they mean when they say pascal is pure 23:20:53 help 23:22:18 pikhq_, it should output two spaces to the left of the umlaut u 23:22:31 . ü. 23:23:10 notice the string specifier is %3s which means the field should be formatted to 3 characters wide. 23:23:57 elliott: did they reach a conclusion 23:24:07 monqy: im not srue................................................................... 23:25:56 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 im searching for zyclops does this make me a bad person 23:26:53 02:17Zyclopshey pythoners, anyone know how to get python-setuptools installed under bsd? 23:26:56 02:22Zyclopsah ha 23:26:59 02:23Zyclopsi't py-setuptools under /ports/devel/ 23:27:10 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 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 07:40:06 erus`: linux-programmers only know about shell scripting and C 23:29:14 -!- ttm_ has joined. 23:29:27 i am having trouble finding zyclops' risk adventures online 23:29:44 http://tunes.org/~nef/logs/haskell/11.07.31 23:29:46 maybe he gave up :( 23:29:46 ur welcmome 23:30:08 oh that recent? 23:30:14 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 wait no 23:30:59 argh 23:31:00 where is it 23:31:15 http://tunes.org/~nef/logs/haskell/11.07.31 23:31:16 yeah 23:33:39 07:02:34 erm.. my progamming liniage went…. BBC basic -> basic -> visual basic -> c++ -> java -> php -> ruby 23:33:51 then he leaves 23:33:52 :'( 23:34:59 (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 Because, how can you otherwise make a number in Template Haskell that increments after each time? 23:37:37 (That is, if you don't use unsafe or other I/O stuff that doesn't belong) 23:41:01 zzo38: using IO from within Q is perfectly acecptable. 23:41:03 acceptable. 23:41:18 using unsafe functions probably is not, but IO is supposed to be accessible from Q. 23:41:45 runIO :: IO a -> Q aSource 23:41:45 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 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 s/aSource/a/ 23:41:57 oh right 23:42:01 zzo38: my solution was _incorrect_ 23:42:07 because splices can be run in any order 23:42:17 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 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 I don't know how well it would work with the rest of the stuff they have. 23:56:56 back 23:57:11 zzo38: Well, umm, that's just the state monad. 23:57:26 But, you cannot really force an ordering of splices at all. 23:57:32 Because the compiler can compile modules in any order, etc. 23:58:26 do it all in a single splice?