00:00:01 -!- shikhin has joined. 00:03:22 -!- shikhout has quit (Ping timeout: 272 seconds). 00:04:09 `cat bin/learn_append 00:04:09 ​#!/bin/bash \ topic=$(echo "$1" | lowercase | sed 's/^\(an\?\|the\) //;s/s\? .*//') \ stuff=$(echo "$1" | cut -d' ' -f2-) \ echo "$stuff" >>"wisdom/$topic" \ echo "I knew that." 00:05:30 -!- Bicyclidine has quit (Ping timeout: 246 seconds). 00:08:05 -!- tromp_ has joined. 00:11:23 `run sed -i -e '4afmt -w "wisdom/$topic"' -e 's/[$]stuff/ $stuff/' bin/learn_append 00:11:24 No output. 00:11:31 `url bin/learn_append 00:11:32 http://codu.org/projects/hackbot/fshg/index.cgi/file/tip/bin/learn_append 00:11:49 oops 00:11:53 `revert 00:11:54 Done. 00:12:09 `run sed -i -e '4afmt -w1000 "wisdom/$topic"' -e 's/[$]stuff/ $stuff/' bin/learn_append 00:12:11 No output. 00:12:43 oh hm 00:12:52 `revert 00:12:53 Done. 00:13:04 `run sed -i -e '4afmt -w1000 "wisdom/$topic"' bin/learn_append 00:13:06 No output. 00:13:57 `? burlesque 00:13:57 burlesque is only the sexiest language on earth. \ (see: http://mroman.ch/burlesque) 00:14:41 `learn_append burlesque 00:14:43 burlesque is only the sexiest language on earth. (see: http://mroman.ch/burlesque) \ \ I knew that. 00:14:49 wat 00:15:14 oh fmt isn't in place 00:15:18 fuck this 00:15:22 `revert 00:15:23 Done. 00:16:15 `revert 4933 00:16:16 Done. 00:16:17 Is there a standard HackEgo utility that splits a command line into two pieces (e.g. on the first whitespace)? 00:17:23 not that i recall 00:17:44 `dontaskdonttelllist 00:17:44 dontaskdonttelllist: q​u​i​n​t​o​p​i​a​ c​o​p​p​r​o​ m​y​n​a​m​e​ 00:18:33 @tell mroman_ I find your `learn_append is failing to understand how `learn works, also, evil newlines. 00:18:33 Consider it noted. 00:19:36 a standar unix utility to strip the last newline of a file would be nice, too. 00:19:40 *+d 00:20:38 ok a standard utility to remove internal newlines which isn't quite as atrocious as sed's method 00:22:09 what was the command to write stdin to a file but only _after_ the whole stdin has been read 00:22:20 sponge? 00:22:24 `which sponge 00:22:24 No output. 00:22:34 of course it's not standard :( 00:23:01 please shoot half the unix inventors for not making this obvious utility standard hth 00:23:44 * oerjan is hungry and should not be fixing anything other than food in this state 00:26:22 What does one need it for? 00:27:01 why do > and < even exist anyway 00:27:04 it should all be | 00:27:49 then sponge would just be an option for the "write into file" command 00:33:59 -!- AndoDaan has joined. 00:37:14 -!- Phantom_Hoover has quit (Ping timeout: 272 seconds). 00:43:23 `run fmt -w1000 bin/burlesque >b; mv b bin/burlesque; rm b 00:43:24 fmt: cannot open `bin/burlesque' for reading: No such file or directory \ rm: cannot remove `b': No such file or directory 00:43:27 oops 00:43:39 `run fmt -w1000 wisdom/burlesque >b; mv b wisdom/burlesque; rm b 00:43:41 rm: cannot remove `b': No such file or directory 00:43:49 ...ah. 00:43:57 `? burlesque 00:43:57 burlesque is only the sexiest language on earth. (see: http://mroman.ch/burlesque) 00:44:02 `? blsq 00:44:03 blsq (see burlesque) 00:44:08 `` cat bin/burlesque 00:44:09 No output. 00:44:26 `rm bin/burlesque 00:44:27 No output. 00:45:05 Where does the chain rule "come from"? Is there a simple answer? 00:45:30 `run echo "See Burlesque" >wisdom/blsq 00:45:31 No output. 00:45:51 `run sed -i 's/b/B/' wisdom/burlesque 00:45:52 No output. 00:45:55 `? burlesque 00:45:56 Burlesque is only the sexiest language on earth. (see: http://mroman.ch/burlesque) 00:46:01 `? blsq 00:46:01 See Burlesque 00:46:02 I heard that it's related to the functoriality of the tangent bundle mapping or something like that, but I don't entirely follow. But does that work for e.g. "types with holes"? 00:46:16 `run echo "See: Burlesque" >wisdom/blsq 00:46:17 No output. 00:47:53 Melvar: you need sponge whenever you want to change a file to the output of a pipe taking the same file as input. 00:48:43 `run sed -i 's/see/See/' wisdom/burlesque 00:48:44 No output. 00:48:49 `? burlesque 00:48:49 Burlesque is only the sexiest language on earth. (See: http://mroman.ch/burlesque) 00:49:02 hm... 00:49:15 `run sed -i 's/earth/Earth/' wisdom/burlesque 00:49:17 No output. 00:49:21 OKAY 00:49:42 * oerjan will put off a little the decision of whether to `rm bin/learn_append 00:50:58 oerjan: Somehow I have a feeling that sponge is not sufficient for that in all cases. 00:51:15 if you say so 00:52:14 I’m not sure enough about the concurrency semantics of pipelines though. 00:52:14 shachaf: well it's extremely intuitive from leibnitz notation: du/dt = du/dx * dx/dt 00:52:27 oerjan: yes, but what does that notation mean? 00:52:37 i would like an answer to this question 00:52:41 shachaf: infinitesimals hth 00:52:51 (see: non-standard analysis) 00:52:56 does it, though? 00:53:28 shachaf: that was the original intuition, then people discarded that as inconsistent, then abraham robinson showed it's a consistent viewpoint anyhow hth 00:53:34 in non-standard analysis, "the derivative of f(x) becomes f'(x) = {\rm st}\left( \frac{f(x+\Delta x)-f(x)}{\Delta x} \right) for an infinitesimal \Delta x" 00:53:45 that didn't copy quite as well as i'd hoped 00:54:11 but anyway you don't just have a dy divided by dx, you have a more complicated expression which you then take the standard part of 00:54:49 i think the "smooth infinitesimal analysis" perspective might be a bit more promising but i don't really know 00:55:17 How many people are using the UNIX "mail" program for their preference? 00:55:29 but at any rate dy/dx doesn't actually mean an infinitesimal dy divided by an infinitesimal dx as far as i can tell 00:55:37 even in the infinitesimal perspectives 00:56:19 shachaf: this is one of the cases where insisting on technicalities prevents understanding the perfectly valid intuitive reason 00:56:49 ok, so i want to understand the valid intuitive reason 00:57:33 and i want things like ∫E dy/dx dx = ∫E dy to make sense too 00:57:47 now my intuition is telling me to stop trying to explain this. 00:58:00 (sneaky bastard) 00:58:32 ok 00:59:25 Melvar: the point of sponge is that it does not open its output file for writing until after its input stream has been closed, to prevent such concurrency issues. 01:00:55 zzo38: an infinitesimal number hth 01:00:56 some_filter lifthrasiir: yeah 01:01:29 i,i cat foo | some_filter | cocat foo 01:02:14 oerjan: anyway the chain rule makes even more sense when you think about "structures with holes in them" 01:02:17 shachaf: oh a good name 01:02:20 oerjan: Is it guaranteed that things earlier in the pipe cannot read more input after closing their output? 01:02:29 "It also creates the output file atomically by renaming a temp file into place, and preserves the permissions of the output file if it already exists. If the output file is a special file or symlink, the data will be written to it." 01:02:41 Melvar: hm you've got a point. 01:03:11 ok, so _some_ uses still won't work. 01:03:12 Oh I see, any still-open things refer to the removed file then. 01:03:36 hm right that helps 01:03:49 That depends on whether sponge removes the file or writes over the old one. 01:04:01 shachaf: um see pasted line 01:04:29 Oh, I didn't see that. 01:05:21 OBVIOUSLY 01:05:42 shachaf: Btw how does your cat/cocat bit deal with redirections of stderr? 01:06:27 that would obviously require the ErrorT monad transformer hth 01:06:34 (or ExceptT, i hear) 01:06:39 Melvar: I guess you could have |f 2|g or something. 01:07:03 I've wondered a bit before about that. 01:10:54 shachaf: filter bar | thing ? 01:11:32 cat foo | filter 1|(thing) 2|(cocat bar) 01:11:35 I don't know. 01:11:43 cocat has a bunch of variations, like sponge and tee and pee 01:19:55 -!- AndoDaan_ has joined. 01:20:41 -!- AndoDaan has quit (Ping timeout: 260 seconds). 01:20:55 -!- AndoDaan_ has changed nick to AndoDaan. 01:21:39 So I finally figured out one of those "one person always tells the truth, one always lies, and one either tells the truth or lies" puzzles. 01:22:08 So which question do you ask? 01:22:15 If your goal is to figure out with one yes/no question whether the person you're talking to is predictable, you can ask: "Are you either predictable and answering this question truthfully, or unpredictable and answering this question untruthfully?" 01:22:40 The answer will be yes for a predictable person and no for an unpredictable person. 01:22:42 Not a yes/no question 01:22:50 sure it is 01:22:52 is it? 01:22:56 No, that's "either" as in logical or. 01:23:01 oh wait I'm dumb again 01:23:06 sorry 01:23:11 i mean, in normal people speak they'd answer they're "predictable" or whatever, but this is a logic puzzle 01:23:21 "is it either the case that ..." 01:24:00 http://www.xkcd.com/246/ 01:24:09 GeekDude: darn you beat my 1 second 01:24:15 *me by 01:24:16 lol 01:24:19 The trick is that the unpredictable person doesn't just say "yes"/"no" randomly, they say truth or falsehood randomly. 01:26:08 So you make a four-way "truth table", True/Yes, True/No, False/Yes, False/No, and see which options are possible. 01:26:28 For "are you answering this question truthfully?", the two possibilities are TY and FY. 01:26:29 Anyone want to go nerd sniping with me? 01:27:20 i have a homework problem about finding equivalent resistance, so uh 01:27:30 * GeekDude giggles 01:29:13 shachaf, now see if you can figure out which door they are guarding in the same question 01:29:25 Who said anything about doors? 01:29:43 If you just want to figure out the answer to a particular question, that's easy too. 01:30:10 Like, the original puzzle was there was a door to death and a door to freedom and two guards 01:30:13 And you had one question 01:31:05 !blsq {2 3 4 5}mo 01:31:06 {2 6 12 20} 01:31:30 @tell mroman_ mo doesn't actually square a list, it does zipWith (*) [1..] 01:31:30 Consider it noted. 01:31:45 Anyway I need to sleep now 01:32:02 -!- AndoDaan_ has joined. 01:32:16 -!- AndoDaan has quit (Ping timeout: 260 seconds). 01:32:21 what I wouldn't give for a decent internet connection. 01:32:25 -!- AndoDaan_ has changed nick to AndoDaan. 01:32:50 a kidney? 01:32:55 your firstborn? 01:33:30 your secret furry porn collection 01:33:36 I'd let my kidney impregnate me so I can offer the latter. 01:33:46 Secret? Ha! 01:33:52 OKAY 01:36:01 the autographed copy of "On Formally Undecidable Propositions in Principia Mathematica and Related Systems I" 01:37:35 tycho brahe's nose prosthetic 01:38:00 And his sister's glass eye. 01:38:15 the True Cross 01:38:38 Well, a couple of them. 01:38:46 ic 01:38:49 more than enough. 01:39:29 the sound of one hand clapping, on a phonograph recording made by edison 01:39:55 and finally, a partridge in a pear tree. 01:40:32 if i had any of those, I would... what was this about again? 01:41:07 what you wouldn't give for a decent internet connection 01:43:23 Solid gold brick? 01:44:08 -!- SvenGek has quit (Quit: Cuo-it). 01:44:46 hmm... Maybe not anything 01:45:14 the words of a desperate man 01:48:34 -!- AndoDaan_ has joined. 01:48:52 sadness 01:49:58 -!- AndoDaan has quit (Ping timeout: 276 seconds). 01:50:24 -!- AndoDaan_ has changed nick to AndoDaan. 01:50:29 I'd give a good wifi connection for a good wifi connection 02:04:22 * AndoDaan I am not here! 02:04:39 -!- AndoDaan has quit. 02:07:17 I believe to argue about pi vs tau, best way is to ignore circles while doing so. Circle is just one use of such thing. It shouldn't be the main point when figuring out what kind of constants to use, although it is one point just as much as the rest of mathematics is. 02:07:25 “On computable numbers, with an application to the Entscheidungsproblem” now a New York Times bestseller 02:08:49 zzo38: I believe that the symbols for pi and tau should be switched 02:08:54 then we should just call it a day 02:08:54 (I do use tau in some computer programs.) 02:09:37 #define TAU 6..... 02:10:10 6.28 02:10:15 Typographically, τ = ½ π. 02:10:18 It's tau: 6.28! 02:10:40 Actually I use a lot more digits than that, but that is a part of it 02:11:21 I believe tat neither pi or tau is wrong and that mathematics still works and still correct regardless. However, that doesn't tell you what is better. I think tau is probably better, but I don't really know everything about such thing. 02:11:53 what about M_2_SQRTPI 02:13:32 Only if you can construct it with straightedge and compass, Bike 02:13:42 atan(log(pi)) 02:14:33 what if i just draw a computer conforming to posix standards 02:15:18 That'd be fancy. 02:15:38 Does posix have a platonic form 02:15:51 yeah it's a bunch of squiggly-ass lines 02:18:47 http://xkcd.com/37/ 02:20:43 -!- GeekDude has quit (Quit: {{{}}{{{}}{{}}}{{}}} (www.adiirc.com)). 02:27:17 O, that that mean it is actually a bunch of squiggly ass-lines? 02:27:36 yes 02:34:43 [wiki] [[Mang]] http://esolangs.org/w/index.php?diff=40563&oldid=40560 * 66.229.243.72 * (+3800) Just did a ton of stuff with my language, including put the example interpreter implementation up 02:36:33 Maybe cards in Aberration Hater Card Game should be identified by their URI (which won't necessarily have to point to an existing file; it is only used as identifier and can be a "urn:" or "guid:" if you want, too), although the URI might not be printed on the card (or possibly it is as a kind of "small print barcode"). Do you like this? 02:36:57 It means that, if some people make up the card independently with the same name, that it can still be used anyways. 02:40:10 Did you see my All The Tropes Wiki user page? 02:42:58 [wiki] [[Mang]] http://esolangs.org/w/index.php?diff=40564&oldid=40563 * 66.229.243.72 * (+860) /* Hello world */ Edit with explaination of how it works 02:44:31 [wiki] [[Language list]] http://esolangs.org/w/index.php?diff=40565&oldid=40474 * 66.229.243.72 * (+11) Add my esolang to the giant list (Mang) 02:50:41 -!- Sgeo has quit (Read error: Connection reset by peer). 02:52:40 -!- Sgeo has joined. 03:26:22 -!- vyv has quit (Ping timeout: 240 seconds). 03:28:15 -!- vyv has joined. 03:56:17 -!- prooftechnique has joined. 04:03:50 Taneb: More generally, for any P, you can ask: "Is the truth of your answer equal to the truth of P?" 04:07:17 -!- Sprocklem has quit (Ping timeout: 245 seconds). 04:11:40 What are you refering to? 04:12:43 zzo38: The sort of puzzle where there are three people, where one tells the truth, one lies, and one either tells the truth or lies. 04:48:42 This Pokemon Card GB2 AI very often uses such things as DEFENDER and SELF-DESTRUCT at the worst possible times for them; it often gives me an advantage. 04:48:57 Why did they design such a stupid AI? 04:49:08 It is even worse than the first game. 04:55:12 It sounds as though they cloned the RPG AIs. 04:55:30 Maybe; I don't know. 04:55:40 You would not believe the number of times I've seen a trainer use Destruct with their last Pokemon. 04:55:45 Erm, Self-* 04:56:26 pikhq: I have seen it too a few times. How many times do you see? 04:56:41 I haven't counted. 04:57:09 I didn't think to during childhood, and those games were my life for a few years. 04:57:14 I can compare it to if you have a position in chess that you interpose check with a piece that prevents you from escaping your next move. 05:01:13 Maybe this comparison isn't quite as good, but it is something. 05:02:25 The use of SELF-DESTRUCT in these bad situations may be compared to a bad exchange in chess that loses the initiative. 05:05:03 Do you play chess at all? 05:05:19 I do, though it's been a while. 05:09:42 I don't really play chess very often, but sometimes I do, and I do sometimes read book describing chess, do some kind of chess problem, etc. 05:12:00 I also like the retroanalysis problems; I have seen one where it shows you the position of pieces on the board, but doesn't tell you whose turn it is or stuff like that; you are then asked: On which squares did captures occur? 05:23:11 -!- pikhq has quit (Read error: Connection reset by peer). 05:27:20 Bit shifting and binary arithmetic was invented far before computers were invented. 05:33:32 -!- pikhq has joined. 05:37:49 Is the Russian algorithm good for making multiplication in 6502? 05:45:27 oerjan: I tend to use tr '\n' ' ' to remove internal newlines. 05:45:44 -!- conehead_ has changed nick to conehead. 05:45:48 (Of course it converts a final newline to space too.) 05:45:57 aha 05:47:33 O, someone else mention a * b = f(a + b) - f(a - b) where f(x) = x * x / 4 and is of course stored in a precomputed lookup table. 05:47:49 hm that command also evilly does not edit in place. however... 05:47:58 `cat bin/learn_apply 05:47:58 cat: bin/learn_apply: No such file or directory 05:48:02 `cat bin/learn_append 05:48:02 ​#!/bin/bash \ topic=$(echo "$1" | lowercase | sed 's/^\(an\?\|the\) //;s/s\? .*//') \ stuff=$(echo "$1" | cut -d' ' -f2-) \ echo "$stuff" >>"wisdom/$topic" \ echo "I knew that." 05:49:04 It works very well for 8-bits multiplication, at least 05:50:38 `run sed -i "4ised -i 'y/"'\n'"/ /"'wisdom/$topic' bin/learn_append 05:50:39 No output. 05:50:42 `cat bin/learn_append 05:50:43 ​#!/bin/bash \ topic=$(echo "$1" | lowercase | sed 's/^\(an\?\|the\) //;s/s\? .*//') \ stuff=$(echo "$1" | cut -d' ' -f2-) \ sed -i 'y/ \ / /wisdom/$topic \ echo "$stuff" >>"wisdom/$topic" \ echo "I knew that." 05:50:50 bah 05:50:54 `revert 05:50:56 Done. 05:51:11 `run sed -i "4ised -i 'y/"'\\n'"/ /"'wisdom/$topic' bin/learn_append 05:51:12 No output. 05:51:16 `cat bin/learn_append 05:51:16 ​#!/bin/bash \ topic=$(echo "$1" | lowercase | sed 's/^\(an\?\|the\) //;s/s\? .*//') \ stuff=$(echo "$1" | cut -d' ' -f2-) \ sed -i 'y/\n/ /wisdom/$topic \ echo "$stuff" >>"wisdom/$topic" \ echo "I knew that." 05:51:27 `revert 05:51:28 Done. 05:51:59 `run sed -i "4ised -i 'y/"'\\n'"/ /' "'"wisdom/$topic"' bin/learn_append 05:52:01 No output. 05:52:04 `cat bin/learn_append 05:52:04 ​#!/bin/bash \ topic=$(echo "$1" | lowercase | sed 's/^\(an\?\|the\) //;s/s\? .*//') \ stuff=$(echo "$1" | cut -d' ' -f2-) \ sed -i 'y/\n/ /' "wisdom/$topic" \ echo "$stuff" >>"wisdom/$topic" \ echo "I knew that." 05:52:34 hm wait does sed support that 05:52:39 `? test 05:52:40 test failed. HackEgo-JUnit is not available. 05:52:50 `learn_append test test 05:52:52 I knew that. 05:52:54 `? test 05:52:55 test failed. HackEgo-JUnit is not available. \ test 05:52:59 fff 05:53:02 `revert 05:53:03 Done. 05:57:45 -!- tromp__ has joined. 05:58:09 fizzie: it also has the entirely fatal flaw of not allowing in-place editing hth 05:58:27 and sed's y does not seem to support \n 06:00:25 `revert 4949 06:00:27 Done. 06:00:34 -!- shikhout has joined. 06:00:37 -!- tromp_ has quit (Ping timeout: 260 seconds). 06:03:52 -!- shikhin has quit (Ping timeout: 260 seconds). 06:05:25 -!- AndoDaan has joined. 06:05:30 `run sed -i "4iperl -i -p -e 's/\n//' "'"wisdom/$topic"' bin/learn_append # from stackoverflow 06:05:31 No output. 06:05:41 `learn_append test test 06:05:44 I knew that. 06:05:47 `? test 06:05:48 test failed. HackEgo-JUnit is not available.test 06:05:52 oops 06:06:11 -!- prooftechnique has quit (Quit: return ()). 06:06:17 `run sed -i "4cperl -i -p -e 's/\n/ /' "'"wisdom/$topic"' bin/learn_append # from stackoverflow 06:06:18 No output. 06:06:21 `learn_append test test 06:06:24 ​/hackenv/bin/learn_append: line 6: unexpected EOF while looking for matching `'' \ /hackenv/bin/learn_append: line 9: syntax error: unexpected end of file 06:06:36 wtf 06:06:51 `cata bin/learn_append 06:06:51 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: cata: not found 06:06:56 `cat bin/learn_append 06:06:57 ​#!/bin/bash \ topic=$(echo "$1" | lowercase | sed 's/^\(an\?\|the\) //;s/s\? .*//') \ stuff=$(echo "$1" | cut -d' ' -f2-) \ perl -i -p -e 's/ \ / /' "wisdom/$topic" \ //' "wisdom/$topic" \ echo "$stuff" >>"wisdom/$topic" \ echo "I knew that." 06:07:16 oh 06:07:28 `run sed -i "4cperl -i -p -e 's/\\n/ /' "'"wisdom/$topic"' bin/learn_append # from stackoverflow 06:07:30 No output. 06:07:34 `learn_append test test 06:07:36 ​/hackenv/bin/learn_append: line 7: /: Is a directory \ I knew that. 06:07:55 "/: Is a directory" impressive 06:08:00 god damn you unix derivatives 06:08:10 `cat bin/learn_append 06:08:11 ​#!/bin/bash \ topic=$(echo "$1" | lowercase | sed 's/^\(an\?\|the\) //;s/s\? .*//') \ stuff=$(echo "$1" | cut -d' ' -f2-) \ perl -i -p -e 's/ \ / /' "wisdom/$topic" \ / /' "wisdom/$topic" \ //' "wisdom/$topic" \ echo "$stuff" >>"wisdom/$topic" \ echo "I knew that." 06:08:40 ok something hideously wrong 06:08:55 `revert 4949 06:08:57 Done. 06:09:52 -!- MoALTz has quit (Quit: Leaving). 06:10:06 `run sed -i "4iperl -i -p -e 's/\n/ /' "'"wisdom/$topic"' bin/learn_append # from stackoverflow 06:10:08 No output. 06:10:14 `cat bin/learn_append 06:10:14 ​#!/bin/bash \ topic=$(echo "$1" | lowercase | sed 's/^\(an\?\|the\) //;s/s\? .*//') \ stuff=$(echo "$1" | cut -d' ' -f2-) \ perl -i -p -e 's/ \ / /' "wisdom/$topic" \ echo "$stuff" >>"wisdom/$topic" \ echo "I knew that." 06:10:26 `revert 06:10:27 Done. 06:10:44 `run sed -i "4iperl -i -p -e 's/"'\\n'"/ /' "'"wisdom/$topic"' bin/learn_append # from stackoverflow 06:10:47 No output. 06:10:51 `cat bin/learn_append 06:10:52 ​#!/bin/bash \ topic=$(echo "$1" | lowercase | sed 's/^\(an\?\|the\) //;s/s\? .*//') \ stuff=$(echo "$1" | cut -d' ' -f2-) \ perl -i -p -e 's/\n/ /' "wisdom/$topic" \ echo "$stuff" >>"wisdom/$topic" \ echo "I knew that." 06:11:08 hm promising 06:11:16 `learn_append test test 06:11:17 I knew that. 06:11:21 `? test 06:11:22 test failed. HackEgo-JUnit is not available. test 06:11:29 `revert 06:11:30 Done. 06:14:38 -!- shikhout has quit (Ping timeout: 258 seconds). 06:25:39 -!- AndoDaan_ has joined. 06:27:13 -!- AndoDaan has quit (Ping timeout: 248 seconds). 06:27:51 -!- AndoDaan_ has changed nick to AndoDaan. 06:36:32 -!- AndoDaan_ has joined. 06:38:25 -!- AndoDaan has quit (Ping timeout: 248 seconds). 06:55:21 -!- oerjan has quit (Quit: leaving). 07:08:17 -!- S1 has joined. 07:16:35 -!- AndoDaan_ has quit (Ping timeout: 272 seconds). 07:26:59 -!- AndoDaan has joined. 07:28:02 @tell oerjan I knew that. But it works for lists [1..] which is usually what you have when golfing 07:28:02 Consider it noted. 07:28:20 Hey, mroman_. 07:28:38 The general purpose square a list is still )S[ 07:28:41 Did you submit the latest tast to Anarchy Golf? 07:28:53 There's a new problem? 07:28:53 tasks* 07:29:06 ah. 07:29:10 yes. two 07:29:10 two new 07:29:50 quit rare these days. new problems I mean. 07:30:15 hm 07:30:22 Highest power of 2 dividing n? 07:30:34 looks like a job for until 07:30:55 which burlesque hasn't 07:30:56 weird 07:31:45 !blsq 1R@2?^{24jdv}fi 07:31:46 0 07:32:15 !blsq 1R@2?^24.+{24jdv}FI 07:32:15 ERROR: Unknown command: (FI)! 07:32:30 !blsq 1R@2?^24.+{24jdv}fI 07:32:30 {0 1} 07:32:49 this doesn't look right 07:32:54 !blsq 1R@2?^24.+ 07:32:54 {1 4 9 16 25 36 49 64 81 100 121 144 169 196 225 256 289 324 361 400 441 484 529 07:32:58 oh 07:33:04 !blsq 2 1R@?^24.+ 07:33:04 {2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768 65536 131072 262144 07:33:13 !blsq 2 1R@?^24.+{24jdv}fI 07:33:14 {0 1 2} 07:33:20 !blsq 2 1R@?^24.+{24jdv}fI[- 07:33:20 {1 2} 07:33:24 !blsq 2 1R@?^24.+{24jdv}fI[~ 07:33:25 2 07:33:35 !blsq 2 1R@?^^^24.+{24jdv}fI[~!! 07:33:35 8 07:34:15 !blsq 2 1R@?^^^12.+{12jdv}fI[~!! 07:34:16 4 07:34:21 !blsq 2 1R@?^^^{12jdv}fI[~!! 07:34:21 Ain't nobody got time fo' dat! 07:34:38 -!- conehead has quit (Quit: Computer has gone to sleep). 07:34:56 !blsq 2 1R@?^^^20.+{12jdv}fI[~!! 07:34:56 4 07:35:10 !blsq 10{1R@?^^^20.+{12jdv}fI[~!!}GO 07:35:11 That line gave me an error 07:35:43 !blsq 10{Pp2 1R@?^^^20.+{pPjdv}fI[~!!}GO 07:35:44 Ain't nobody got time fo' dat! 07:35:49 !blsq 5{Pp2 1R@?^^^20.+{pPjdv}fI[~!!}GO 07:35:49 Ain't nobody got time fo' dat! 07:35:57 !blsq 2 1R@?^^^20.+{5jdv}fI[~!! 07:35:58 That line gave me an error 07:36:05 yeah 07:36:10 !blsq 20r1 07:36:10 ERROR: Unknown command: (r1)! 07:36:11 this is difficult in Burlesque 07:36:27 !blsq 20r0 07:36:28 ERROR: Unknown command: (r0)! 07:36:36 !blsq 2 0R@?^^^20.+{5jdv}fI[~!! 07:36:36 1 07:36:38 ah 07:36:47 !blsq "20"r0 07:36:47 ERROR: Unknown command: (r0)! 07:36:49 !blsq 10{2 0R@?^^^20.+{5jdv}fI[~!!}GO 07:36:49 {1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10} 07:36:58 what's my problem 07:37:07 there's no r0 07:37:09 and no r1 07:37:15 !blsq 20ro 07:37:15 {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20} 07:37:16 !blsq 20rz 07:37:17 {0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20} 07:37:18 ^- that? 07:37:24 I'm truly an idiot 07:37:33 since when is 9 a power of two o_O 07:37:53 !blsq 10{2 0R@?^^^20.+{5jdv}fI}GO 07:37:53 !blsq 20rz{fc}m[ 07:37:53 Ain't nobody got time fo' dat! 07:37:54 {{} {1} {1 2} {1 3} {1 2 4} {1 5} {1 2 3 6} {1 7} {1 2 4 8} {1 3 9} {1 2 5 10} { 07:38:30 !blsq 10{2 0R@?^^^20.+{5jdv}fI[~}GO 07:38:30 Ain't nobody got time fo' dat! 07:38:45 !blsq 10{2 0R@?^^^20.+{5jdv}fI[~vv}GO 07:38:46 Ain't nobody got time fo' dat! 07:38:59 !blsq 10{2 0R@?^^^20.+{5jdv}fI[~!!}GO 07:38:59 {1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10} 07:39:05 wth 07:39:21 !blsq 2 0R@?^^^20.+ 07:39:21 Ain't nobody got time fo' dat! 07:39:26 !blsq 2 0R@?^^^10.+ 07:39:26 Ain't nobody got time fo' dat! 07:39:39 !blsq 2 0R@?^20.+ 07:39:40 {1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768 65536 131072 26214 07:39:43 !blsq 2 0R@?^20.+9!! 07:39:43 512 07:39:49 there's no 9 in that list 07:40:00 !blsq 10{2 0R@?^^^20.+{5jdv}fI[~j!!}GO 07:40:00 Ain't nobody got time fo' dat! 07:40:26 !blsq 20rz{fc{2**2}C!\\}m[ 07:40:27 That line gave me an error 07:40:42 also why am I getting more than 10 elements 07:40:44 for 10GO 07:40:46 wth 07:40:47 !blsq 20rz{fc{2**2}4C!}m[ 07:40:48 {2 2 2 2 {} 2 2 2 2 {1} 2 2 2 2 {1 2} 2 2 2 2 {1 3} 2 2 2 2 {1 2 4} 2 2 2 2 {1 5 07:41:15 !blsq { 1 3 9 24}{2 0R@?^^^20.+{5jdv}fI[~!!}m[ 07:41:16 {1 1 1 3 1 9 1 24} 07:41:38 -!- drdanmaku has quit (Quit: Connection closed for inactivity). 07:41:42 !blsq 20rz{fc{2**-1}4C!}m[ 07:41:42 {-1 -1 -1 -1 {} -1 -1 -1 -1 {1} -1 -1 -1 -1 {1 2} -1 -1 -1 -1 {1 3} -1 -1 -1 -1 07:41:48 oh 07:41:52 right 07:42:08 !blsq 10{Pp2 0R@?^^^20.+{pPjdv}fI[~j!!}GO 07:42:09 Ain't nobody got time fo' dat! 07:42:17 !blsq 10{pP2 0R@?^^^20.+{Ppjdv}fI[~j!!}GO 07:42:17 !blsq 20rz{fc{-1 2**\/^^}4C!}m[ 07:42:17 That line gave me an error 07:42:17 {{} {} {} {} {} {1} {1} {1} {1} {1} {1 2} {1 2} {1 2} {1 2} {1 2} {1 3} {1 3} {1 07:42:44 !blsq 10{Pp2 0R@?^^^20.+{PPjdv}fI[~j!!}GO 07:42:44 Ain't nobody got time fo' dat! 07:42:54 this is insane :( 07:43:14 !blsq 10{Pp2 0R@?^^^20.+{PPjdv}fI[~!!}GO 07:43:15 Ain't nobody got time fo' dat! 07:43:20 !blsq 3{Pp2 0R@?^^^20.+{PPjdv}fI[~!!}GO 07:43:20 Ain't nobody got time fo' dat! 07:43:34 !blsq 20rz{fc 2{.*}4C!}m[ 07:43:35 {ERROR: Burlesque: (.*) Invalid arguments! ERROR: Burlesque: (.*) Invalid argume 07:43:36 !blsq 3{Pp2 20r@?^^^{PPjdv}fI[~!!}GO 07:43:37 {ERROR: Burlesque: (!!) Invalid arguments! ERROR: Burlesque: ([~) Invalid argume 07:43:47 !blsq 3{Pp2 20r@?^^^{PPjdv}fI}GO 07:43:47 !blsq 20rz{fc 2{^^.*}4C!}m[ 07:43:47 {ERROR: Burlesque: (fi) Invalid arguments! {PP j dv} ERROR: Burlesque: (**) Inva 07:43:47 {65536 256 16 4 2 {} 65536 256 16 4 2 {1} 65536 256 16 4 2 {1 2} 65536 256 16 4 07:44:00 !blsq 3{2 20r@?^^^{24jdv}fI}GO 07:44:00 {{0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18} {1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 07:44:05 !blsq 20rz{fc 2{^^.*}4C!\\}m[ 07:44:06 {2 16 4 2 {} 2 16 4 2 {1} 2 16 4 2 {1 2} 2 16 4 2 {1 3} 2 16 4 2 {1 2 4} 2 16 4 07:44:25 !blsq 10{Pp2 0 20r@?^^^{PPjdv}fI[~!!}GO 07:44:26 That line gave me an error 07:44:29 !blsq 20rz{fc 2{^^.*\\}4C!}m[ 07:44:29 {ERROR: Burlesque: (\\) Invalid arguments! ERROR: Burlesque: (\\) Invalid argume 07:44:34 !blsq 10{Pp2 0 20r@?^^^{PPjdv}fI}GO 07:44:34 That line gave me an error 07:44:40 what the 07:44:48 !blsq 20rz{fc 2{^^.*}4C!\/\\}m[ 07:44:48 {536 16 4 2 {} 536 16 4 2 {1} 536 16 4 2 {1 2} 536 16 4 2 {1 3} 536 16 4 2 {1 2 07:44:58 !blsq 10{Pp2 0 20r@?^^^{pPjdv}fI}GO 07:44:59 {{0} {1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768 65536 131072 07:45:08 !blsq 10{Pp2 0 20r@?^^^{pPjdv}fI[~}GO 07:45:08 {0 {1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768 65536 131072 26 07:45:12 !blsq 10{Pp2 0 20r@?^^^{pPjdv}fI[~!!}GO 07:45:12 {1 2 1 4 1 2 1 8 1 2} 07:45:20 haha! 07:45:23 !blsq 1{2}4c! 07:45:23 ERROR: Burlesque: (c!) Invalid arguments! 07:45:28 !blsq 1{2}4C! 07:45:28 2 07:45:33 !blsq 20{Pp2 0 20r@?^^^{pPjdv}fI[~!!}GO 07:45:34 {1 2 1 4 1 2 1 8 1 2 1 4 1 2 1 16 1 2 1 4} 07:45:46 now 07:45:49 what is a partial sum? 07:45:51 !blsq 1{2^^\/}4C! 07:45:51 2 07:46:09 why do you do 2^^\/ ? 07:46:13 !blsq 10{{Pp2 0 20r@?^^^{pPjdv}fI[~!!}GO++}GO 07:46:14 Ain't nobody got time fo' dat! 07:46:20 !blsq 1{^^2.*}4C! 07:46:20 16 07:46:25 !blsq 4{{Pp2 0 20r@?^^^{pPjdv}fI[~!!}GO++}GO 07:46:25 {1 3 4 8} 07:46:31 !blsq 5{{Pp2 0 20r@?^^^{pPjdv}fI[~!!}GO++}GO 07:46:31 {1 3 4 8 9} 07:46:37 -!- sebbu has quit (Ping timeout: 260 seconds). 07:46:47 !blsq 6{{Pp2 0 20r@?^^^{pPjdv}fI[~!!}GO++}GO 07:46:47 {1 3 4 8 9 11} 07:46:49 ok 07:46:52 thats A006520 07:46:56 it's pretty slow though 07:47:39 yep. too slow for anagol 07:47:57 -!- AndoDaan_ has joined. 07:47:58 !blsq 1{2.*^^2**}4C! 07:47:58 1073741824 07:48:12 !blsq 1{2.*^^2**++}4C! 07:48:13 19292178609371873283721881554959056663564876247763779584 07:48:30 no idea what that monstrosity is. 07:48:56 it's 07:49:10 192921.... 07:49:19 ....9584 07:49:20 (*2)^2 + digit sum 07:49:21 I guess 07:49:38 !blsq 1{2.*^^2**++}4C!#s 07:49:39 {19292178609371873283721881554959056663564876247763779584 964608930468593664 482 07:49:43 !blsq 1{2.*^^2**++}2C!#s 07:49:44 {482304 24 1} 07:49:57 -!- S1 has quit (Quit: S1). 07:49:58 burlesque has no limit on bignumbers? 07:50:09 !blsq 1 2.*^^2** 07:50:09 4 07:50:29 ah ** is power 07:50:30 ok 07:50:36 so 07:51:22 -!- AndoDaan has quit (Ping timeout: 276 seconds). 07:51:32 -!- AndoDaan_ has changed nick to AndoDaan. 07:51:39 ++ is concenatenate digits 07:51:47 !blsq 1 2.*^^2** 07:51:47 4 07:51:49 !blsq 1 2.*^^2**++ 07:51:50 24 07:52:10 (x*2)++(2^x) 07:52:38 !blsq 24 2.* 24 2** 07:52:38 576 07:53:05 !blsq 24 2.* 24 2**#s 07:53:06 {576 48} 07:53:18 !blsq 24 2.* 2 24** 07:53:19 16777216 07:53:28 !blsq 24 2.* 48 2** 07:53:29 2304 07:53:32 !blsq 24 2.* 48 2**++ 07:53:33 482304 07:53:43 (x*2)++(x*2)^2 07:53:48 ^- that's what you're doing 07:53:57 where ++ is concatenate digits 07:54:42 AndoDaan: and yes. Burlesque has no limit on integers 07:54:54 -!- sebbu has joined. 07:54:58 except for the haskell limits of course 07:54:59 If I'm not constantly checking with the langref, I have nearly no idea what 's what 07:55:04 okay thanks. 07:55:09 i.e. !! 07:55:13 @type (!!) 07:55:14 [a] -> Int -> a 07:55:19 !! want's an Int 07:55:33 -!- sebbu has quit (Changing host). 07:55:33 -!- sebbu has joined. 07:55:46 which means that when using !! in Burlesque it will convert the Unbounded Integer into a bounded integer 07:56:10 if you ever have that large lists :) 07:56:31 AndoDaan: I get that @checking with the langref 07:56:55 if you golf regularily you know the most used commands fluently ;) 07:57:11 I'm thinking of writing a little program to help me organize and look up the instruction set a bit better. 07:57:13 for other stuff I just know that it's there and I can look it up in the langref 07:57:20 until I get the hang of it. 07:57:35 I'm sure it's all slowly perculating into my brain. 07:57:42 I was seriously thinking about self-recursive 2D language somewhat akin to Orthogonal 07:57:53 not sure if it will every fly though 07:58:08 Only one way to find out. 07:58:15 right 07:58:17 also the Burlesque Shell has tabcompletion for commands btw ;) 07:58:46 nice. thanks. 07:59:12 technically you could write a little translater from verbose Burlesque to Burlesque 07:59:28 which would allow you to write using the Names of the Commands 07:59:30 suchas 08:00:10 20 {primeFactors sum} generateListO 08:00:14 instead of 08:00:23 20{fC++}GO 08:00:48 also I think some people have a regex collection for usual shortcuts ;) 08:00:53 I had one, but I lost it 08:01:10 i.e. it would detect that you wrote {aabb}m[ insteaf of )aa)bb or things like that 08:01:23 I might do that. atm I'm just bashing my fingers in the hopes of finding the right combination of characters. 08:02:33 -!- sebbu has quit (Ping timeout: 246 seconds). 08:07:05 -!- sebbu has joined. 08:07:42 -!- sebbu has quit (Changing host). 08:07:42 -!- sebbu has joined. 08:22:28 -!- sebbu has quit (Ping timeout: 250 seconds). 08:28:49 -!- Patashu has joined. 08:35:36 [wiki] [[Special:Log/newusers]] create * RonKnatchbull * New user account 08:45:48 -!- sebbu has joined. 08:45:49 -!- sebbu has quit (Changing host). 08:45:49 -!- sebbu has joined. 08:58:57 !blsq ?_ 08:58:58 "I have 340 non-special builtins!" 08:59:17 "I have 340 builtins, but that's nothing special." 09:03:23 presumably it also has 60 special builtins as well 09:10:15 -!- heroux has joined. 09:10:17 -!- heroux_ has joined. 09:17:56 -!- AndoDaan has quit (Ping timeout: 250 seconds). 09:18:22 -!- AndoDaan has joined. 09:45:47 b_jonas: Let me count them. 09:46:41 #Q #q #J #j @ ) : , 09:46:54 about 8 special built-ins 09:47:13 !blsq #Q#s 09:47:14 {{#s}} 09:47:32 #Q pushes the code on the right side of it to the stack 09:47:46 !blsq #Q{}#q1 2 3 4 09:47:46 {{} #q 1 2 3 4} 09:47:54 !blsq #Q{}#q1 2 3 4#s 09:47:54 {{} #q 1 2 3 4 #s} 09:48:08 where as #q pops code from the stack 09:48:19 !blsq {1 2 .+}#q3 4.+ 09:48:19 3 09:48:23 !blsq {1 2 .+}#q3 4.+#s 09:48:24 3 09:48:28 !blsq {1 2 .+}#q3 4.+ 09:48:29 3 09:48:34 so the 3 4 .+ isn't executed at all 09:48:57 !blsq {1 2 .+}#j3 4.+ 09:48:57 7 09:48:59 !blsq {1 2 .+}#j3 4.+#s 09:49:00 {7 3} 09:49:11 #j appends code but does not replace it 09:50:28 !blsq @'c10.+ 09:50:29 "cccccccccc" 09:50:44 !blsq 'c10.* 09:50:45 "cccccccccc" 09:54:02 mroman_: but aren't there like parenthesis or something for defining functions too? or is this so much forth-like that there's nothing 09:54:17 b_jonas: not yet, no 09:54:23 You can't define functions 09:54:33 Not in a reasonable way 09:54:44 oh.... 09:54:45 um 09:54:49 will you add a way later/ 09:54:50 ? 09:54:55 I will 09:55:31 also variables 09:55:35 so you can do stuff like 09:56:49 `X:=1 2 09:56:50 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: X:=1: not found 09:57:00 `Y:= %X ?+ 09:57:01 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: Y:=: not found 09:59:22 -!- Majid_ has joined. 10:00:00 yeah, that would be useful 10:00:32 http://codepad.org/k9FhEYNg 10:00:37 ^- that's my sketch so far for that 10:01:38 also it will be shipped with predefined longversions of commands 10:01:40 i.e. 10:01:58 `add={?+} `group={=[} 10:01:58 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: add={?+}: not found 10:01:58 etc. 10:02:16 eh 10:02:19 `Add that is 10:02:19 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: Add: not found 10:02:24 they must start with an uppercase letter 10:02:41 `a `b `c are already reserved 10:02:41 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: a: not found 10:02:49 there's not a single character that can be freely used I think 10:03:46 also it would be %Increment in the spec 10:04:18 b_jonas: the problem is that you need a prefix 10:04:19 because 10:04:22 !blsq "increment"ps 10:04:22 {ERROR: (line 1, column 10): 10:04:25 !blsq "increment."ps 10:04:25 {in cr em en t.} 10:04:33 would be parsed as a chain of commands 10:04:51 so you need to tell the parser with a prefix that it's not a chain of commands 10:05:00 there's no command that starts with % 10:05:04 so % is a good choice as a prefix 10:05:52 mroman_: could you just modify existing names so you free u psomething? 10:06:27 Like what? 10:06:35 ` and % are free prefixes 10:06:36 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: : not found 10:06:40 I can use them 10:06:49 ok 10:06:54 that is ` and % followed by an uppercase letter ;) 10:07:06 But no: I can't change existing commands 10:07:11 can you also have two-letter variables, or letter+number variables? 10:07:13 that would break programs on anagol using them 10:07:29 b_jonas: you mean like `foo0? 10:07:51 yes, like that 10:08:03 but that's too long, so more like %M2 and %Te 10:08:09 ah sure 10:08:11 no problem 10:08:15 -!- Majid_ has left ("Leaving"). 10:08:16 ok 10:08:26 they can't contain a = though ;) 10:08:31 `Xheutn=... 10:08:31 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: Xheutn=...: not found 10:08:38 do you do a new incompatible major version every four years? 10:08:39 it'll just parse until it reaches a = for the assignment 10:08:54 b_jonas: all versions are fully backwards compatible 10:09:05 or, like, every triangular numbered year starting from the first release 10:09:11 ?? 10:09:34 or what do you mean with "incompatible"? 10:09:52 one with incompatible syntax so it doesn't run older programs 10:09:59 no 10:10:01 ok 10:10:01 like I said 10:10:07 it's backwards compatible 10:10:22 Burlesque will always be able to run older programs 10:11:16 I have a "contract" with golf.shinh.org that newer Burlesque versions must still run programs written for older versions 10:12:04 sure, I mean doing an incompatible release in such a way that it has a new name and you still maintain the old version and golf entries specify the version in their language 10:12:09 What happens if you take back the contract? Do they take out a contract? 10:12:55 wait 10:13:01 b_jonas: what are you actually talking about? 10:13:15 variables can be added to Burlesque without breaking existing programs. 10:13:22 sure 10:13:40 Well, adding a program prefix to switch to a different language still leaves it backwards compatible. 10:13:43 You want me to release a new Version of Burlesque under a different name? 10:13:54 no... never mind 10:14:12 I was just talking about the hypothetical for when you want to break compatibility. but you don't want to. so it's not important 10:14:15 let's forget it 10:14:21 I'm sorry 10:14:44 If I did break compatability then it would be a different language 10:15:12 b_jonas: I see no advantage in breaking compatability 10:15:40 I would only do that to make a fully fledged general purpose language out of it with the chance of being used by more than 5 people 10:15:47 but I doubt that this will ever be the case 10:16:04 Is it being golfed by more than 5 people? 10:16:07 so my "customers" are golfers on anagol and anagol requires full backwards compatability 10:16:33 Jafet: there's clock, teebe, hendrik, noodl, andodaan, me 10:16:43 and sometimes someone gives it a shot too 10:17:01 andodaan is the newest golfer so far in Burlesque 10:17:33 now when you said above `add={?+} 10:17:39 how would you invoke that then? 10:18:35 oh. and pooq also golfs in it 10:18:53 and how does the assignment knows where the assigned stuff ends? shouldn't it be a suffix so it pops a value from the stack and assigns that? 10:19:09 some other not so active burlesque golfers are desty, migo, whio 10:19:35 b_jonas: { ... } 10:19:39 `add={ ... } 10:19:40 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: add={: not found 10:19:46 the } specifies the end 10:19:47 of course 10:19:53 { ... }`Add is also fine 10:20:18 mroman_: um... but then why do you need the equals sign if the bracket already delimits? 10:20:22 oh 10:20:27 so it would work as suffix too 10:20:28 ok 10:21:35 -!- boily has joined. 11:07:45 `? burlesque 11:07:45 Burlesque is only the sexiest language on Earth. (See: http://mroman.ch/burlesque) 11:07:58 ah, so that's how the update is. 11:24:29 -!- boily has quit (Quit: MARSH CHICKEN). 11:36:38 !blsq !blsq ?? 11:36:39 That line gave me an error 11:36:44 !blsq !blsq ?? 11:36:45 That line gave me an error 11:36:56 ?? 11:37:10 !blsq ?? 11:37:10 "Burlesque - 1.7.3" 11:37:47 !blsq ??L[ 11:37:48 17 11:38:13 !blsq :a 11:38:14 ERROR: (line 1, column 3): 11:38:27 !blsq %a 11:38:27 ERROR: (line 1, column 3): 11:38:32 !blsq @ 11:38:32 @ 11:38:46 !blsq q5l 11:38:46 ERROR: (line 1, column 4): 11:38:49 !blsq q5 11:38:49 {5} 11:38:56 !blsq q1 5 6 11:38:56 6 11:39:10 !blsq q1128 11:39:10 {1128} 11:39:31 !blsq ?n 11:39:32 That line gave me an error 11:39:40 !blsq 156?n 11:39:40 l_ 11:40:14 !blsq 339rz 11:40:14 {0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 11:40:45 !blsq 0 39ro 11:40:45 No output! 11:40:52 !blsq 0 39r@ 11:40:53 No output! 11:41:10 !blsq ,339rz 11:41:10 {0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 11:42:28 !blsq "5"to 11:42:28 "Str" 11:43:05 !blsq "Str"\/to~= 11:43:05 0 11:44:06 !blsq 339rzfC 11:44:07 That line gave me an error 11:44:47 !blsq 339rz{fc>]}m[ 11:44:47 That line gave me an error 11:44:53 !blsq 339rz{f!>]}m[ 11:44:53 {ERROR: Burlesque: (>]) Invalid arguments! ERROR: Unknown command: (f!)! 0 ERROR 11:45:33 hu 11:45:39 !blsq 339rz 11:45:39 {0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 11:45:41 !blsq 339rzfC 11:45:42 That line gave me an error 11:45:44 wtf 11:45:53 ah 11:45:57 div by zero 11:45:58 ;0 11:46:00 !blsq 1fC 11:46:01 {} 11:46:03 !blsq 0fC 11:46:04 That line gave me an error 11:46:05 I'm the worst. 11:46:38 !blsq 2 339rofC 11:46:38 {{} {2} {3} {2 2} {5} {2 3} {7} {2 2 2} {3 3} {2 5} {11} {2 2 3} {13} {2 7} {3 5 11:46:49 !blsq 2 339rofC<[ 11:46:49 ERROR: Unknown command: (<[)! 11:46:58 !blsq 2 339rofCe!>[ 11:46:59 ERROR: Unknown command: (>[)! 11:47:02 !blsq 2 339rofCe!>] 11:47:02 113 11:47:28 !blsq 2 339rofC){>]}n[ 11:47:28 ERROR: Unknown command: (n[)! 11:47:39 !blsq 2 339rofC){>]}m[ 11:47:39 ERROR: Burlesque: (m[) Invalid arguments! 11:48:01 !blsq 2 339rofC 11:48:01 {{} {2} {3} {2 2} {5} {2 3} {7} {2 2 2} {3 3} {2 5} {11} {2 2 3} {13} {2 7} {3 5 11:48:15 !blsq 2 339rofC){>]} 11:48:16 {{>]} {} {>]} {2} {>]} {3} {>]} {2 2} {>]} {5} {>]} {2 3} {>]} {7} {>]} {2 2 2} 11:48:35 map can actually be used to insert stuff between elements 11:48:44 !blsq 10ro)-1 11:48:45 {-1 1 -1 2 -1 3 -1 4 -1 5 -1 6 -1 7 -1 8 -1 9 -1 10} 11:48:49 !blsq 2 100rofC) >] 11:48:49 That line gave me an error 11:48:54 !blsq 2 100rofC>] 11:48:54 {97} 11:49:12 !blsq 2 100rofC^^>] 11:49:12 {97} 11:49:21 !blsq 2 100ro^^fC>] 11:49:21 {97} 11:49:30 !blsq 2 100ro\*fC>] 11:49:31 ERROR: Burlesque: (>]) Invalid arguments! 11:49:35 !blsq 2 100ro\^fC>] 11:49:35 ERROR: Burlesque: (>]) Invalid arguments! 11:49:48 !blsq 2 100rofC[< 11:49:48 ERROR: Unknown command: ([<)! 11:49:52 !blsq 2 100rofC[> 11:49:53 ERROR: Unknown command: ([>)! 11:49:59 !blsq 2 100rofC 11:49:59 {{} {2} {3} {2 2} {5} {2 3} {7} {2 2 2} {3 3} {2 5} {11} {2 2 3} {13} {2 7} {3 5 11:50:07 !blsq 2 100rofCe! 11:50:07 {2 2 5 5} 11:50:18 !blsq 2 100rofCpe 11:50:19 {ERROR: Burlesque: (ps) Invalid arguments! 2 ERROR: Burlesque: (ps) Invalid argu 11:50:22 !blsq 2 100rofCsp 11:50:22 Ain't nobody got output fo' that! 11:50:26 !blsq 2 100rofCspuN 11:50:26 ERROR: Burlesque: (\[) Invalid arguments! 11:50:31 !blsq 2 100rofCuN 11:50:32 ["\n", 2, "\n", 3, "\n", 2, 2, "\n", 5, "\n", 2, 3, "\n", 7, "\n", 2, 2, 2, "\n" 11:50:40 !blsq 2 100rofCun 11:50:41 {"\n" 2 "\n" 3 "\n" 2 2 "\n" 5 "\n" 2 3 "\n" 7 "\n" 2 2 2 "\n" 3 3 "\n" 2 5 "\n" 11:50:47 !blsq 2 100rofCln 11:50:47 ERROR: Burlesque: (ln) Invalid arguments! 11:51:01 !blsq 2 100rofC1co 11:51:01 {{{}} {{2}} {{3}} {{2 2}} {{5}} {{2 3}} {{7}} {{2 2 2}} {{3 3}} {{2 5}} {{11}} { 11:51:04 hu 11:51:09 !blsq 2 100rofC1CO 11:51:09 {{{}} {{2}} {{3}} {{2 2}} {{5}} {{2 3}} {{7}} {{2 2 2}} {{3 3}} {{2 5}} {{11}} { 11:51:10 Ain't nobody got output fo' that 11:51:11 wth is this 11:51:35 !blsq 2 100rofC<-uN 11:51:35 [2, 2, 5, 5, "\n", 3, 3, 11, "\n", 2, 7, 7, "\n", 97, "\n", 2, 2, 2, 2, 2, 3, "\ 11:51:47 ? 11:51:47 ah. if there's no output. 11:52:00 AndoDaan: un is broken for non-strings 11:52:10 not broken, but it doesn't unlines 11:52:24 !blsq 2 100rofCm]wd 11:52:24 "[] [2] [3] [2, 2] [5] [2, 3] [7] [2, 2, 2] [3, 3] [2, 5] [11] [2, 2, 3] [13] [2 11:52:32 !blsq 2 100rofCm]wD 11:52:33 [] [2] [3] [2, 2] [5] [2, 3] [7] [2, 2, 2] [3, 3] [2, 5] [11] [2, 2, 3] [13] [2, 11:52:36 !blsq 2 100rofCwd 11:52:37 {' 2 ' 3 ' 2 2 ' 5 ' 2 3 ' 7 ' 2 2 2 ' 3 3 ' 2 5 ' 11 ' 2 2 3 ' 13 ' 11:53:02 !blsq 2 100rofC[~wd 11:53:03 {ERROR: Burlesque: (_+) Invalid arguments!} 11:53:04 unlines and words just assume that it's a list of Strings 11:53:08 !blsq 2 100rofC[-wd 11:53:08 {2 ' 3 ' 2 2 ' 5 ' 2 3 ' 7 ' 2 2 2 ' 3 3 ' 2 5 ' 11 ' 2 2 3 ' 13 ' 2 11:53:12 if it's not a list of Strings then sideffects happen 11:53:21 okay 11:53:29 because unlines/words are defined as 11:53:48 !blsq 2 100rofC[-wdsh 11:53:48 [2, , 3, , 2, 2, , 5, , 2, 3, , 7, , 2, 2, 2, , 3, 3, , 2, 5, , 11, , 11:53:52 !blsq 2 100rofC[-wdsH 11:53:53 ERROR: Burlesque: (ff) Invalid arguments! 11:53:56 "\n"\/[[\[ 11:54:00 !blsq 2 100rofC[-Ff 11:54:00 ERROR: Burlesque: (ff) Invalid arguments! 11:54:06 !blsq {"hi" "there"}"\n"\/[[\[ 11:54:07 "hi\nthere" 11:54:14 !blsq {1 2 3}"\n"\/[[\[ 11:54:15 "\n12\n3" 11:54:26 unlines intersperses "\n" and then calls concat 11:54:26 !blsq 2 100rofC[-"\n"\/[[\[ 11:54:26 {2 "\n" 3 "\n" 2 2 "\n" 5 "\n" 2 3 "\n" 7 "\n" 2 2 2 "\n" 3 3 "\n" 2 5 "\n" 11 " 11:55:10 !blsq 2 100rofC[-vv"\n"\/[[\[ 11:55:11 ERROR: Burlesque: (\[) Invalid arguments! 11:55:16 !blsq 2 100rofC[-"\n"\/[[\[ 11:55:17 {2 "\n" 3 "\n" 2 2 "\n" 5 "\n" 2 3 "\n" 7 "\n" 2 2 2 "\n" 3 3 "\n" 2 5 "\n" 11 " 11:55:38 alright. enough messing around. 11:55:58 Time to write an OS in burlesque. 11:56:15 or something smaller. 11:56:16 You are welcome to implement I/O in Burlesque ;) 11:56:36 Maybe in time, I might have some ideas. 11:56:59 I'm still way too inexperienced. 11:57:09 If you need new features to do something just ask me ;) 11:57:13 to even think of adding to your language. 11:57:24 I'm happy to introduce new features if they will be needed. 11:57:24 Okay, thanks. 11:58:21 Probably shouldn't be dependant an what questions anarchy golf is outputing 11:58:57 Like now it would be read for a _a command 11:59:37 _a looks up the A045718 sequence online 11:59:45 and prints it out 12:00:09 whadda ya think? 12:02:02 no 12:02:09 good call. 12:02:19 (sorry, I'm being silly.) 12:02:48 New features must be of "general purpose" 12:03:04 and not just to solve one challenge 12:07:19 Q: how does regex work? 12:13:09 !blsq "hi there""i t"~= 12:13:09 1 12:13:14 !blsq "hithere""i t"~= 12:13:14 0 12:13:21 ~= is "does it match my regex" 12:13:33 !blsq "hi there""(i.t)"=~ 12:13:34 {"i t"} 12:13:40 !blsq "hixthere""(i.t)"=~ 12:13:40 {"ixt"} 12:13:48 =~ is "what matches my regex" 12:13:53 i.e. 12:14:07 !blsq "content""(.*)"=~ 12:14:08 {"content"} 12:14:11 . means any character? 12:14:17 yeah 12:14:27 and for digits and letters? 12:14:27 it's POSIX RegularExpression 12:14:38 you should google for posix regexp to learn how posix regexps work 12:14:44 that's not Burlesque specific 12:14:55 Okay, I'll look that up, 12:15:03 "man 7 regex" can often also help. 12:15:16 mroman_: Basic or extended? 12:16:28 fizzie: It uses regex-compat 12:16:32 wich uses Text.Regex.Posix 12:16:37 which is a wrapper for the c posix regex api 12:16:43 so I guess whatever the c posix regex api is doing 12:17:31 It can do both, depending on whether REG_EXTENDED flag is specified or not. 12:18:52 "compExtended (REG_EXTENDED) which can be set to use extended instead of basic regular expressions. This is set in the defaultCompOpt value." (Text.Regex.Posix.Wrap) 12:18:57 Apparently extended, then. 12:19:49 !blsq "today is weekday"(week.*)=~ 12:19:49 ERROR: (line 1, column 22): 12:19:57 !blsq "today is weekday"(week)=~ 12:19:57 ERROR: (line 1, column 22): 12:20:11 !blsq "today is weekday""(week.)"=~ 12:20:11 {"weekd"} 12:21:50 !blsq "just testing""(s)(t)"=~ 12:21:50 {"s" "t"} 12:22:38 !blsq "today is weekday""(week.[^[:space:]])"=~ 12:22:39 {"weekda"} 12:22:50 !blsq "today is weekday""(week.[^[:space:]]+)"=~ 12:22:51 {"weekday"} 12:23:11 You probably don't want the . in there. 12:23:21 !blsq "today is weekday, and the weekend is far away""(week[^[:space:]]+)"=~ 12:23:22 {"weekday,"} 12:24:13 !blsq "today is weekday, and the weekend is far away""{(week[^[:space:]]+)"=~}m[ 12:24:14 That line gave me an error 12:25:00 Damn, I need to start getting to grips with the control flow aspects. 12:26:01 hu 12:26:07 your { } are missmatched 12:26:19 !blsq "today is weekday, and the weekend is far away"{"(week[^[:space:]]+)"=~}m[ 12:26:20 {ERROR: Burlesque: (_+) Invalid arguments!} 12:26:30 !blsq "today is weekday, and the weekend is far away"{("week[^[:space:]]+)"=~}m[ 12:26:30 ERROR: (line 1, column 70): 12:26:37 !blsq "today is weekday, and the weekend is far away"{"(week[^[:space:]]+)"=~}m[ 12:26:38 {ERROR: Burlesque: (_+) Invalid arguments!} 12:26:48 but you can't map over a string like that 12:26:51 !blsq "today is weekday, and the weekend is far away"{^^"(week[^[:space:]]+)"=~}m[ 12:26:51 {ERROR: Burlesque: (_+) Invalid arguments!} 12:27:00 !blsq "today is weekday, and the weekend is far away"wd{"(week[^[:space:]]+)"=~}m[ 12:27:01 {{} {} {"weekday,"} {} {} {"weekend"} {} {} {}} 12:27:24 ah. 12:27:35 you can only map over a string 12:27:39 if you work on characters 12:27:47 regex works on strings however 12:28:25 !blsq {"(week[^[:space:]]+)"~=}"today is weekday, and the weekend is far away"wdf[ 12:28:26 {"(week[^[:space:]]+)" ~=} 12:28:32 I got it wrong. :/ 12:28:47 what do you wan't to do? 12:29:03 Filter the words with {"(week[^[:space:]]+)"~=}. 12:29:32 !blsq "today is weekday, and the weekend is far away"wd{"(week[^[:space:]]+)"~=}f[ 12:29:32 {"weekday," "weekend"} 12:29:52 I guess I misinterpreted the order of the arguments column for f[. 12:29:59 !blsq "today is weekday, and the weekend is far away"wd{"(week[^[:space:],]+)"~=}f[ 12:30:00 {"weekday," "weekend"} 12:30:08 !blsq "today is weekday, and the weekend is far away"wd{"(week[^[:space:]\,]+)"~=}f[ 12:30:09 {"weekday," "weekend"} 12:30:15 !blsq "today is weekday, and the weekend is far away"wd{"(week[^[:space:]%,]+)"~=}f[ 12:30:15 {"weekday," "weekend"} 12:30:17 The first argument to filter is the list to filter and the second argument is the "filter" 12:30:55 The reference for f[ says "Block f, Block a -- Filters a list according to the predicate f" while m[ says "Block ls, Block f -- Apply f to every element in ls and collect the result in a block" -- how then can f[ and m[ have arguments in the same order? 12:30:59 , is a special character? 12:31:12 fizzie: Oh. 12:31:15 Thx for reporting that. 12:31:50 The documented order is indeed wrong. 12:32:34 AndoDaan: , is not a special character, but when filtering, you get the original word, not the part the regex's () matched. 12:33:23 exactly 12:33:28 Burlesque seems to be missing the Perl @a = ($s =~ m//g) -style "list of all matches of a regex" feature. 12:34:03 -!- Frooxius has joined. 12:34:05 you mean like 12:34:16 !blsq "abc""(.*)"=~ 12:34:17 {"abc"} 12:34:22 !blsq "today is weekday, and the weekend is far away"wd{"(week[^[:digit:]^[:punct:]]+)"~=}f[ 12:34:23 {"weekday," "weekend"} 12:34:25 !blsq "abc""(.)"=~ 12:34:25 {"a"} 12:34:32 !blsq "today is weekday, and the weekend is far away"wd{"(week[^[:digit:][:punct:]]+)"~=}f[ 12:34:32 {"weekday," "weekend"} 12:34:35 ^- you want {"a" "b" "c"} @fizzie 12:35:29 !blsq "today is weekday, and the weekend is far away"wd{"(week[a-z]+)"~=}f[ 12:35:29 {"weekday," "weekend"} 12:35:43 `perl-e @a = ("foo 123 bar 456 baz 789 quux" =~ /\d+/g); print join(" ", @a); 12:35:43 oh well, I tried. 12:35:44 123 456 789 12:35:48 That sort of thing. 12:36:17 And I don't exactly "want" it, I'm not doing anything in particular, just an observation. 12:36:22 !blsq "foo 123 bar 456 baz 789 quux""[[:digit:]]+"=~ 12:36:23 {} 12:36:27 !blsq "foo 123 bar 456 baz 789 quux""[[:digit:]+]"=~ 12:36:28 {} 12:36:31 !blsq "foo 123 bar 456 baz 789 quux""[[:digit:]]"=~ 12:36:31 {} 12:36:36 !blsq "foo 123 bar 456 baz 789 quux""[[:digit:]]*"=~ 12:36:37 {} 12:36:38 hm 12:36:46 !blsq "foo 123 bar 456 baz 789 quux""([[:digit:]]+)"=~ 12:36:46 {"123"} 12:37:08 !blsq "foo 123 bar 456 baz 789 quux""([[:digit:]]+)*"=~ 12:37:08 {""} 12:37:16 !blsq "foo 123 bar 456 baz 789 quux""([[:digit:]])*"=~ 12:37:16 {""} 12:37:23 yeah. I guess it can't do that 12:37:24 `perl-e @a = ("foo 123 bar 456 baz 789 quux 123456789" =~ /(\d)\d*(\d)/g); print join(" ", @a); # also does this if there are any capturing groups 12:37:25 1 3 4 6 7 9 1 9 12:38:05 fizzie: Thx for noticing that. 12:38:10 !blsq "foo 123 bar 456 baz 789 quux"{"([:digit:]+)"~=}f[ 12:38:10 "foo 123 bar 456 baz 789 quux" 12:38:11 :) 12:38:47 !blsq "foo 123 bar 456 baz 789 quux"{"(^[:digit:][:digit:]^[:digit:]+)"~=}f[ 12:38:48 "foo 123 bar 456 baz 789 quux" 12:39:07 !blsq "foo 123 bar 456 baz 789 quux"{"(^[:digit:]?[:digit:]+^[:digit:]?)"~=}f[ 12:39:07 "foo 123 bar 456 baz 789 quux" 12:39:21 !blsq "foo 123 bar 456 baz 789 quux"{"(\[:digit:]+\)"~=}f[ 12:39:22 "foo 123 bar 456 baz 789 quux" 12:39:35 !blsq "foo 123 bar 456 baz 789 quux"{"([:digit:]+)"~=}f[ 12:39:36 "foo 123 bar 456 baz 789 quux" 12:39:41 AndoDaan: An error in Burlesque is True 12:39:48 !blsq '*.+ 12:39:49 ERROR: Burlesque: (.+) Invalid arguments! 12:39:57 !blsq "hithere"{'*.+}f[ 12:39:58 "hithere" 12:40:02 The split-and-filter can probably do many tasks one can use m//g for (some even better), but sometimes it's non-trivial to say how to split if you, say, want inside-word matches. 12:40:54 !blsq "foo 123 bar 456 baz"wd{"[:digit:]+"~=}f[ 12:40:54 {} 12:40:59 !blsq "foo 123 bar 456 baz"wd{"[[:digit:]]+"~=}f[ 12:41:00 {"123" "456"} 12:41:04 !blsq "foo 123 bar 456 baz 789 quux"wd{'*.+}f[ 12:41:04 {"foo" "123" "bar" "456" "baz" "789" "quux"} 12:41:17 `perl-e print join(" ", grep {/^\d+$/} split " ", "foo 123 bar 456 baz 789 quux 123456789"); 12:41:17 123 456 789 123456789 12:41:34 AndoDaan: Everything that is NOT Integer 0 is True 12:41:51 which means 0 -> False, '8 -> True, {} -> True, -1 -> True 12:41:55 Error -> True 12:42:01 "hi there" -> True 12:42:10 !blsq {1 2 3}{"hi there"}f[ 12:42:11 {1 2 3} 12:42:17 !blsq {1 2 3}{0}f[ 12:42:17 {} 12:42:20 !blsq {1 2 3}{?d}f[ 12:42:21 {2 3} 12:42:37 {?i} for example removes every -1 12:42:44 !blsq {-1 2 3 -1 4}{?i}f[ 12:42:45 {2 3 4} 12:43:14 Burlesque has two kind of errors 12:43:17 !blsq 2 0?/ 12:43:17 That line gave me an error 12:43:24 errors that are underlying haskell errors 12:43:25 -!- prooftechnique has joined. 12:43:26 and 12:43:28 !blsq 2?/ 12:43:29 ERROR: Burlesque: (./) Invalid arguments! 12:43:33 Burlesque Error Values 12:43:36 !blsq 2?/to 12:43:36 "Error" 12:43:44 !blsq "foo 123 bar 456 baz 789 quux"wd{'*}f[ 12:43:44 {"foo" "123" "bar" "456" "baz" "789" "quux"} 12:43:49 ^- it's just a value on the stack with type error 12:43:53 !blsq 2?/toSh 12:43:54 "Error" 12:43:57 !blsq 2?/Sh 12:43:57 "ERROR: Burlesque: (./) Invalid arguments!" 12:44:00 !blsq 2?/Sh<-Q 12:44:00 !stnemugra dilavnI )/.( :euqselruB :RORRE 12:44:27 !blsq "foo 123 bar 456 baz 789 quux"wd{'*tito"int"~=}f[ 12:44:28 {} 12:44:47 (drop the '*) 12:45:00 !blsq "foo 123 bar 456 baz 789 quux"wd{tito"int"~=}f[ 12:45:00 {} 12:45:03 !blsq "foo 123 bar 456 baz 789 quux"wd{tito"Int"~=}f[ 12:45:03 {"foo" "123" "bar" "456" "baz" "789" "quux"} 12:45:09 !blsq "foo 123 bar 456 baz 789 quux"wd{tito"Int"==}f[ 12:45:09 {"foo" "123" "bar" "456" "baz" "789" "quux"} 12:45:16 lol 12:45:17 !blsq "foo 123 bar 456 baz 789 quux"wd{'*tito"int"sn}f[ 12:45:17 {"foo" "123" "bar" "456" "baz" "789" "quux"} 12:45:20 !blsq "foo"ti 12:45:20 That line gave me an error 12:45:24 !blsq "foo 123 bar 456 baz 789 quux"wd{'*tito"int"==}f[ 12:45:25 {} 12:45:25 ah 12:45:26 ok 12:45:41 !bslq 123to 12:45:54 !blsq "foo"ra 12:45:54 ERROR: (line 1, column 1): 12:45:57 !blsq "foo"rato 12:45:57 "Error" 12:45:59 :) 12:46:00 hehe 12:46:01 !bslq 123 to 12:46:13 !blsq "foo 123 bar 456 baz"{raisn!}f[ 12:46:14 "foo 123 bar 456 baz" 12:46:20 !blsq "foo 123 bar 456 baz"{rais}f[ 12:46:20 "" 12:46:31 !blsq "foo"rais 12:46:31 1 12:46:34 !blsq "123"rais 12:46:35 0 12:46:41 !blsq "foo 123 bar 456 baz"wd{rais}f[ 12:46:41 {"foo" "bar" "baz"} 12:46:44 !blsq "foo 123 bar 456 baz"wd{raisn!}f[ 12:46:45 {"123" "456"} 12:46:47 :) 12:46:55 I'm barking up the wrong tree. 12:47:01 raisn! filters out everything that can't be parsed by ra 12:47:12 !blsq "foo 123 bar 456 baz .+"wd{raisn!}f[ 12:47:12 {"123" "456"} 12:47:17 !blsq "foo 123 bar 456 baz .+ 9.0"wd{raisn!}f[ 12:47:17 {"123" "456" "9.0"} 12:47:22 !blsq "foo 123 bar 456 baz .+ 9.0 [1,2]"wd{raisn!}f[ 12:47:22 {"123" "456" "9.0" "[1,2]"} 12:47:25 alright, thanks. 12:47:32 !blsq "foo 123 bar 456 baz .+ 9.0 [1,2]"wd{raisn!}f[)ra 12:47:32 {123 456 9.0 {1 2}} 12:48:19 Raisins. 12:48:51 !blsq "foo 123 bar 456 baz .+ 9.0 [1,2]"wd{psisn!}f[)ps 12:48:52 {{ERROR: (line 1, column 4): 12:48:55 !blsq "foo 123 bar 456 baz .+ 9.0 [1,2]"wd{psisn!}f[ 12:48:55 {"foo" "123" "bar" "456" "baz" ".+" "9.0" "[1,2]"} 12:49:06 ah 12:49:07 ok 12:50:38 there's btw w[ 12:50:49 !blsq "foo 123 bar 456 baz .+ 9.0 [1,2]"{raisn!}w[ 12:50:50 "123 456 9.0 [1,2]" 12:50:56 w[ is FilterWords 12:51:04 W[ is FilterLines 12:52:23 I got too chummy with "m[" when I started. Time to date other mappers. 12:52:34 or filters or loopie thingies 12:53:11 I like how people not familiar with Burlesque get confused by missmatching square brackets 12:53:15 :D 12:53:35 or missmatching parantheses 12:53:47 !blsq 5}htenuehasheubewuv.pg'crlygkbx 12:53:48 5 12:54:05 the parser stops if it encounters a } without having seen a { 12:54:27 !blsq "hello all"}"end" 12:54:28 "hello all" 12:54:51 !blsq "hello all"'}"end" 12:54:51 "end" 12:54:52 -!- SvenGek has joined. 12:55:08 '} is a char 12:55:08 :) 12:55:30 Tried to pull the wool over blsqbot eyes. 12:55:59 !blsq 1223 2231IN 12:56:00 1223 12:56:09 !blsq 1232 2231IN 12:56:09 1232 12:56:15 !blsq 12432 22431IN 12:56:16 12432 12:56:19 !blsq 12432 2231IN 12:56:20 1232 12:56:42 intersection of integers is fun 12:56:51 What lang is that? GolfScript? 12:57:10 !blsq {69 0 1 rn}e!10co-] 12:57:10 {1 1 1 1 1 1 0 0 1 0} 12:57:20 !blsq {13 0 1 rn}e!10co-] 12:57:21 {1 1 0 1 0 1 1 1 1 0} 12:58:21 what does intersection do? 12:58:42 shared digits? 12:59:15 !blsq 9988 77877IN 12:59:16 88 12:59:26 !blsq 79988 77877IN 12:59:27 788 13:00:21 hmm, that can probably help me get an answer I have on codegolf SE down 13:02:01 you golf in Burlesque on StackExchange? 13:02:27 Only just started! 13:02:40 And I have to actually thank you. 13:02:49 Link? 13:03:05 If it wasn't for burlesque, id still be stuck with godf*cking lua 13:03:13 http://codegolf.stackexchange.com/questions/38325/minimum-excluded-number 13:04:18 burleques, AND you helping me out with getting to grips with it. 13:04:42 smallest non occuring number? 13:04:48 yes 13:05:19 !blsq {1 0 7 6 3 11 15 9 2 4 5 6 7 8 9}20ro\\ 13:05:20 {0 6 7 9} 13:05:32 !blsq {1 0 7 6 3 11 15 9 2 4 5 6 7 8 9}20roj\\ 13:05:32 {10 12 13 14 16 17 18 19 20} 13:05:37 !blsq {1 0 7 6 3 11 15 9 2 4 5 6 7 8 9}20roj\\ ERROR: Burlesque: (-]) Invalid arguments! 13:05:41 !blsq {1 0 7 6 3 11 15 9 2 4 5 6 7 8 9}20roj\\<] 13:05:41 10 13:06:11 Go right ahead, I'm happy with my original answer. my 1st 13:06:39 I'll just hope to improve with each task. 13:06:50 I'm not sure about he rules on anagol 13:06:59 s/anagol/se 13:07:06 on anagol you have limited testcases 13:07:13 so if the largest number in a given testcase is 18 13:07:25 then don't bother about finding the maximum number in the list first 13:07:28 and just assume it's 20 13:07:29 Yeah, kinda a big loose thread. 13:07:50 If nobody checks an submitted answer, then it stays. 13:08:18 there's no autmatic verification of your program. 13:08:25 I think it's great that you link to the online shell 13:08:38 so people can verify it without having to install Burlesque or anything 13:08:48 -!- Patashu has quit (Ping timeout: 246 seconds). 13:08:54 :) 13:09:16 I should make the textfield a little bit larger though 13:09:41 I'll edit a link to the language spec in there. Try and recruit some ppl. 13:10:30 Yay \o/ 13:10:30 | 13:10:30 >\ 13:10:47 I should also make a link to the homepage from the online shell 13:10:50 To the tutorial? 13:11:03 no just to mroman.ch/burlesque I guess 13:11:13 there's a link to the tutorial there 13:15:35 Ok then. 13:15:52 More people are good :) 13:15:56 More people means more feedback 13:16:01 more feedback means more/better stuff 13:16:11 and more competition :) 13:16:39 more fun 13:25:53 -!- password2 has joined. 13:28:20 -!- GeekDude has joined. 13:32:03 -!- SvenGek has quit (Quit: Bubuy). 13:33:20 -!- vyv has quit (Ping timeout: 244 seconds). 13:35:22 -!- vyv has joined. 13:42:47 -!- drdanmaku has joined. 14:31:05 AndoDaan: Increment every number in a String will be hard in Burlesque 14:31:15 because it will require the kind of state Burlesque sucks at 14:31:32 ooh 14:31:35 I'm trying to crack that one right now. 14:31:52 but you've convinced me. 14:31:54 oh wait 14:31:57 It's impossible. 14:31:59 there's gruyBy 14:32:01 *groupBy 14:33:05 wtf 14:33:10 there isn't any groupBy? 14:33:19 =[ 14:33:32 yeah 14:33:35 but that's group 14:33:37 not groupBy 14:34:47 `perl -eprint"zqa83p774753jm54mi63lel3m883155bfr5b"=~s/\d+/$&+1/ger 14:34:47 zqa84p774754jm55mi64lel4m883156bfr6b 14:35:44 `perl -e$_="zqa83p774753jm54mi63lel3m883155bfr5b";while(/\d+/){substr($_,$-[0],$+[0]-$-[0])++}print 14:35:50 `perl -e$_="zqa83p774753jm54mi63lel3m883155bfr5b";while(/\d+/g){substr($_,$-[0],$+[0]-$-[0])++}print 14:36:14 No output. 14:36:21 No output. 14:36:32 `perl -e$_="zqa83p774753jm54mi63lel3m883155bfr5b";while(/\d+/g){}print 14:36:33 zqa83p774753jm54mi63lel3m883155bfr5b 14:36:50 `perl -e$_="zqa83p774753jm54mi63lel3m883155bfr5b";while(/\d+/g){print"$-[0],$+[0],"}print 14:36:50 3,5,6,12,14,16,18,20,23,24,25,31,34,35,zqa83p774753jm54mi63lel3m883155bfr5b 14:37:10 `perl -e$_="zqa83p774753jm54mi63lel3m883155bfr5b";while(/\d+/g){print"[".substr($_,$-[0],$+[0]-$-[0])."]"}print 14:37:11 ​[83][774753][54][63][3][883155][5]zqa83p774753jm54mi63lel3m883155bfr5b 14:37:29 `perl -e$_="zqa83p774753jm54mi63lel3m883155bfr5b";while(/\d+/g){print"[".substr($_,$-[0],$+[0]-$-[0])++."]"}print 14:37:31 ​[83][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][1][ 14:37:41 oh damn, that breaks the pos 14:38:01 meh, just keep the s///ger method then 14:38:54 AndoDaan: It's mostly impossible 14:39:03 it can be done with using the secondary state stack and stuff 14:39:21 but it will probably be hundreds of characters long just to maintain state 14:39:47 -!- shikhin has joined. 14:39:54 a task for another day. 14:41:40 -!- mitch|chromebook has joined. 14:41:49 You know what would really be helpful, for me at least. a way to watch the internal to and fro of the stacks when the program is running. 14:41:59 like trace... I think. 14:42:31 that's what it's called when debugging befunge. 14:43:27 I see there's no splitBy too 14:43:29 damn 14:43:42 I knew there were important things still missing in 1.7.3 14:44:05 splitby is not ;; ? 14:44:30 "a_feio_ff""_":: 14:44:37 !bslq "a_feio_ff""_":: 14:44:40 no 14:44:46 i mean like 14:44:47 uhm 14:44:51 !bslq "a_feio_ff""_";; 14:44:54 @type splitBy 14:44:55 Not in scope: ‘splitBy’ 14:44:55 Perhaps you meant one of these: 14:44:55 ‘splitAt’ (imported from Data.List), 14:44:58 hm 14:45:03 i.e. 14:45:18 !blsq {1 2 3 4 5 6 7}{2dv} 14:45:19 ERROR: (line 1, column 30): 14:45:23 !bslq "a feio ff"" ";; 14:45:25 which would split the list at even numbers 14:45:31 i.e. instead of an element to split at 14:45:35 you provide a predicate 14:45:50 !bslq "a feio ff"'f;; 14:46:10 !blsq "a feio ff""f";; 14:46:10 {"a " "eio " "" ""} 14:46:21 !bslq "a feio ff""f";; 14:46:41 oops 14:46:47 !blsq "a feio ff""f";; 14:46:47 {"a " "eio " "" ""} 14:47:16 !blsq "a88feio123 ff""([0-9])";; 14:47:17 {"a88feio123 ff"} 14:47:25 !blsq "a88feio123 ff""([0-9]*)";; 14:47:25 {"a88feio123 ff"} 14:47:34 !blsq "a88feio123 ff""([1-9]*)";; 14:47:35 {"a88feio123 ff"} 14:47:45 ;; doesn't work with regex 14:47:48 you need to use sr 14:47:49 !blsq "a88feio123 ff""([]*)"sr 14:47:50 {"([]*)"} 14:47:55 !blsq "a88feio123 ff""([0-8]*)"sr 14:47:55 {"([0-8]*)"} 14:47:58 but sr has a different argument order ;) 14:48:01 !blsq "a88feio123 ff""([0-9])"sr 14:48:01 {"([0-9])"} 14:48:16 !blsq "a88feio123 ff""([0-9])"\/sr 14:48:17 {"a" "" "feio" "" "" " ff"} 14:48:36 well 14:48:47 if there are no '~ in the input string then 14:48:49 instead of split, we use replace 14:49:08 then change the numbers and merge 14:49:09 !blsq "[0-9]""a88b77c"sr 14:49:09 {"a" "" "b" "" "c"} 14:49:16 !blsq "[0-9]""a88b77c"Jx/sr 14:49:17 {"[0-9]"} 14:49:18 !blsq "[0-9]""a88b77c"Jx/sr#s 14:49:19 {{"[0-9]"} "a88b77c"} 14:49:24 !blsq "[0-9]""a88b77c"J#S 14:49:24 "a88b77c" 14:49:26 !blsq "[0-9]""a88b77c"J#s 14:49:27 {"a88b77c" "a88b77c" "[0-9]"} 14:49:32 !blsq "[0-9]""a88b77c"J#s#r 14:49:33 "a88b77c" 14:49:35 !blsq "[0-9]""a88b77c"J#r#s 14:49:36 {"a88b77c" "[0-9]" "a88b77c"} 14:49:41 !blsq "[0-9]""a88b77c"J#rsr 14:49:42 {"a" "" "b" "" "c"} 14:49:45 !blsq "[0-9]""a88b77c"J#rsr#s 14:49:46 {{"a" "" "b" "" "c"} "a88b77c"} 14:50:00 -!- GeekDude has quit (Quit: {{{}}{{{}}{{}}}{{}}} (www.adiirc.com)). 14:50:08 um, try input with 9 and 99 on it to see how it handles when the string gets longer by the way 14:50:31 hehe 14:50:35 this might work 14:50:40 !blsq "[0-9]""a88b77c"J#rsr#s 14:50:40 {{"a" "" "b" "" "c"} "a88b77c"} 14:50:46 !blsq "[0-9]""a88b77c"J#rsrj#s 14:50:46 {"a88b77c" {"a" "" "b" "" "c"}} 14:50:55 !blsq "[0-9]""a88b77c"J#rsrj"[a-z]"jsr#s 14:50:56 {{"" "88" "77" ""} {"a" "" "b" "" "c"}} 14:51:16 !blsq "[0-9]""a88b77c"J#rsrj"[a-z]"jsr#{L[}f[j{L[}f[#s 14:51:17 ERROR: Burlesque: (L[) Invalid arguments! 14:51:27 !blsq "[0-9]""a88b77c"J#rsrj"[a-z]"jsr#{L[}f[#s 14:51:27 ERROR: Burlesque: (L[) Invalid arguments! 14:51:32 !blsq "[0-9]""a88b77c"J#rsrj"[a-z]"jsr# 14:51:32 ERROR: (line 1, column 34): 14:51:36 !blsq "[0-9]""a88b77c"J#rsrj"[a-z]"jsr#s 14:51:37 {{"" "88" "77" ""} {"a" "" "b" "" "c"}} 14:51:43 what 14:51:47 !blsq "[0-9]""a88b77c"J#rsrj"[a-z]"jsr 14:51:47 {"" "88" "77" ""} 14:51:52 !blsq "[0-9]""a88b77c"J#rsrj"[a-z]"jsr{}f[ 14:51:52 {"" "88" "77" ""} 14:51:55 !blsq "[0-9]""a88b77c"J#rsrj"[a-z]"jsr{z?}f[ 14:51:56 {"" ""} 14:51:59 !blsq "[0-9]""a88b77c"J#rsrj"[a-z]"jsr{nz}f[ 14:51:59 {"88" "77"} 14:52:05 !blsq "[0-9]""a88b77c"J#rsrj"[a-z]"jsr{nz}f[j{nz}f[#s 14:52:06 {{"a" "b" "c"} {"88" "77"}} 14:52:14 !blsq "[0-9]""a88b77c"J#rsrj"[a-z]"jsr{nz}f[ 14:52:14 {"88" "77"} 14:52:18 !blsq "[0-9]""a88b77c"J#rsrj"[a-z]"jsr{nz}f[)ri?i 14:52:19 {89 78} 14:52:23 !blsq "[0-9]""a88b77c"J#rsrj"[a-z]"jsr{nz}f[)ri?im] 14:52:24 {"89" "78"} 14:52:29 !blsq "[0-9]""a88b77c"J#rsrj"[a-z]"jsr{nz}f[)ri?im]j{nz}f[ 14:52:29 {"a" "b" "c"} 14:52:32 !blsq "[0-9]""a88b77c"J#rsrj"[a-z]"jsr{nz}f[)ri?im]j{nz}f[#s 14:52:32 {{"a" "b" "c"} {"89" "78"}} 14:52:36 !blsq "[0-9]""a88b77c"J#rsrj"[a-z]"jsr{nz}f[)ri?im]j{nz}f[** 14:52:36 {"89" "a" "78" "b" "c"} 14:52:39 !blsq "[0-9]""a88b77c"J#rsrj"[a-z]"jsr{nz}f[)ri?im]j{nz}f[j** 14:52:40 {"a" "89" "b" "78" "c"} 14:52:43 !blsq "[0-9]""a88b77c"J#rsrj"[a-z]"jsr{nz}f[)ri?im]j{nz}f[j**\[Q 14:52:43 a89b78c 14:52:48 yeah 14:52:57 !blsq "[0-9]""a88b99dcd1234cdc"J#rsrj"[a-z]"jsr{nz}f[)ri?im]j{nz}f[j**\[Q 14:52:58 a89b100dcd1235cdc 14:53:08 well done! 14:53:21 !blsq "a88b99dcd1234cdc""[0-9]"jJ#rsrj"[a-z]"jsr{nz}f[)ri?im]j{nz}f[j**\[Q 14:53:21 a89b100dcd1235cdc 14:53:29 yeah. but this isn't nice burlesque code :) 14:53:30 the impossible achieved iin under 15 min. 14:53:48 code that works is the nicest code 14:53:53 !blsq "1a88b99dcd1234cdc1""[0-9]"jJ#rsrj"[a-z]"jsr{nz}f[)ri?im]j{nz}f[j**\[Q 14:53:53 a2b89dcd100cdc12352 14:54:04 ^- and it's buggy in these edge cases 14:54:15 which you can circumvent 14:54:22 by adding a dummy character to the input first and remove it latter 14:55:00 I guess I add a mapRegex command :) 14:55:12 something like that 14:55:21 but groupBy/splitBy definitely make it to 1.7.4 14:55:24 That might be a useful command "any a any b concate aba" 14:56:19 or maybe middle. 14:56:23 !blsq "abc""123"** 14:56:23 "a1b2c3" 14:56:38 I split the list into non-digits and digits 14:56:41 or somthing like that. 14:56:44 increment the ints in the digits list 14:56:48 and then merge them together with ** 14:57:12 lol, see I shouldn't make suggestions until I hacve a couple more days under my belt. 14:57:20 example input: qr49vUv90jM99JTeyc16uwngba85J2PjKfa9nUv646fteO0zIaH0GaMWJv7uMq3anPAN 14:57:38 but at that point you're shorter using C than using Burlesque 14:57:40 `perl -eprint"qr49vUv90jM99JTeyc16uwngba85J2PjKfa9nUv646fteO0zIaH0GaMWJv7uMq3anPAN"=~s/\d+/$&+1/gre 14:57:41 qr50vUv91jM100JTeyc17uwngba86J3PjKfa10nUv647fteO1zIaH1GaMWJv8uMq4anPAN 14:57:42 and it's probably easier in C as well 14:57:44 ;) 14:58:46 !blsq "a77bc"{2.+}c! 14:58:46 "a7" 14:58:49 !blsq "a77bc"{2.+}c!#s 14:58:49 {"a7" "a77bc"} 14:58:54 !blsq "a77bc"{2.+}3C!#s 14:58:55 {"a7" "a7" "a7" "a77bc"} 14:59:04 !blsq "a77bc"{2.+j}3C!#s 14:59:05 {ERROR: Burlesque: (\/) Stack size error! 2 ERROR: Burlesque: (\/) Stack size er 14:59:11 !blsq "a77bc"{2.+Jj}3C!#s 14:59:11 {"a7" "a7" "a7" "a77bc"} 14:59:13 hm 14:59:23 no. there's no good way to do this sort of stuff 14:59:28 maybe clock/hendrik/teebee knows one 14:59:31 but I doubt it 15:00:17 !blsq "qr49vUv90jM99JTeyc16uwngba85J2PjKfa9nUv646fteO0zIaH0GaMWJv7uMq3anPAN""([0-9]+|[^0-9]+)"=~ 15:00:17 {"qr"} 15:00:38 sadly this stops after the first match 15:02:06 !blsq "a888b898""([0-9]+|[^0-9]+)([0-9]+|[^0-9]+)"=~ 15:02:07 {"a" "888"} 15:02:15 you'd have to do it this way 15:02:22 i.e. 15:02:31 !blsq "a888b898""([0-9]+|[^0-9]+)"10.* 15:02:31 {"([0-9]+|[^0-9]+)" "([0-9]+|[^0-9]+)" "([0-9]+|[^0-9]+)" "([0-9]+|[^0-9]+)" "([ 15:02:36 !blsq "a888b898""([0-9]+|[^0-9]+)"10.*\[=~ 15:02:36 {} 15:02:39 !blsq "a888b898""([0-9]+|[^0-9]+)"10.*\[~= 15:02:39 0 15:02:42 !blsq "a888b898""([0-9]+|[^0-9]+)"10.*\[ 15:02:43 "([0-9]+|[^0-9]+)([0-9]+|[^0-9]+)([0-9]+|[^0-9]+)([0-9]+|[^0-9]+)([0-9]+|[^0-9]+ 15:02:51 but not too many :) 15:03:53 but this is already on the todo list for 1.7.4 15:06:28 "More RegExp-Power for 1.7.4" 15:06:44 -!- TieSoul has left. 15:08:21 ah, that might work 15:08:32 dunno 15:08:40 b_jonas: what might work? 15:08:52 repeating the regex 15:08:59 You'd have to calculate how many teams to repeat it 15:09:13 let me try to make a solution in J 15:09:18 using the cut builtin 15:09:22 !blsq "a888b898""([0-9]+|[^0-9]+)"~= 15:09:22 1 15:09:25 !blsq "a888b898""([0-9]+|[^0-9]+)"=~ 15:09:26 {"a"} 15:09:30 !blsq "a888b898""([0-9]+|[^0-9]+)*"=~ 15:09:31 {"898"} 15:09:40 !blsq "a888b898""(([0-9]+|[^0-9]+))*"=~ 15:09:40 {"898" "898"} 15:09:46 hm 15:09:48 -!- zzo38 has quit (Remote host closed the connection). 15:09:58 !blsq "a888b898""((([0-9]+)|([^0-9])+))*"=~ 15:09:58 {"898" "898" "898" "b"} 15:10:32 !blsq "a888b898""(([0-9])|([a-z]))"=~ 15:10:32 {"a" "" "a"} 15:10:46 !blsq "a888b898""(([0-9]|[a-z]))"=~ 15:10:46 {"a" "a"} 15:11:01 !blsq "a888b898""(([0-9]+|[a-z]+))"=~ 15:11:02 {"a" "a"} 15:11:04 wth 15:11:07 why are there two as? 15:11:17 !blsq "a888b898""([0-9]+|[a-z]+)"=~ 15:11:18 {"a"} 15:11:26 !blsq "a888b898""([0-9]+|[a-z]+)*"=~ 15:11:27 {"898"} 15:11:32 !blsq "a888b898""([0-9]+|[a-z]+)+"=~ 15:11:33 {"898"} 15:11:39 !blsq "a888b898""([0-9]+|[a-z]+)?*"=~ 15:11:39 {"898"} 15:11:51 !blsq "a888b898""([0-9]+|[a-z]+){2}"=~ 15:11:52 {"888"} 15:11:55 !blsq "a888b898""([0-9]+|[a-z]+){1}"=~ 15:11:55 {"a"} 15:11:57 !blsq "a888b898""([0-9]+|[a-z]+){2}"=~ 15:11:58 {"888"} 15:12:00 !blsq "a888b898""([0-9]+|[a-z]+){3}"=~ 15:12:00 {"b"} 15:12:02 !blsq "a888b898""([0-9]+|[a-z]+){4}"=~ 15:12:03 {"898"} 15:12:13 hm 15:12:16 !blsq "a888b898""([0-9]+|[a-z]+){5}"=~ 15:12:16 {"8"} 15:12:24 !blsq "a888b898""([0-9]+|[a-z]+){1,4}"=~ 15:12:25 {"898"} 15:12:34 !blsq "a888b898""([0-9]+|[a-z]+)"=~ 15:12:34 {"a"} 15:12:39 !blsq "a888b898""([0-9]+|[a-z]+)"2.*\[=~ 15:12:40 {"a" "888"} 15:12:43 !blsq "a888b898""([0-9]+|[a-z]+)"3.*\[=~ 15:12:43 {"a" "888" "b"} 15:12:46 !blsq "a888b898""([0-9]+|[a-z]+)"4.*\[=~ 15:12:46 {"a" "888" "b" "898"} 15:12:49 !blsq "a888b898""([0-9]+|[a-z]+)"5.*\[=~ 15:12:49 {"a" "888" "b" "89" "8"} 15:12:52 !blsq "a888b898""([0-9]+|[a-z]+)"6.*\[=~ 15:12:53 {"a" "888" "b" "8" "9" "8"} 15:12:55 !blsq "a888b898""([0-9]+|[a-z]+)"5.*\[=~ 15:12:55 {"a" "888" "b" "89" "8"} 15:12:59 !blsq "a888b898""([0-9]+|[a-z]+)"4.*\[=~ 15:13:00 {"a" "888" "b" "898"} 15:14:06 !blsq {1 2 3}{Pp"a888b898""([0-9]+|[a-z]+)"pP.*\[=~}m[ 15:14:06 {{"a"} {"a" "888"} {"a" "888" "b"}} 15:14:13 !blsq {1 2 3 4 5}{Pp"a888b898""([0-9]+|[a-z]+)"pP.*\[=~}m[ 15:14:13 {{"a"} {"a" "888"} {"a" "888" "b"} {"a" "888" "b" "898"} {"a" "888" "b" "89" "8" 15:14:32 !blsq {1 2 3 4 5}{Pp"a888b898"^^"([0-9]+|[a-z]+)"pP.*\[=~\[==}m[ 15:14:32 {0 0 0 1 1} 15:14:52 I guess you can do some hacky stuff 15:15:09 like just trying until you have the exact amount of repetitions you need 15:15:28 !blsq {1 2 3 4 5}{Pp"a888b898"^^"([0-9]+|[a-z]+)"pP.*\[=~\[}m[ 15:15:29 {"a" "a888b898" "a888" "a888b898" "a888b" "a888b898" "a888b898" "a888b898" "a888 15:15:45 !blsq "a888b898"{1 2 3 4 5}{Pp"a888b898"^^"([0-9]+|[a-z]+)"pP.*\[=~\[}m[Fi 15:15:45 ERROR: Burlesque: (fi) Invalid arguments! 15:15:54 !blsq "a888b898"{1 2 3 4 5}{Pp"a888b898"^^"([0-9]+|[a-z]+)"pP.*\[=~\[}m[fI 15:15:55 {} 15:16:11 !blsq "a888b898"{1 2 3 4 5}{Pp"a888b898"^^"([0-9]+|[a-z]+)"pP.*\[=~\[}m[jFi 15:16:12 1 15:16:28 whatever. 15:16:29 screw it :) 15:16:38 it's not nicely doable in Burlesque 15:16:40 Valiant effort. 15:17:24 as soon as you have to keep track of state like that Burlesque is the wrong tool for it :) 15:18:41 -!- S1 has joined. 15:18:44 there's no loop in Burlesque 15:18:49 other than the sucky w! 15:19:31 AndoDaan: You can use my solution with ** 15:19:43 [ 3 :';y 3 :''<(>:&.:".y),(-.#".y)#y'';.1~1,2~:/\(48+i.10)e.~3 u:y' 'qr49vUv90jM99JTeyc16uwngba85J2PjKfa9nUv646fteO0zIaH0GaMWJv7uMq3anPAN' 15:19:46 this seems to work 15:19:46 you just have to tweak it for the edge case where the string doesn't start with a non-digit 15:20:01 (in J, message it to j-bot to try) 15:20:52 I rather not. Your code should be seen, but I like to keep my submission strickly self created. 15:21:17 but yeah, that's quite ugly 15:21:23 but as soon as you have a real RegExp "findAllMatches" command or groupBy it will be much nicer :) 15:21:41 (i.e. one that doesn't stop after the first match) 15:22:36 b_jonas: it is an ugly "problem" 15:22:38 It's a nice problem 15:22:45 this probably could be improved, I should use the fact that every other group is number 15:22:58 so that I don't need that ugly test 15:23:00 let me try 15:23:16 it's essentially groupBy (\x y -> asciiGroup x == asciiGroup y) 15:23:23 where asciiGroup is Digit,Alpha 15:23:47 > groupBy 15:23:49 No instance for (Data.Typeable.Internal.Typeable a0) 15:23:49 arising from a use of ‘M734772146368920775316617.show_M7347721463689207753... 15:23:49 The type variable ‘a0’ is ambiguous 15:23:49 Note: there are several potential instances: 15:23:49 instance Data.Typeable.Internal.Typeable Data.Dynamic.Dynamic 15:24:09 > groupBy (\x y -> if isDigit x && isDigit y then EQ else LT) "abc87a" 15:24:10 Couldn't match expected type ‘GHC.Types.Bool’ 15:24:10 with actual type ‘GHC.Types.Ordering’Couldn't match expected typ... 15:24:10 with actual type ‘GHC.Types.Ordering’ 15:24:23 > groupBy (\x y -> if (isDigit x) && (isDigit y) then EQ else LT) "abc87a" 15:24:24 Couldn't match expected type ‘GHC.Types.Bool’ 15:24:25 with actual type ‘GHC.Types.Ordering’Couldn't match expected typ... 15:24:25 with actual type ‘GHC.Types.Ordering’ 15:24:26 hm 15:24:45 > groupBy (\x y -> if (isDigit x) && (isDigit y) then True else False) "abc87a" 15:24:46 ["a","b","c","87","a"] 15:24:48 ah 15:24:48 ok 15:25:04 > groupBy (\x y -> if (isDigit x) && (isDigit y) then True else False) "3123abc873a32qr2899" 15:25:06 ["3123","a","b","c","873","a","32","q","r","2899"] 15:25:53 @pl \x y z -> f x `z` f y 15:25:53 (. f) . flip . flip id . f 15:26:13 @pl \x y -> f x && f y 15:26:14 (. f) . (&&) . f 15:26:19 I'd rather not use that :D 15:27:26 @type on 15:27:26 (b -> b -> c) -> (a -> b) -> a -> a -> c 15:28:42 [ 3 :';_2(,>:&.".)&.:>/\y<;.1~1,2~:/\(48+i.10)e.~3 u:y' 'qr49vUv90jM99JTeyc16uwngba85J2PjKfa9nUv646fteO0zIaH0GaMWJv7uMq3anPAN' NB. this works only if the string starts with a non-digit 15:28:51 yeah 15:28:55 that's the easy case! 15:29:01 ;D 15:29:27 the other case is easy, but you have to do them together with the same code 15:32:11 -!- j-bot has joined. 15:32:19 ah great 15:32:23 it lets anyone invite the bot 15:32:29 [ 3 :';_2(,>:&.".)&.:>/\y<;.1~1,2~:/\(48+i.10)e.~3 u:y' 'qr49vUv90jM99JTeyc16uwngba85J2PjKfa9nUv646fteO0zIaH0GaMWJv7uMq3anPAN' 15:32:42 j-bot: 3 :';_2(,>:&.".)&.:>/\y<;.1~1,2~:/\(48+i.10)e.~3 u:y' 'qr49vUv90jM99JTeyc16uwngba85J2PjKfa9nUv646fteO0zIaH0GaMWJv7uMq3anPAN' 15:32:42 b_jonas: qr50vUv91jM100JTeyc17uwngba86J3PjKfa10nUv647fteO1zIaH1GaMWJv8uMq4anPAN 15:33:12 [ 3 :';_2(,>:&.".)&.:>/\y<;.1~1,2~:/\(48+i.10)e.~3 u:y' '49vUv90jM99JTeyc16uwngba85J2PjKfa9nUv646fteO0zIaH0GaMWJv7uMq3anPAN' NB. fails if starts with digit 15:33:12 b_jonas: 4990991685296460073 15:33:50 -!- `^_^v has joined. 15:34:41 -!- prooftechnique has quit (Ping timeout: 260 seconds). 15:35:02 [ 3 :';y 3 :''<(>:&.:".y),(-.#".y)#y'';.1~1,2~:/\(48+i.10)e.~3 u:y' 15:35:03 b_jonas: 3 : ';y 3 :''<(>:&.:".y),(-.#".y)#y'';.1~1,2~:/\(48+i.10)e.~3 u:y' 15:35:20 [ 3 :';y 3 :''<(>:&.:".y),(-.#".y)#y'';.1~1,2~:/\(48+i.10)e.~3 u:y' testcase=:'qr49vUv90jM99JTeyc16uwngba85J2PjKfa9nUv646fteO0zIaH0GaMWJv7uMq3anPAN' 15:35:20 b_jonas: qr50vUv91jM100JTeyc17uwngba86J3PjKfa10nUv647fteO1zIaH1GaMWJv8uMq4anPAN 15:35:31 [ 3 :';y 3 :''<(>:&.:".y),(-.#".y)#y'';.1~1,2~:/\(48+i.10)e.~3 u:y' 2}.testcase 15:35:32 b_jonas: 50vUv91jM100JTeyc17uwngba86J3PjKfa10nUv647fteO1zIaH1GaMWJv8uMq4anPAN 15:35:39 [ 3 :';y 3 :''<(>:&.:".y),(-.#".y)#y'';.1~1,2~:/\(48+i.10)e.~3 u:y' _5}.testcase 15:35:39 b_jonas: qr50vUv91jM100JTeyc17uwngba86J3PjKfa10nUv647fteO1zIaH1GaMWJv8uMq4 15:36:08 that's a bit ugly. (it's not quite golfed, I could probably cut a few characters) 15:36:44 -!- prooftechnique has joined. 15:37:55 (it gets much worse if you want to handle negative numbers though) 15:40:38 what does it do 15:51:25 quintopia: increment each number in the string 15:52:40 -!- password2 has quit (Remote host closed the connection). 15:55:39 ah so it does 15:58:50 -!- shikhout has joined. 16:01:48 -!- shikhin has quit (Ping timeout: 250 seconds). 16:23:17 -!- DKordic`` has left ("ERC Version 5.3 (IRC client for Emacs)"). 17:04:38 -!- prooftechnique has quit (Read error: Connection reset by peer). 17:09:53 In what cases are limits of computable functions computable? 17:33:53 -!- conehead has joined. 17:38:17 -!- AndoDaan_ has joined. 17:40:37 -!- AndoDaan has quit (Ping timeout: 260 seconds). 17:41:58 -!- AndoDaan_ has quit (Client Quit). 17:42:18 -!- AndoDaan has joined. 17:48:53 -!- Sprocklem has joined. 18:05:03 -!- Phantom_Hoover has joined. 18:13:56 -!- ais523 has joined. 18:16:38 -!- S1 has quit (Quit: S1). 18:17:40 -!- AndoDaan_ has joined. 18:18:01 -!- AndoDaan has quit (Ping timeout: 260 seconds). 18:18:12 \n1 18:18:17 \n1 18:18:23 -!- AndoDaan_ has changed nick to AndoDaan. 18:18:27 dammit 18:19:48 -!- Sprocklem has quit (Ping timeout: 260 seconds). 18:21:34 -!- Sprocklem has joined. 18:21:38 -!- AndoDaan_ has joined. 18:22:58 -!- AndoDaan has quit (Ping timeout: 258 seconds). 18:25:07 -!- spiette has joined. 18:25:09 -!- AndoDaan_ has changed nick to AndoDaan. 18:28:36 -!- Sprocklem has quit (Ping timeout: 272 seconds). 18:30:01 mroman_: By the way, if I have a list like {1 2 3 4}, how do I turn that into an output of each of the numbers on its own line? {1 2 3 4}uN gives an empty line, a "12", a "3" and a "4" for some reason I'm not sure of. 18:32:28 Maybe it's because they are numbers and not strings, since {"1" "2" "3" "4"}uN works just fine, but OTOH I don't know how to go from number to string anyway. 18:34:41 Okay, {1 2 3 4})ShuN works, but I don't know if that's the intended way at all. 18:37:28 in J? 18:37:33 Burlesque. 18:41:46 is HELP TC? 18:41:50 by itself? 18:41:57 it has the flavor of TC things 18:42:23 Also I don't know at all how anagolf's Burlesque output goes, I guess it prints the stack or something? But if I type in just the code "1 2 3 4", the output is five lines containing (literally) 4 3 2 1 "" and I don't know how to get rid of the "". Maybe I should go look at an example program. 18:42:26 which is to say, it looks similar to /// 18:45:02 -!- Bicyclidine has joined. 18:48:22 fizzie: I think the "" is the input read from the stdin 18:49:16 b_jonas: Oh, so should I just add a... how do you even drop? (I'm a beginner in this thing.) 18:53:04 Oh, vv. Hmm. 18:56:55 Well, it worked, but the end result was probably horribly suboptimal. 18:59:52 -!- Sprocklem has joined. 19:07:25 -!- Sprocklem has quit (Ping timeout: 260 seconds). 19:10:20 -!- mauris has joined. 19:11:08 -!- Bicyclidine has quit (Ping timeout: 260 seconds). 19:11:18 fizzie: i didn't know you were on anagol!! 19:12:48 fizzie is on anagol? 19:13:13 mroman_: i saw him golfing Burlesque in #anagol just now even 19:13:15 fizzie: The stack is printed at the end 19:13:22 top to bottom 19:13:31 meaning 1 2 3 4 will produce 4\n3\n2\n1\n 19:14:05 fizzie: but on anagol the interpreter pushes stdin to the stack 19:14:09 which means you have to pop it 19:14:14 which is usually done with , 19:14:22 !blsq "",1 19:14:23 1 19:14:41 -!- MoALTz has joined. 19:14:42 , is a special built-in defined as pop if and only if the stack contains exactly one element 19:16:15 Okay, good to know. 19:16:17 fizzie: {1 2 3 4}p^ or {1 2 3 4}^p 19:16:29 p^ and ^p push every element in a Block to the stack 19:16:48 {1 2 3 4}p^ produces 1\n2\n\3\n4 19:17:03 wherease {1 2 3 4}^p is the same exact with the order reversed 19:17:08 *whereas 19:17:25 A006520 is mine, by the way. i was thinking about it on a recent bus ride home. i thought it was weird there wasn't a closed form for it 19:17:37 fizzie: sh is btw. not "print" 19:17:38 well, the golf problem is, not the oeis sequence 19:17:43 people usually confuse that with a print command 19:18:17 what sh does is: It tells the printer (who prints the stack at the end) that it shall be printed differently 19:18:31 And I don't normally golf, I just decided to fiddle a bit. 19:18:37 !blsq "abc"to 19:18:38 "Str" 19:18:42 ^- a String 19:18:44 !blsq "abc"shto 19:18:45 "Pretty" 19:18:54 ^- A String wrapped into a Pretty 19:19:21 !blsq {1 2 3} 19:19:21 {1 2 3} 19:19:27 !blsq {1 2 3}sh 19:19:27 [1, 2, 3] 19:19:37 the default pretty format for blocks is [1, 2, 3] 19:20:58 is there no negation, mroman_ 19:21:16 like, (*-1) i mean 19:21:17 I went with 0j.- 19:22:06 mauris: I don't think so 19:22:25 -!- Phantom_Hoover has quit (Ping timeout: 272 seconds). 19:22:33 Not related, but looking at the language reference, what's the point of DupSwap? ^^ \/ sounds exactly like ^^ since \/ would have two identical elements, would it not? 19:23:17 :D yes 19:23:25 I copy pasted that 19:23:37 not knowing it's just ^^ :) 19:24:12 SwapDup, SwapPop why not DupSwap? 19:24:15 Ok *added DupSwap* 19:24:45 fizzie: But to answer your questions: There's no point using DupSwap 19:24:50 -!- Phantom_Hoover has joined. 19:25:38 mauris: I thought you meant "flip bits" @negate 19:25:46 but it doesn't have "flip bits" nor "*-1" 19:26:05 flipping bits with unbounded integers is kinda... 19:26:07 What's this "hide" business? 19:26:51 fizzie: That's to keep track of state 19:26:57 -!- AndoDaan has quit (Ping timeout: 248 seconds). 19:26:58 It's not a nice solution 19:27:11 It just allows you to hide stuff on the stack and access it later 19:27:26 in case x/ #r #R \/ aren't enough 19:27:39 !blsq 5hdto 19:27:40 "HiddenState" 19:27:42 -!- callforjudgement has joined. 19:27:46 sent 19:27:47 -!- callforjudgement has changed nick to asi523. 19:27:51 ^- That's an Integer wrapped into a "HiddenState" 19:27:54 -!- ais523 has quit (Disconnected by services). 19:27:56 -!- asi523 has changed nick to ais523. 19:28:01 the printer at the end just doesn't print stuff that's Hidden 19:28:04 !blsq 5hdbx 19:28:05 {} 19:28:09 ^- is that an empty list? 19:28:13 (It's not.) 19:28:17 !blsq 5hdbxL[ 19:28:17 1 19:28:24 !blsq 5hdbx 19:28:25 {} 19:28:30 ^- contains an invisible integer 19:28:43 and by invisible I mean it won't be displayed when printing ;) 19:29:12 fizzie: I've tried implementing state in Burlesque for a long time 19:29:21 but I didn't have the guts to rewrite thousands lines of code 19:29:24 so I tried hacking it in 19:29:37 which resulted in this ugly hidden state mess 19:29:43 now there's even a secondary stack 19:30:01 which is also not so much of a pleasant solution 19:30:28 1.7.4 is finally going to have variables for real 19:31:09 !blsq 5hd 4 7 8`a 19:31:09 7 19:31:28 !blsq 5hd 4 7 8 #a 19:31:29 5 19:31:43 you can access stuff hidden with #a for example 19:32:12 However, since map/filter runs on an empty stack 19:32:19 you can't access hidden stuff inside a map or filter 19:32:23 which made it pretty much useless 19:32:58 !blsq 5hd{1 2}{#a}m[ 19:32:59 {ERROR: Can't load non hidden state! Sorry. 1 ERROR: Can't load non hidden state 19:33:02 -!- GeekDude has joined. 19:33:13 !blsq 5Pp{1 2}{pP}m[ 19:33:14 {5 1 5 2} 19:33:21 -!- mihow has joined. 19:33:25 however, you can access the secondary stack within map/filter 19:33:48 before that you had to inject state into code 19:33:49 liku 19:34:11 !blsq 5{1 2}j{}jbx_+m[ 19:34:11 {5 1 5 2} 19:34:21 injects the 5 into the block used by map afterwards 19:38:37 -!- AndoDaan has joined. 19:39:11 fizzie: If you find an error in the doc please report it to me 19:39:32 Some people don't report error and just track errors in the lref in their own local lref 19:39:37 *errors 19:39:50 I really would like the documentation to be as accurate and correct as possible 19:40:13 (i.e. they have their own local doc of Burlesque related things) 19:40:25 which is ok for tricks etc. but not for wrongly documented commands 19:42:15 i.e. if you find something like 19:42:18 !blsq {1 2 3}mo 19:42:19 {1 4 9} 19:42:23 you don't have to report that 19:42:32 because that's not wrong or undocumented 19:42:42 it's a trick 19:47:44 So #r/#R rotates the entire stack, not just the top three elements like the Forth rot/-rot? 19:47:56 the whole stack 19:48:02 !blsq 1 2 3 4#s 19:48:03 {4 3 2 1} 19:48:07 !blsq 1 2 3 4x/#s 19:48:07 {2 4 3 1} 19:48:12 !blsq 1 2 3 4x/x/#s 19:48:12 {3 2 4 1} 19:48:25 use x/ for top three stuff 19:48:33 Oh, I didn't notice x/. 19:48:41 (#s captures the stack in a list, because blqsbot only prints the first line) 19:49:45 -!- mihow has quit (Quit: mihow). 19:52:33 actually #s catpures the stack in a list and pushes the list to the stack 19:52:50 unlike CL which captures the stack in a list and replace the stack's contents with only that list 19:52:55 !blsq 1 2 3#s#s 19:52:55 {{3 2 1} 3 2 1} 19:52:59 !blsq 1 2 3CLCL 19:52:59 {{3 2 1}} 19:56:55 Is there something like Forth "over", for stack "... x y" to "... x y x"? Other than "jJx/j"? 19:57:02 -!- AndoDaan has quit. 19:59:12 hm 19:59:47 !blsq 1 2 3 "x" "y"{j}c! 19:59:48 "x" 19:59:50 !blsq 1 2 3 "x" "y"{j}c!#s 19:59:50 {"x" "y" "x" 3 2 1} 20:00:04 fizzie: {j}c! should work 20:00:16 or shorter 20:00:24 !blsq 1 2 3 "x" "y"qjc!#s 20:00:25 {"x" "y" "x" 3 2 1} 20:00:27 qjc! 20:00:38 Okay, I don't know c! at all. (It's a big language.) 20:00:55 c! is what I call a continuation 20:01:06 it runs a command on the stack while preserving the stack 20:01:09 !blsq 1 2.+#s 20:01:09 {3} 20:01:13 ^- deletes 1 and 2 20:01:18 !blsq 1 2q.+c!#s 20:01:18 {3 2 1} 20:01:27 ^- preserves the stack before 20:02:39 So, um, how does that make j end up from x y to x y x? 20:03:24 A continuation is assumed to push one element to the stack 20:03:34 I.e. the return value of a continuation is the element on the top 20:03:40 I see. 20:03:43 x y -> swap y x 20:03:51 which means that the continuation returned x 20:03:59 then just push the result to the existing stack 20:04:16 fizzie: so... to go further 20:04:18 you can even do 20:04:26 !blsq 1 2 3 4 5{vvvv}c!#s 20:04:26 {3 5 4 3 2 1} 20:05:20 hm. Is this documented? 20:05:33 hm no. 20:05:49 TODO: Document Continuations in the lref. 20:07:22 !blsq 1 2 3 4 0mv 20:07:22 ERROR: Unknown command: (mv)! 20:07:25 !blsq 1 2 3 4 0MV 20:07:26 4 20:07:28 oh 20:07:30 ok 20:07:36 !blsq 1 2 3 "x" "y"1MV 20:07:36 "x" 20:07:39 !blsq 1 2 3 "x" "y"1MV#n 20:07:39 ERROR: Unknown command: (#n)! 20:07:42 !blsq 1 2 3 "x" "y"1MV#s 20:07:42 {"x" "y" 3 2 1} 20:07:58 oh 20:07:59 "move" 20:08:03 doesn't copy :D 20:09:28 hm 20:09:37 TODO: Add Copy (like MV) for 1.7.4 20:10:27 !blsq 1 2 3 4 2MV#s 20:10:27 {2 4 3 1} 20:15:28 Well, understanding continuations did cut one character off, so I guess that's a success. 20:16:12 (Also execution time from ~1.7s to 0.03s.) 20:22:32 -!- olsner has joined. 20:27:01 -!- incomprehensibly has joined. 20:32:20 http://www.nyx.net/~gthompso/self_brainf.txt 20:32:30 BF programs that print themselves 20:35:01 not much different from quines in any other language 20:35:18 all three obviously use the same principle 20:46:59 bf is a somewhat inefficient language to write quines in, but yes, there's no theoretical problem 20:47:23 well, brainfuck is an inefficient language to do anything really 20:48:01 even to interpret brainfuck 20:49:57 `perl -e print+("print+(","\"",",","\\",")[g1012131121212133121414=~/./g]")[g1012131121212133121414=~/./g] 20:49:57 print+("print+(","\"",",","\\",")[g1012131121212133121414=~/./g]")[g1012131121212133121414=~/./g] 20:51:44 b_jonas: that seems pretty long, as Perl quines go 20:51:49 although, most Perl quines aren't one-liners 20:52:20 my favourite perl quine is "#!/bin/cat" followed by absolutely anything at all, but it doesn't work with -e 20:52:21 sure, I have shorter ones 20:52:25 that's just my favourite one 20:52:43 http://www.perlmonks.com/?node_id=661934 lists shorter ones 20:53:17 `perl -e $a=q(;print"\$a=q($a)$a");print"\$a=q($a)$a" 20:53:18 ​$a=q(;print"\$a=q($a)$a");print"\$a=q($a)$a" 20:53:22 `perle $a=q(;print"\$a=q($a)$a");print"\$a=q($a)$a" 20:53:22 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: perle: not found 20:54:03 that's the shortest one-liner perl quine I know 20:54:50 it's 44 characters long, and the shortest non-empty perl quine I know is 28 characters I think 20:54:58 BLC's quine is 16.5 bytes 20:55:11 what... how do you get half a byte? 20:55:23 and what's BLC's quine? 20:55:27 IO is in bits 20:56:02 see http://en.wikipedia.org/wiki/Binary_lambda_calculus#A_quine 20:56:05 (maybe I should add non-cheating to the conditions) 20:56:19 I see 20:56:51 ^ul (:aS(:^)S):^ 20:56:51 (:aS(:^)S):^ 20:56:55 http://www.jsoftware.com/jwiki/Puzzles/Quine lists some J quines 20:57:07 I like that one more than the canonical (:aSS):aSS. 20:58:41 ^ul (:a(:^)*S):^ 20:58:42 (:a(:^)*S):^ 20:58:46 that one's my favourite 20:59:25 ok, now as for www.perlmonks.com/?node_id=1077628 , although it's not required for this quine to work, can you explain why perl stops parsing when it reads CORE::z instead of trying to continue parsing like for most syntax errors? 21:01:27 -!- GeekDude has quit (Quit: {{{}}{{{}}{{}}}{{}}} (www.adiirc.com)). 21:02:12 -!- Patashu has joined. 21:03:01 Illegal division by zero at /tmp/abc line 1. 21:03:07 `perl -e $_=q(print qq(\$_=q($_);eval\n));eval 21:03:08 ​$_=q(print qq(\$_=q($_);eval\n));eval 21:03:25 `perl -E say length q<$_=q(print qq(\$_=q($_);eval\n));eval> 21:03:25 37 21:03:32 that's shorter, nice 21:08:25 no really, why does it quit immediately? 21:09:21 `sh echo 1;(cat "-+";sleep 999)|perl 21:09:22 sh: 0: Can't open echo 1;(cat "-+";sleep 999)|perl 21:09:27 `sh -c echo 1;(cat "-+";sleep 999)|perl 21:09:27 sh: 0: Illegal option - 21:09:47 `bash -c echo 1;(cat "-+";sleep 999)|perl 21:09:48 bash: - : invalid option \ Usage:bash [GNU long option] [option] ... \ bash [GNU long option] [option] script-file ... \ GNU long options: \ --debug \ --debugger \ --dump-po-strings \ --dump-strings \ --help \ --init-file \ --login \ --noediting \ --noprofile \ --norc \ --posix \ --protected \ --rcfile \ --restricted \ --verbose \ 21:09:58 b_jonas: you need `run 21:10:03 if you want to give more than one command-line argument 21:10:40 why doesn't just one command line argument with the option value after -c in the same argument work? 21:10:44 `bash -cecho 1;(cat "-+";sleep 999)|perl 21:10:44 bash: - : invalid option \ allexport off \ braceexpand on \ emacs on \ errexit on \ errtrace off \ functrace off \ hashall on \ histexpand on \ history on \ ignoreeof off \ interactive-commentson \ keyword off \ monitor off \ noclobber off \ noexec o 21:10:49 `run echo 1;(cat "-+";sleep 999)|perl 21:10:57 `run echo 2;(cat "CORE::z";sleep 999)|perl 21:11:06 `run echo 3;(echo "CORE::z";sleep 999)|perl 21:11:13 `run echo 4;(echo "+-";sleep 999)|perl 21:11:19 1 \ cat: invalid option -- '+' \ Try `cat --help' for more information. 21:11:28 2 \ cat: CORE::z: No such file or directory 21:11:36 3 \ CORE::z is not a keyword at - line 1. 21:11:44 4 21:12:19 -!- callforjudgement has joined. 21:12:25 -!- callforjudgement has quit (Changing host). 21:12:25 -!- callforjudgement has joined. 21:14:27 -!- ais523 has quit (Ping timeout: 245 seconds). 21:14:51 -!- callforjudgement has changed nick to ais523. 21:25:17 -!- Patashu has quit (Ping timeout: 272 seconds). 21:45:47 !blsq {1 2 3 4}{}MP s# 21:45:48 ERROR: Unknown command: (s#)! 21:45:52 !blsq {1 2 3 4}{}MP #s 21:45:52 {4 3 2 1} 21:45:57 !blsq {1 2 3 4}{}m[p^ #s 21:45:57 {1 2 3 4} 21:46:00 !blsq {1 2 3 4}{}m[^p #s 21:46:01 {4 3 2 1} 21:46:34 mroman_: Documentation mismatch: language reference says "MapPush -- MP -- Defined as m[p^" but it seems to be m[^p instead. 21:49:02 (I'd have made a one character shorter thing if it were m[p^.) 21:49:38 -!- oerjan has joined. 21:50:56 @messages-bold 21:50:56 mroman_ said 14h 22m 53s ago: I knew that. But it works for lists [1..] which is usually what you have when golfing 21:55:18 (Actually, I did go from 28 to 25 by reading the language reference a bit. But it'd still be 23 with an abbreviated m[p^.) 21:59:46 -!- shikhin has joined. 22:03:17 -!- shikhout has quit (Ping timeout: 272 seconds). 22:07:28 -!- not^v has joined. 22:20:04 -!- not^v has quit (Read error: Connection reset by peer). 22:20:47 -!- not^v has joined. 22:26:24 -!- GeekDude has joined. 22:35:23 -!- not^v has quit (Ping timeout: 240 seconds). 22:35:51 -!- not^v has joined. 22:39:58 -!- not^v has quit (Ping timeout: 244 seconds). 22:41:43 -!- mauris has quit (Ping timeout: 258 seconds). 22:44:06 @tell mroman_ I'm just reading your haskell golfing tips and i'd just like to point out that c/=5||odd x can be shortened to 1>0 hth 22:44:07 Consider it noted. 22:44:34 * oerjan whistles innocently 22:57:44 -!- AndoDaan has joined. 23:00:41 -!- esowiki has joined. 23:00:45 -!- esowiki has joined. 23:00:46 -!- esowiki has joined. 23:01:02 -!- esowiki has joined. 23:01:06 -!- esowiki has joined. 23:01:07 -!- esowiki has joined. 23:01:45 -!- esowiki has joined. 23:01:49 -!- esowiki has joined. 23:01:50 -!- esowiki has joined. 23:02:06 -!- esowiki has joined. 23:02:10 -!- esowiki has joined. 23:02:11 -!- esowiki has joined. 23:02:27 -!- esowiki has joined. 23:02:31 -!- esowiki has joined. 23:02:32 -!- esowiki has joined. 23:03:13 -!- esowiki has joined. 23:03:14 -!- glogbot has joined. 23:03:17 -!- esowiki has joined. 23:03:18 -!- esowiki has joined. 23:07:14 1>0 is such a good jam 23:07:18 @where pi_10 23:07:18 (!!3)<$>transpose[show$foldr(\k a->2*10^2^n+a*k`div`(2*k+1))0[1..2^n]|n<-[0..]] 23:07:21 @where e_10 23:07:21 [show(sum$scanl div(100^n)[1..[4..]!!n])!!n|n<-[0..]] 23:07:36 hm 23:07:42 not sure where we used it 23:09:53 -!- S1 has joined. 23:10:04 -!- spiette has quit (Ping timeout: 260 seconds). 23:10:57 -!- AndoDaan has quit (Ping timeout: 248 seconds). 23:11:30 S1.S1test2: points -10.40, score 13.00, rank 46/47 23:11:39 S1.S1test2: points -10.40, score 13.00, rank 46/47 (--) 23:11:56 why does it print that here too 23:12:15 S1.S1test2: points -9.50, score 13.48, rank 45/47 (+1) 23:13:00 S1.S1test2: points -28.76, score 4.17, rank 47/47 (-2) 23:13:24 -!- AndoDaan has joined. 23:14:09 shachaf: 1>0 was from _another_ one of his golfing tips 23:14:28 yes, i remember using it but i don't remember where 23:14:34 S1.S1test2: points -32.33, score 3.13, rank 47/47 (--) 23:16:10 S1: we seem to have decided that all hill changes should be announced here, so people know about them 23:16:43 k if you want to track my failure ^^ have fun 23:17:02 well you got above 47, that's a start :) 23:17:11 it was luck 23:17:26 I am reading the strategies article from time to time, started today 23:19:22 S1: also you don't need to include your nick in the program name, it's prepended automatically 23:20:53 S1: there is also the !bftest command which you can use if you don't want announcement (but it won't change the hill either, so once you get a program good enough that you want it to stay you should use !bfjoust) 23:21:39 now food 23:22:17 oh I didn't know that 23:22:32 !bftest from now on it is 23:22:32 S1.from: points -28.76, score 4.17, rank 47/47 23:22:35 :3 23:23:28 -!- AndoDaan has quit (Ping timeout: 276 seconds). 23:32:17 -!- glogbot has quit (Ping timeout: 245 seconds). 23:32:23 -!- esowiki has joined. 23:32:25 -!- glogbot has joined. 23:32:27 -!- esowiki has joined. 23:32:28 -!- esowiki has joined. 23:35:01 [wiki] [[Special:Log/newusers]] create * Richardr051 * New user account 23:36:59 -!- Phantom_Hoover has quit (Remote host closed the connection). 23:38:06 -!- AndoDaan has joined. 23:44:27 -!- vyv has quit (Ping timeout: 245 seconds). 23:46:35 -!- vyv has joined.