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