←2014-11-24 2014-11-25 2014-11-26→ ↑2014 ↑all
00:02:38 -!- tlewkow_ has quit (Remote host closed the connection).
00:08:33 -!- jix has joined.
00:12:41 -!- tlewkow has joined.
00:12:52 -!- callforjudgement has joined.
00:13:04 -!- ais523 has quit (Disconnected by services).
00:13:07 -!- callforjudgement has changed nick to ais523.
00:16:53 -!- Phantom_Hoover has quit (Remote host closed the connection).
00:30:54 -!- jix has quit (Ping timeout: 240 seconds).
00:32:56 -!- tlewkow has quit (Remote host closed the connection).
00:33:36 -!- tlewkow has joined.
00:40:58 -!- nooga has quit (Ping timeout: 256 seconds).
00:45:18 -!- Sgeo has quit (Read error: Connection reset by peer).
00:47:12 -!- Sgeo has joined.
00:56:51 <paul2520> Dulnes: cute
01:01:22 -!- adu has joined.
01:02:58 -!- jix has joined.
01:13:27 -!- callforjudgement has joined.
01:13:42 -!- ais523 has quit (Read error: Connection reset by peer).
01:13:49 -!- callforjudgement has changed nick to ais523.
01:28:15 -!- ais523 has quit (Read error: Connection reset by peer).
01:28:22 -!- ais523 has joined.
01:36:00 <oerjan> you know your code is robust when your test passes even if you have misspelled mod as div
01:37:14 <coppro> yes, let's go with that
01:37:15 <shachaf> oerjan: is that like https://github.com/mame/radiation-hardened-quine
01:37:54 <oerjan> POSSIBLY
01:37:54 -!- adu has quit (Quit: adu).
01:39:07 <oerjan> (more seriously, having div caused a subtest to always pass, but it was redundant for the test case)
01:43:40 * oerjan tries submitting without the subtest too
01:44:24 <oerjan> case 1 and 3 still succeed then, but 2 actually needs it
01:45:25 <oerjan> (btw the test is for whether i'm at the end of a line, so that a domino cannot go on rightward)
01:46:52 <oerjan> another way of removing it failed all 3
01:52:03 <Dulnes> Hehhehehhe >_>
01:52:16 <oerjan> Dulnes: hm?
01:52:54 <HackEgo> [wiki] [[DNA-Sharp]] http://esolangs.org/w/index.php?diff=41130&oldid=41047 * 79.204.240.23 * (+80) Undo revision 41047 by [[Special:Contributions/149.69.108.53|149.69.108.53]] ([[User talk:149.69.108.53|talk]]) - Editor reuploaded, sorry for that.
01:54:15 * oerjan must stop this habit of absentmindedly editing his submitted entries without copying them first
01:54:44 <HackEgo> [wiki] [[DNA-Sharp]] http://esolangs.org/w/index.php?diff=41131&oldid=41130 * 79.204.240.23 * (-80) Undo revision 41130 by [[Special:Contributions/79.204.240.23|79.204.240.23]] ([[User talk:79.204.240.23|talk]]) - There seems to be some problem, I will have to fix that in the near future. Link will be removed until then.
02:02:44 -!- adu has joined.
02:17:36 -!- GeekDude has joined.
02:17:38 <GeekDude> shoot
02:17:45 <GeekDude> I just realized I set my client to auto-join #estoeric
02:17:59 <GeekDude> I miss your BF jousts
02:18:29 <oerjan> well it's a bit confusing right now
02:18:49 <oerjan> fizzie didn't get around to fix the bug in zemhill, then EgoBot came _back_
02:19:30 <oerjan> so now we have two bots responding to the !bfjoust command, with different hills. and while zemhill _should_ be an improvement, it's currently buggy.
02:19:36 <GeekDude> hmm
02:19:40 <GeekDude> I'm, no good at BF
02:19:46 <GeekDude> I just enjoyed the mass spam
02:19:50 <oerjan> heh
02:20:03 <oerjan> well there's quite a bit of burlesque spam :)
02:20:14 <GeekDude> I'm still trying to figure out a good way to spam piet over IRC
02:20:24 <oerjan> OKAY
02:20:34 <GeekDude> there aren't enough color codes
02:20:46 <GeekDude> actually, there might be
02:20:50 <GeekDude> they just aren't the right colors
02:25:12 -!- jix has quit (Remote host closed the connection).
02:25:21 -!- jix has joined.
02:28:24 * oerjan shaves off 5 bytes
02:30:55 <oerjan> ooh an idea
02:31:03 -!- GeekDude has quit (Quit: {{{}}{{{}}{{}}}{{}}} (www.adiirc.com)).
02:32:30 <oerjan> ooh this allows me to tie fizzie's burlesque with haskell :P
02:33:03 <oerjan> perhaps beat, if i can improve the formula
02:33:51 <oerjan> wait where did that bug come from :(
02:34:13 <oerjan> oh darn
02:34:45 <oerjan> the formula needs integers, not chars
02:38:08 <int-e> oerjan: unfortunately it's not the bot, it's the server. (I still haven't implemented the regular flushing of state though, that's my fault.
02:39:00 <oerjan> I C
02:39:15 <int-e> oerjan: "[host] has experiened a kernel panic. We have rebooted the node into the latest stable OpenVZ kernel. Your VPSs should be back up shortly."
02:40:18 -!- mihow has quit (Quit: mihow).
02:41:27 <int-e> at least my init script that restarts the bot's screen session is now well-tested.
02:42:54 <oerjan> ooh an even better idea, if this works
02:50:11 -!- bb010g has joined.
02:54:36 <Dulnes> God i hate burlesque
02:54:41 <Dulnes> No offense
02:54:52 <Dulnes> To you ppls who use it
02:55:05 <oerjan> o_O
02:55:39 * oerjan doesn't actually use it, but are you on the right channel?
02:55:39 <Dulnes> èoé
02:55:54 <Dulnes> Its not like i hate hate it
02:56:15 <Dulnes> I just dislike it when i have to use it to complete something
02:56:15 <Taneb> It is annoying when my scrollback is filled with Burlesque
02:56:29 <Taneb> But I can tolerate it
02:56:36 <Dulnes> i cannot
02:56:39 <Taneb> It's not like I understand half the things in this channel in any case
02:57:13 <Dulnes> I will flip shit if someone comes in here spouting malbolge
02:57:54 <int-e> "when i have to use it" ... I don't follow.
02:57:58 -!- augur_ has changed nick to augur.
02:58:33 <int-e> There are so many esoteric languages, you can pick one that you actually like.
02:58:34 <Dulnes> Idk like if i wanna do something with a friend
02:58:52 <Dulnes> But they use burlesque
02:59:01 <oerjan> Dulnes: has this ever happened to you yet
02:59:08 <Dulnes> Yes
02:59:11 <Dulnes> once
02:59:20 <Dulnes> It was awful
03:08:46 -!- vanila has joined.
03:12:21 -!- tlewkow has quit (Remote host closed the connection).
03:12:48 -!- tlewkow has joined.
03:17:18 -!- tlewkow has quit (Ping timeout: 255 seconds).
03:19:46 -!- adu has quit (Quit: adu).
03:38:54 -!- shikhout has quit (Ping timeout: 255 seconds).
03:43:44 -!- ais523 has quit.
03:44:18 -!- ais523 has joined.
03:45:41 -!- tlewkow has joined.
03:46:32 <vanila> is there a simple algorithm to perform the optimal self modifying regex compression?
03:48:19 -!- Sprocklem has joined.
03:52:44 <lifthrasiir> vanila: what do you mean by "compression"?
03:53:00 <lifthrasiir> like, turning /foo|bar|baz/ into /foo|ba[rz]/?
03:53:59 <Bicyclidine> vanila's been talking about it for a while. i think they mean shorter regex strings
03:54:16 <vanila> _='h~world}me}you}all~ello } h~';for(i in g='}~')with(_.split(g[i]))_=join(pop());eval(_)
03:54:19 <vanila> this one
03:54:25 <Bicyclidine> which seems like it might be harder since it's more all over the place than some DFA shrinkage
03:54:40 <lifthrasiir> vanila: did you take a look at regpack source code?
03:54:44 <lifthrasiir> ah
03:54:47 <vanila> yeah but I didn't understand it
03:54:52 <lifthrasiir> the "optimal" one? I'm not sure about that though.
03:54:54 <vanila> and I don't know if it uses the best algorithm
03:55:03 <lifthrasiir> like a heuristic
03:55:10 <vanila> im curious about how to do it at all though
03:55:20 <lifthrasiir> just as most compressors use a (well-working) heuristic
03:56:26 <lifthrasiir> vanila: it is essentially a crude version of LZ77 and it is hard to find the "optimal" compression
03:57:06 <oerjan> 14 more bytes shaved off
03:57:12 <vanila> im checking out lz77
03:59:34 <int-e> oerjan: 15 more until you break even with my cheating solution
04:00:12 <oerjan> ooh
04:00:19 <oerjan> i think that might be hard
04:03:40 -!- MoALTz_ has joined.
04:06:48 -!- MoALTz has quit (Ping timeout: 255 seconds).
04:09:44 <int-e> oerjan: sigh. I don't know how to do this properly without refactoring tons of code: https://github.com/int-e/lambdabot/commit/4d112c371e306e79983b262fd758693742d79430
04:10:25 -!- lambdabot has quit (Quit: brb).
04:10:30 <int-e> it'll just have to do for now
04:10:54 <oerjan> int-e: you could use a lock hth
04:12:38 <int-e> I guess what the code should be doing is use the create-new-temporary-file-and-rename idiom.
04:13:38 <vanila> I dont think LZ77 is similar to the self modifying regex stuff
04:14:18 <int-e> it is similar in that you encode repeated substrings. and I guess that's as far as the similarity goes.
04:14:40 -!- lambdabot has joined.
04:18:38 <oerjan> that module seems to only explicitly import things that everyone knows how to find, but not the lambdabot modules themselves :(
04:18:57 <oerjan> like, THAT'S THE OPPOSITE OF THE RIGHT PRIORITY
04:19:11 <elliott> lambdabot code is horrible
04:19:35 <oerjan> i was like wondering where flushModuleState is defined
04:26:52 <oerjan> apparently "Sorry, forked repositories are not currently searchable." and int-e/lambdabot is a forked repository.
04:27:00 -!- hjulle has quit (Ping timeout: 264 seconds).
04:29:04 <vanila> I wonder how to find a good and the best compression algorithm
04:29:08 <vanila> for one thing
04:29:13 <vanila> I can think, it's easy to find repeated substrings
04:29:28 <vanila> but then which set should you replace with a substitution?
04:29:40 <vanila> in which order to perform them
04:30:09 <oerjan> vanila: see kolmogorov complexity, then weep hth
04:30:42 <vanila> noidont want to weep
04:30:47 <vanila> just compress ;D
04:30:52 <vanila> "hth"
04:30:53 <vanila> lol
04:30:58 <oerjan> NO COMPRESSION WITHOUT BITTER TEARS
04:31:08 <vanila> also See; Halting Problem, HTH "Hope that halts"
04:31:37 <vanila> in exchage for algorithm I offer you 1 (one) cup of tears
04:33:14 <vanila> but reall y I think compression is interesting because you can come up against complexity without getting into undeciable problems
04:33:28 <oerjan> IC
04:33:52 <vanila> of course you have to prove your decompression language is not turing
04:39:42 <int-e> oerjan: ok, this should help things: https://github.com/int-e/lambdabot/commit/de814c2bce21c588dd1d0dc82ba2c0e1b7e4df21
04:39:55 <Dulnes> Hhhh i just found my Atari
04:40:01 <int-e> ugly. sigh.
04:40:29 <Dulnes> oerjan: just compress your tears
04:40:46 <oerjan> good, good
04:40:48 -!- lambdabot has quit (Quit: brb).
04:41:11 <oerjan> Dulnes: water is mostly incompressible hth
04:42:08 <int-e> And yes, the whole lambdabot code is a bit messy. Some old cruft, some overengineering, a number of ugly hacks (like this flushing one) that have survived the tides of time... it all adds up. It's remarkable that it holds together overall.
04:45:02 -!- lambdabot has joined.
04:47:07 <Dulnes> Pdp1
04:48:21 <Dulnes> Also the only way i see lambda bot being held together would be large ammounts of virtual ductape
04:52:45 <vanila> rewrite it in python or go
05:07:51 -!- Deewiant has quit (Ping timeout: 250 seconds).
05:08:04 -!- MDude has changed nick to MDream.
05:10:32 -!- tlewkow has quit (Remote host closed the connection).
05:13:01 -!- tlewkow has joined.
05:16:23 -!- Deewiant has joined.
05:22:04 <int-e> vanila: that will just result in a different, and likely bigger mess.
05:25:26 <Bicyclidine> we
05:25:34 <Bicyclidine> just compromise. write half of in haskell and half in python.
05:30:21 <int-e> ...
05:30:30 <int-e> Thanks, but I'll pass.
05:31:30 <vanila> alternatively write it in C for speed
05:31:32 <int-e> FTR, I actually like Python, but I don't think it'll mix well with Haskell.
05:31:56 <vanila> why do you like python?
05:32:23 <Bicyclidine> write it in double C for double speed
05:32:29 <vanila> Double C???
05:32:35 <vanila> lol
05:32:36 <Bicyclidine> twice as much C, so it's twice as fast
05:32:43 <int-e> The usual, I guess. Easy going, quick to get started, and it has a pretty sane standard library.
05:32:47 <Bicyclidine> it's closer to the metal
05:32:54 <Bicyclidine> closerer
05:41:16 -!- ais523 has quit (Read error: Connection reset by peer).
05:41:33 -!- ais523 has joined.
05:54:27 <Dulnes> Bicyclidine: wth are you saying
05:54:34 <Dulnes> Closerer
05:54:42 <Dulnes> Double C
05:55:07 <Bicyclidine> cc
05:56:22 <Dulnes> Javascipt Thats actually C
05:56:38 <Dulnes> Go home you're drunk
06:00:35 -!- tlewkow has quit (Remote host closed the connection).
06:03:25 -!- Sprocklem has quit (Ping timeout: 264 seconds).
06:08:53 -!- tlewkow has joined.
06:19:44 <Dulnes> `toroman 45
06:19:45 <HackEgo> XLV
06:20:36 <Dulnes> ( (flip div) 56843
06:20:36 <idris-bot> flip (\{meth0} => \{meth1} => prim__sdivBigInt meth meth) 56843 : Integer -> Integer
06:22:42 <Dulnes> Non
06:23:10 <Dulnes> @ 0/0
06:23:20 <Dulnes> Or what was it
06:34:12 <fizzie> oerjan: Shameful how much trouble I'm having getting Burlesque to beat Haskell there. (Just shaved it to be 1B better.)
06:34:22 <oerjan> ah
06:35:03 <oerjan> (dang)
06:37:34 <fizzie> Ooh, I think I see a 12B saving.
06:37:41 <oerjan> AAAAAAAAAAAAAAAAAAAAA
06:37:54 <fizzie> (Might not work out.)
06:38:58 <fizzie> Oh no, have to go to work first.
06:39:01 <fizzie> Well, we'll see later.
06:45:23 -!- callforjudgement has joined.
06:45:28 -!- ais523 has quit (Read error: Connection reset by peer).
06:45:31 -!- callforjudgement has quit (Changing host).
06:45:31 -!- callforjudgement has joined.
06:45:35 -!- callforjudgement has changed nick to ais523.
07:03:55 -!- tlewkow has quit (Remote host closed the connection).
07:21:25 <fizzie> Did I say 12B? I meant 14B.
07:25:47 <Bicyclidine> so GNU C has __thread, but doesn't know what _Thread_local means. awesome.
07:28:16 <mroman> Bicyclidine: ?
07:28:35 <mroman> __thread is GCC's thread-local storage class keyword.
07:29:50 <Bicyclidine> yes. _Thread_local is C11.
07:30:15 <mroman> oh
07:30:28 <mroman> I haven't looked at C11 very much I'm afraid
07:30:41 <Bicyclidine> is there, like, a reason gcc doesn't just #define _Thread_local __thread somewhere
07:30:55 <ais523> Bicyclidine: what if someone stringifies it?
07:31:01 <ais523> or #ifdefs it?
07:31:05 <Bicyclidine> god. fuck. god
07:31:15 <mroman> GCC 4.9 supports _Thread_local
07:31:21 <oerjan> fizzie: AAAAAAAAAAAAAAAA
07:31:30 <Bicyclidine> oh, wonder what my version is
07:31:33 <Bicyclidine> gonna be like 2.7
07:31:36 <oerjan> (you beat your own cheating bash version?)
07:31:46 <fizzie> oerjan: By 8B now, yes.
07:32:01 <fizzie> (I found another useless 7B in there. So sloppy.)
07:32:02 <mroman> fizzie: You wrote a >100B Burlesque program?
07:32:05 <mroman> u mad?
07:32:06 <mroman> :)
07:32:35 <b_jonas> mroman: what? what's wrong with that?
07:32:35 <oerjan> fizzie: O KAY
07:32:41 <mroman> b_jonas: nothing.
07:32:49 <vanila> @esolang Burlesque
07:32:49 <lambdabot> Unknown command, try @list
07:32:50 <b_jonas> mroman: it could be just a double-quoted string
07:32:54 <fizzie> Well, I mean, I wouldn't have, if I could just make it shorter.
07:33:04 <fizzie> There are no double-quoted strings in the program, FWIW.
07:33:14 <mroman> but long Burlesque programs is usually an indicator that you have to manage state
07:33:27 <mroman> and managing state is pure pain in the ass in Burlesque I'm afraid
07:33:56 <Bicyclidine> 4.8.2. not bad i guess.
07:34:30 <mroman> fizzie: What would help to make it shorter?
07:34:40 <oerjan> ^wiki Burlesque
07:34:40 <fungot> http://esolangs.org/wiki/Burlesque
07:34:41 <mroman> (other than "add a builtin that exactly solves this problem". I won't do that)
07:35:15 <mroman> I'm more looking for patterns that can be implemented to be useful for many other problems as well
07:35:18 <mroman> like the Continuations
07:35:21 <mroman> stuff like that.
07:36:04 -!- Patashu has joined.
07:36:30 <b_jonas> mroman: I'm still saying, a builtin that pops a natural number, then picks the value from the stack that is that far from the top and pushes that to the stack, would help, because that takes five characters now
07:37:19 <b_jonas> That would let you use the stack as the frame for local variables.
07:37:43 <mroman> b_jonas: there's MV which pops a natural number and moves that element from the stack to the top
07:37:55 <mroman> but there's no "copy" as of now
07:37:59 <mroman> but it's on the todo list.
07:38:19 <mroman> b_jonas: also 1.7.4 has variables
07:38:21 <b_jonas> mroman: oh a rotator instruction. sounds nice. still, I'd like copy
07:38:34 <b_jonas> mroman: global variables are nice, but this would be for when you need local variables
07:38:40 <mroman> !blsq 9s010ro{g0?+}m[
07:38:41 <blsqbot> | {10 11 12 13 14 15 16 17 18 19}
07:38:49 <b_jonas> mroman: and those mutable dictionary instructions you've added certainly help
07:38:59 <mroman> ^- s0 set's the global variable "0" and g0 reads the global variable "0"
07:39:06 <b_jonas> because you can use them to have sorta-efficient arrays, and mutable state
07:39:24 <mroman> b_jonas: but you have to keep the dictionary around of course
07:39:32 -!- Patashu has quit (Remote host closed the connection).
07:39:36 <b_jonas> mroman: oh! I thought the variables had fancy punctuation names, something with a percent sign or something
07:39:44 <mroman> b_jonas: they do.
07:39:53 -!- Patashu has joined.
07:39:54 <mroman> !blsq 9s0 %0?
07:39:55 <blsqbot> | 9
07:40:05 <mroman> but g0 is shorter than %0?
07:40:34 <b_jonas> Anyway, I'm saying this pick instruction because it's already implementible (it's three blsq instructions), so it's easy to add.
07:40:35 <mroman> (but it's they same. g0 is just a shortcut for %0?)
07:40:45 <b_jonas> I see
07:40:45 <mroman> s/they/the
07:41:12 <mroman> !blsq {^^.*}s0 9%0!
07:41:12 <blsqbot> | 81
07:42:16 <mroman> hm. let me update blsqbot
07:42:41 <mroman> hm can't right now.
07:43:13 <mroman> b_jonas: other things I've added are builtins like
07:43:43 <mroman> IfMap, SelectIf
07:44:16 <mroman> {1 2 3 4 5}{0 1 1 0 1}<SelectIf> returns {2 3 5}
07:44:55 <mroman> {1 2 3 4 5}{2.%}{2.*}<MapIf> returns {1 4 3 8 5}
07:45:06 <mroman> (i.e. it only applies the function if a condition matches)
07:45:21 <mroman> (2dv actually instead of 2.%)
07:47:43 <mroman> b_jonas: also maps allow you for "easy" multi-dimensional array I hope
07:47:57 <mroman> I.e. you can use {0 1 2} as a key for 3d arrays
07:48:07 <mroman> and you can specify a default value for lookups
07:48:24 <mroman> (i.e. when no value is bound to a key the default value is returned)
07:49:37 <fizzie> mroman: Do you happen to have a stock way (less than 11B) of going from {{1 2} {3 4} {5 6} ...} to a prettified "1,2 3,4 5,6 ..."? I'm not terribly good at formatting things.
07:50:50 <fizzie> (Less than 10B, I mean. Can't ocunt, either.)
07:50:56 <fizzie> (Or apparently type.)
07:51:05 <oerjan> i tried using init(tail$show(x,y)) but it ends up longer than just writing it out :(
07:52:04 <oerjan> (wait did i just give fizzie a possibly translateable idea)
07:53:35 <vanila> why $
07:54:00 <fizzie> Actually, it's not quite as simple as all that. It has to go from {{a b} {c d} ...} to a prettified "i,j k,l ..." where there's a 8-character mapping from a -> i, b -> j etc.
07:54:00 <vanila> init(tail show(x,y)) same ength, more readable, less confusing operators
07:54:05 <oerjan> vanila: it's a haskell shortcut operator for avoiding parentheses
07:54:12 <vanila> oh imwrong
07:54:15 <oerjan> vanila: um that is not well typed
07:54:20 <vanila> yeah
07:54:40 <mroman> "1,2 3,4" or "1,2\n3,4"?
07:54:47 <oerjan> space
07:54:49 <fizzie> The first.
07:55:00 <fizzie> Currently I'm using {{...}]m',IC}m[wD where ... is the mapping I need for the numbers.
07:58:28 <mroman> {1SH~-}m[wd but that's 11B
08:00:27 <fizzie> Since I can get my numbers to strings for "free" (I need to do a m[ anyway, and that can be ]m when it helps), I guess ',IC is better than 1SH~-.
08:01:20 <Bicyclidine> I forget C wizardry. Is there some value I can set a jmp_buf to to mark it as invalid?
08:01:29 <Bicyclidine> It's like... an array type... I don't know if I can null that.
08:01:45 -!- dts|airhocky has changed nick to dts.
08:01:51 <Bicyclidine> oh, i suppose i can just set my own flag
08:02:21 <mroman> f~ is too long anyway
08:02:27 <mroman> !blsq "~,~"{1 2}f~
08:02:27 <blsqbot> | "1,2"
08:02:55 -!- Patashu_ has joined.
08:02:55 -!- Patashu has quit (Disconnected by services).
08:03:00 <mroman> !blsq "~,"{1 2}f~
08:03:00 <blsqbot> | "1,2"
08:03:15 <mroman> (you can always drop the last ~ btw ;) )
08:04:36 <mroman> fwiw MapUnlines and MapWords are on the todo list ;)
08:04:59 <mroman> and FilterWords
08:05:04 <mroman> (FilterUnlines already exists)
08:05:38 <oerjan> fiendish
08:05:50 <mroman> FilterWords exists but it's not just f[wd
08:06:15 <mroman> it would only save you one byte anyway
08:06:21 <mroman> since you need <MapWords>Q
08:06:28 <mroman> because m[wd doesn't pretty
08:06:57 <mroman> !blsq "abc dac efg feg"qsow[
08:06:57 <blsqbot> | "abc efg"
08:07:09 <mroman> ^- filter words
08:07:11 <Bicyclidine> can i use a function call as an lvalue? Something like "*foo() = ...", where foo returns a double indirect.
08:09:00 <elliott> you can use *p where p is a pointer (even an rvalue) as an lvalue, sure
08:09:13 <elliott> shouldn't need to be double indirect
08:09:39 <Bicyclidine> cool
08:09:42 <vanila> is this regular C or Double C?
08:09:51 <Bicyclidine> ok yeah it doesn't need to be double indirect, right
08:09:58 <Bicyclidine> vanila: i'm using setjmp so it's probably, like, triple c
08:10:02 <Bicyclidine> in that it requires triple sec
08:10:04 <mroman> fizzie: other than 1.7.4 saves you one byte since {}m[ can now be written as m{}
08:10:28 <elliott> do you really want to use setjmp :p
08:10:30 <b_jonas> mroman: do you have a built-in that returns a list (block) of the values of a dictionary sorted by its keys?
08:10:44 <fizzie> mroman: That's not yet on anagol, right?
08:10:47 <mroman> fizzie: nope
08:10:52 <Bicyclidine> elliott: does anyone ever really want to use setjmp?
08:11:03 <elliott> well...
08:11:09 <Bicyclidine> i'm using it for delimited continuations.
08:11:11 <mroman> anagol is 1.7.3
08:11:12 <Bicyclidine> imo excellent plan
08:11:14 <b_jonas> mroman: I mean, that's not really essential, but could be convenient
08:11:57 <mroman> I have keys, values, valuesSortedByKey and keysSortedByValue
08:12:17 <mroman> and swapKeysWithValues
08:12:19 <fizzie> mroman: Speaking of which, is there a shorter )><NB or do I remember right that there was no nub-sorted builtin?
08:12:41 <mroman> there's no nub-sorted
08:13:06 <mroman> and even if it had one it wouldn't do )<>
08:13:11 <mroman> but rather NB>< or NB<>
08:13:23 <mroman> (probably)
08:13:27 <mroman> but no, it doesn't have that
08:14:11 <fizzie> How about a variant of 2CB that returns all unordered pairs instead of ordered?
08:14:32 <mroman> !blsq {1 2 3 4 5}2CB
08:14:32 <blsqbot> | {{1 1} {1 2} {1 3} {1 4} {1 5} {2 1} {2 2} {2 3} {2 4} {2 5} {3 1} {3 2} {3 3} {3 4} {3 5} {4 1} {4 2} {4 3} {4 4} {4 5} {5 1} {5 2} {5 3} {5 4} {5 5}}
08:14:45 <fizzie> !blsq {1 2 3 4 5}2CB)><NB
08:14:46 <blsqbot> | {{1 1} {1 2} {1 3} {1 4} {1 5} {2 2} {2 3} {2 4} {2 5} {3 3} {3 4} {3 5} {4 4} {4 5} {5 5}}
08:15:11 <fizzie> It's not too long like that, I was just wondering.
08:15:37 <mroman> ah I see
08:15:40 <mroman> {2 1} == {1 2}?
08:16:02 <fizzie> In this case, yes.
08:16:07 <mroman> I guess that can go on the todo list, yes
08:16:50 <mroman> !blsq {1 5 0}<>
08:16:50 <blsqbot> | {5 1 0}
08:16:52 <mroman> !blsq {1 5 0}><
08:16:52 <blsqbot> | {0 1 5}
08:19:16 <mroman> I can easily define it as )><NB
08:20:03 <mroman> (I.e. add a builtin that does )><NB or )<>NB)
08:21:05 <mroman> also I think I'm starting to panic again
08:21:05 <fizzie> Found an unrelated 2B I can save, but it changes the search order so that examples 1 and 2 time out on anagol. :( (Not by much, but clearly enough; 1.5 seconds for both.)
08:21:39 <mroman> yeah
08:21:46 <mroman> shinh really oughta compile Burlesque with -O3 turned on
08:21:55 <mroman> It makes a huge difference
08:23:45 <fizzie> And if I do one other +- 0 change that affects the search order (but keep that -2 change), it passes examples 1 and 2 but times out on 3.
08:24:15 <mroman> hm
08:24:22 <mroman> How efficient is Data.Map actually?
08:24:29 <mroman> and how does it work?
08:25:06 <mroman> looking up a Builtin in Burlesque is O(n)
08:25:53 <Bicyclidine> just linear search?
08:25:59 <mroman> @type lookup
08:26:00 <lambdabot> Eq a => a -> [(a, b)] -> Maybe b
08:26:04 <mroman> whatever lookup does
08:26:15 <mroman> I assume it's probably O(n)
08:26:20 <mroman> @source lookup
08:26:20 <lambdabot> Unknown command, try @list
08:26:23 <mroman> @src lookup
08:26:23 <lambdabot> lookup _key [] = Nothing
08:26:23 <lambdabot> lookup key ((x,y):xys) | key == x = Just y
08:26:23 <lambdabot> | otherwise = lookup key xys
08:27:08 <fizzie> Oh, g_ does the analogous operation to blocks as l_. For some reason I thought it was only l_, even though that's just illogical.
08:27:35 <Bicyclidine> Data.Map.Lazy has lookup as O(log n).
08:27:42 <Bicyclidine> which makes sense since the key has to be Ord instead of just Eq
08:28:44 <elliott> you should use Data.Map.Strict
08:29:00 <elliott> (you should use Data.HashMap.Strict)
08:29:17 <Bicyclidine> Firefox can't find the server at data.hashmap.strict.
08:29:17 <mroman> fizzie: yep @g_ and l_
08:29:41 <Bicyclidine> WIll I still should use Data.HashMap.Strict in, like, a year say
08:30:14 <Bicyclidine> why is strctness even important actually i'm kind of genuinely curious instead of just a sarcastic dickhead like usual
08:30:38 <fizzie> (That saved me three bytes.)
08:31:26 <elliott> HashMap has been around for years
08:31:54 <elliott> actually maybe Data.Map.Lazy is okay
08:32:02 <elliott> some of the lazy structures are really ridiculous though, like State
08:32:08 <Bicyclidine> i feel lied to
08:36:08 <elliott> laziness is relative, most .Strict structures actually use plenty of laziness
08:36:38 <Bicyclidine> look i'm just curious why you'd want a .strict thing over a .lazy thing or whatever you said
08:39:20 <elliott> it's half past eight, I'm too tired to explain :(
08:39:23 <HackEgo> [wiki] [[Talk:TrivialBrainfuckSubstitution]] http://esolangs.org/w/index.php?diff=41132&oldid=41113 * Oerjan * (+172) Not quite
08:39:38 <Bicyclidine> that's cool i'm tired and loaded up on triple sec longjmp
08:39:43 <Bicyclidine> also i'll never use it anyway
08:39:51 <Bicyclidine> so explaining it to me would be a waste of your time
08:40:52 <mroman> I used setjmp once!
08:40:59 <mroman> to survive sigsegv
08:41:04 <sebbu> :D
08:41:15 <mroman> you can register the signal and jump out of the signal handler
08:41:26 <mroman> and do stuff
08:41:54 <mroman> the OS will kill the process hard though if another sigsegv occurs
08:43:36 -!- oerjan has quit (Quit: sigzzzzz).
08:45:37 <Bicyclidine> well now the stuff i'm doing seems completely reasonable. thank.s
08:45:39 <fizzie> Are you sure that's not just the signal handler resetting? There should be nothing illegal about recovering from sigsegv. (I did it in an early jitfunge version to make a hardware-assisted "pop 0 if empty" stack, though with setcontext to actually continue.
08:46:26 <mroman> I'm not sure if the OS signals SIGKILL
08:46:27 <fizzie> Was more trouble than it was worth, because the handler haf to inspect the failing opcode to see where the 0 was expected.)
08:46:53 <vanila> http://esolangs.org/wiki/Perl
08:47:43 <Bicyclidine> lol C has signals in it, huh, i thought it was just posix
08:47:53 <Bicyclidine> do not use this ever
08:48:10 <ais523> Bicyclidine: I have a raise(SIGSEGV) as a "this should never happen" in memory allocation code :-)
08:48:32 <ais523> admittedly, it's in a program that has a POSIX level of system specificity
08:48:39 <ais523> (i.e. it has POSIX and Windows codepaths)
08:49:05 <ais523> oh and SIGSEGV is standard C as of C11, it's implementation-defined whether it can ever happen except via raise() though
08:51:32 <vanila> Hahaha
08:51:39 <Bicyclidine> "System V also provides these semantics for signal(). This was bad because [bla bla bla] The [linux] kernel's signal() system call provides System V semantics." fucking incredible
08:51:42 <vanila> this perl page
08:52:44 <Bicyclidine> "By default, in glibc2 and later, the signal() wrapper function does not invoke the kernel system call [and uses BSD semantics instead]" seriously what the fuck, amazing
08:53:37 <vanila> \o/
08:57:53 <vanila> im laughing at the esolang wiki
08:57:57 <vanila> looking at random languages
08:57:58 <mroman> You bastard!
08:58:03 <vanila> X:D
08:58:09 <mroman> This ain't no stinking laughing matter.
08:59:07 -!- Patashu has joined.
09:00:12 -!- Patashu_ has quit (Ping timeout: 256 seconds).
09:01:25 -!- Patashu has quit (Client Quit).
09:03:46 -!- Patashu has joined.
09:05:44 <vanila> http://esolangs.org/wiki/Timeline_of_esoteric_programming_languages
09:10:33 -!- nooga has joined.
09:11:27 -!- drdanmaku has quit (Quit: Connection closed for inactivity).
09:19:06 -!- nooga has quit (Ping timeout: 255 seconds).
09:24:32 -!- Dulnes has quit (Quit: Connection closed for inactivity).
09:30:52 <b_jonas> Bicyclidine: that's because with glibc, depending on the feature set macros, you can compile programs to be more sysv-like or more bsd-like, and so signal uses the semantics more approperiate for it. glibc has lots of compatibility stuff like that.
09:31:51 <b_jonas> the signal stuff doesn't come up much in modern programs, these days we have the variant functions for 64 bit file offset and inode number instead from feature macros.
09:36:29 -!- scounder has quit (Write error: Connection reset by peer).
09:43:49 <FireFly> Bicyclidine: where is that 'do not use this ever' from? It reminded me of the gets(3) manpage, but that's 'never use this function' apparently
09:48:06 -!- nooga has joined.
09:51:37 -!- shikhin has joined.
10:03:19 -!- scounder has joined.
10:04:32 -!- tlewkow has joined.
10:08:49 -!- tlewkow has quit (Ping timeout: 240 seconds).
10:13:36 -!- Phantom_Hoover has joined.
10:28:57 -!- applybot has joined.
10:43:21 <HackEgo> [wiki] [[Special:Log/newusers]] create * Cluid Zhasulelm * New user account
10:48:37 -!- TodPunk has quit (Read error: Connection reset by peer).
10:49:15 -!- TodPunk has joined.
11:00:12 -!- dts has quit (Ping timeout: 244 seconds).
11:04:31 <HackEgo> [wiki] [[Pendulum Instruction Set Architecture]] N http://esolangs.org/w/index.php?oldid=41133 * Cluid Zhasulelm * (+347) Page creation
11:06:27 -!- AndoDaan has joined.
11:09:14 <J_Arcane> "In Qbasic you only need to define a function once. Why redefine it again? Just use a different Fn name for each definition." aaaaaaagh.
11:13:42 <HackEgo> [wiki] [[Pendulum Instruction Set Architecture]] M http://esolangs.org/w/index.php?diff=41134&oldid=41133 * Cluid Zhasulelm * (+417) Add instrution
11:16:08 <J_Arcane> (from a forum argument about implementing DEF FN in QB64)
11:16:32 <HackEgo> [wiki] [[Pendulum Instruction Set Architecture]] M http://esolangs.org/w/index.php?diff=41135&oldid=41134 * Cluid Zhasulelm * (+417) Add Immediate
11:20:18 <HackEgo> [wiki] [[Pendulum Instruction Set Architecture]] M http://esolangs.org/w/index.php?diff=41136&oldid=41135 * Cluid Zhasulelm * (+555) ANDIX
11:21:09 -!- boily has joined.
11:23:28 <HackEgo> [wiki] [[Pendulum Instruction Set Architecture]] http://esolangs.org/w/index.php?diff=41137&oldid=41136 * Cluid Zhasulelm * (+501) And-Xor
11:27:37 <HackEgo> [wiki] [[Pendulum Instruction Set Architecture]] M http://esolangs.org/w/index.php?diff=41138&oldid=41137 * Cluid Zhasulelm * (+554) Branch On Equal to Zero
11:29:44 <HackEgo> [wiki] [[Pendulum Instruction Set Architecture]] M http://esolangs.org/w/index.php?diff=41139&oldid=41138 * Cluid Zhasulelm * (+516) Branch On Less Than Zero
11:32:09 <HackEgo> [wiki] [[Pendulum Instruction Set Architecture]] M http://esolangs.org/w/index.php?diff=41140&oldid=41139 * Cluid Zhasulelm * (+532) Exchange
11:34:39 <fizzie> mroman: Burlesque documentation note: tw and dw for strings are documented to be defined as **tw\[ and **dw\[, respectively, but I think both are actually XXtw\[ and XXdw\[ instead.
11:35:15 <HackEgo> [wiki] [[Pendulum Instruction Set Architecture]] M http://esolangs.org/w/index.php?diff=41141&oldid=41140 * Cluid Zhasulelm * (+553) Or Immediate-Xor
11:37:40 <HackEgo> [wiki] [[Pendulum Instruction Set Architecture]] M http://esolangs.org/w/index.php?diff=41142&oldid=41141 * Cluid Zhasulelm * (+495) Or Xor
11:40:59 <HackEgo> [wiki] [[Pendulum Instruction Set Architecture]] M http://esolangs.org/w/index.php?diff=41143&oldid=41142 * Cluid Zhasulelm * (+681) Reverse Direction, Branch On Equal to Zero
11:42:55 <HackEgo> [wiki] [[Pendulum Instruction Set Architecture]] M http://esolangs.org/w/index.php?diff=41144&oldid=41143 * Cluid Zhasulelm * (+643) Reverse Direction, Branch On Less Than Zero
11:43:12 <mroman> fizzie: I'll look into that
11:43:44 <mroman> fizzie: yep, it's XX
11:44:36 <mroman> fixed. Thx.
11:45:48 <HackEgo> [wiki] [[Pendulum Instruction Set Architecture]] M http://esolangs.org/w/index.php?diff=41145&oldid=41144 * Cluid Zhasulelm * (+385) Rotate Left
11:47:09 <HackEgo> [wiki] [[Pendulum Instruction Set Architecture]] M http://esolangs.org/w/index.php?diff=41146&oldid=41145 * Cluid Zhasulelm * (+385) Rotate Right
11:50:05 <HackEgo> [wiki] [[Pendulum Instruction Set Architecture]] M http://esolangs.org/w/index.php?diff=41147&oldid=41146 * Cluid Zhasulelm * (+511) Shift Left Logical-Xor
11:51:50 <HackEgo> [wiki] [[Pendulum Instruction Set Architecture]] M http://esolangs.org/w/index.php?diff=41148&oldid=41147 * Cluid Zhasulelm * (+519) Shift Right Arithmetic-Xor
11:54:25 <HackEgo> [wiki] [[Pendulum Instruction Set Architecture]] M http://esolangs.org/w/index.php?diff=41149&oldid=41148 * Cluid Zhasulelm * (+430) Exclusive Or
11:56:45 <HackEgo> [wiki] [[Pendulum Instruction Set Architecture]] M http://esolangs.org/w/index.php?diff=41150&oldid=41149 * Cluid Zhasulelm * (+469) Xor Immediate
12:02:43 -!- Patashu has quit (Ping timeout: 244 seconds).
12:03:45 -!- Phantom_Hoover has quit (Ping timeout: 244 seconds).
12:11:06 <int-e> > map length ["last(f:[t|p])", "if p then t else f"]
12:11:07 <lambdabot> [13,18]
12:15:44 <boily> :t (|)
12:15:45 <lambdabot> parse error on input ‘|’
12:15:48 <boily> ...
12:16:12 <boily> “|” is not an operator?
12:16:38 * boily facepalms.
12:16:47 <boily> /clear
12:16:50 <boily> /flush
12:16:52 <boily> /abort!
12:21:57 <int-e> ah...
12:23:22 <int-e> I should take some inspiration leapfrogging.
12:24:23 <HackEgo> [wiki] [[Pendulum Instruction Set Architecture]] http://esolangs.org/w/index.php?diff=41151&oldid=41150 * Cluid Zhasulelm * (+2229) Added Notes and Example Code
12:27:24 -!- boily has quit (Quit: CERULEAN CHICKEN).
12:28:31 <int-e> bingo.
12:31:18 <mroman> what's jq?
12:32:49 <FireFly> a command-line tool for "JSON selectors"
12:33:07 <FireFly> among other things, possibly? I dunno, it's the jq I know about at least
12:33:13 <int-e> mroman: there's a "version info" page linked from the anagol frontpage, which generally answers these questions
12:33:23 <int-e> this time it links to https://github.com/stedolan/jq
12:34:06 <FireFly> Wait, uh
12:34:11 <FireFly> Are people golfing in jq?
12:34:14 <int-e> @tell oerjan today I learned that runhaskell is not good for testing haskell programs, because its buffering of stdout is wrong.
12:34:14 <lambdabot> Consider it noted.
12:34:36 <int-e> FireFly: it was just added to anagol a couple of days ago.
12:34:43 <FireFly> Aha
12:44:20 <mroman> Does Burlesque support JSON?
12:44:34 <blsqbot> | yes, 1.7.4
12:45:48 <HackEgo> [wiki] [[Janus]] N http://esolangs.org/w/index.php?oldid=41152 * Cluid Zhasulelm * (+826) page creation
12:59:54 <HackEgo> [wiki] [[Janus]] http://esolangs.org/w/index.php?diff=41153&oldid=41152 * Cluid Zhasulelm * (+1083) Added example code
13:14:06 <HackEgo> [wiki] [[User:Cluid Zhasulelm]] N http://esolangs.org/w/index.php?oldid=41154 * Cluid Zhasulelm * (+192) page creation
13:14:58 -!- TodPunk has quit (Read error: Connection reset by peer).
13:15:06 -!- Tod-Autojoined has joined.
13:27:52 <ais523> o
13:30:28 <fizzie> Great. A PDF file that shows up (in Chrome's native PDF viewer) only as "Please wait... If this message is not eventually replaced by the proper contents of the document, your PDF viewer may not be able to display this type of document."
13:30:48 <fizzie> I know people make websites with no static content, and everything loaded dynamically over AJAX, but I didn't know this had spread to PDF files too.
13:36:59 <mroman> hey
13:37:06 <mroman> PDF is the best game container file format!
13:41:00 <HackEgo> [wiki] [[User:Cluid Zhasulelm]] http://esolangs.org/w/index.php?diff=41155&oldid=41154 * Cluid Zhasulelm * (+90) added more here
13:43:38 -!- GeekDude has joined.
13:43:53 <b_jonas> what do you mean by "game container"
13:43:54 <b_jonas> ?
13:44:37 <ais523> b_jonas: game ((container file) format)
13:45:00 <ais523> or perhaps game (container (file format))
13:45:57 <FireFly> Are there any decent non-Turing-complete document formats?
13:46:10 <ais523> is odf turing-complete?
13:46:14 <ais523> without macros?
13:46:17 <vanila> plaintext
13:46:21 <ais523> (which are a nonstandard extension)
13:46:22 <vanila> markdown
13:46:27 <ais523> markdown isn't decent
13:46:28 <vanila> troff
13:46:36 <ais523> and as #irp shows, plaintext may be turing-complete
13:46:50 <b_jonas> ais523: yes, but what kind of game and contained how? you don't just print the pdf and wrap deer in it before freezing?
13:47:32 <ais523> b_jonas: I assume "game" as in videogame, not as in game animal
13:47:33 <FireFly> If I were to print out a document, I'd rather not print it as plain monospaced markdown
13:47:52 <FireFly> I read "game" as synonymous to "toy"
13:48:04 <FireFly> That would make sense at least
13:50:57 -!- MDream has changed nick to MDude.
13:53:09 -!- hjulle has joined.
13:57:14 -!- vanila has quit (Quit: Leaving).
14:04:21 <GeekDude> ais523: RTF, but it's kind of annoying
14:07:14 -!- ais523 has quit (Read error: Connection reset by peer).
14:07:21 -!- callforjudgement has joined.
14:07:31 -!- callforjudgement has changed nick to ais523.
14:14:49 * int-e wonders whether oerjan is cheating on dominosa by allowing dominos to wrap around
14:15:21 <int-e> because ... it works for the examples, so it's quite tempting
14:46:11 -!- ZombieAlive has quit (Remote host closed the connection).
14:46:53 -!- tlewkow has joined.
14:50:51 -!- AndoDaan has quit (Quit: Quit).
14:58:39 -!- tlewkow has quit (Remote host closed the connection).
15:02:38 -!- ais523 has quit.
15:29:00 <int-e> @tell oerjan PS: by "today I learned" I meant that today was the first time that I profited from that fact rather than finding out that my oh-so-cleverly-optimized program didn't work on anagol.
15:29:00 <lambdabot> Consider it noted.
15:31:15 -!- Sprocklem has joined.
15:41:13 -!- `^_^v has joined.
15:44:07 -!- tlewkow has joined.
15:45:03 -!- tlewkow has quit (Remote host closed the connection).
15:48:04 -!- S1 has joined.
15:51:25 -!- shikhout has joined.
15:54:42 -!- tlewkow has joined.
15:54:44 -!- shikhin has quit (Ping timeout: 255 seconds).
15:55:14 -!- tlewkow has quit (Remote host closed the connection).
15:55:24 <mroman> b_jonas: you can embed stuff into PDFs
15:55:26 -!- tlewkow has joined.
15:56:19 <mroman> b_jonas: you can embed multimedia shit into PDFs
15:56:21 <mroman> like Flash
15:59:33 <b_jonas> mroman: yeah, and javascript too
16:04:08 <mroman> that's when PDF went downhill
16:04:19 <mroman> for sure.
16:04:49 -!- `^_^v has quit (Ping timeout: 264 seconds).
16:20:33 -!- hjulle has quit (Remote host closed the connection).
16:24:18 <Bicyclidine> FireFly: man 2 signal. what it actually says is "avoid its use" and "do not use it for this purpose".
16:24:40 <FireFly> Ah
16:29:46 -!- tlewkow has quit (Remote host closed the connection).
16:30:02 -!- tlewkow has joined.
16:31:31 <J_Arcane> I spent all day learning the Y-combinator.
16:31:44 <J_Arcane> I suspect it is of limited utility, but it was fun.
16:37:55 <elliott> fixed point combinators are useful; Y itself, not so much
16:38:19 -!- GeekDude has quit (Ping timeout: 245 seconds).
16:50:59 <J_Arcane> elliott: It's a neat little thing, but doesn't seem very efficient performance wise.
16:51:12 <elliott> hmm, what do you mean?
16:51:26 <Bicyclidine> i've seen a paper on using y in efficient compiles
16:51:51 <J_Arcane> Well, at least on Racket it isn't any better than simple recursion for the stuff I tried.
16:52:35 <J_Arcane> But that could be an optimization thing with how it handles recursions vs. how it does Y.
16:52:44 -!- spiette has joined.
16:53:00 <J_Arcane> (admittedly this is a point where I'm a bit out of my depth)
16:53:14 <Bicyclidine> it's not really a high priority to optimize i don't think
16:53:20 <Bicyclidine> because i mean why would it be, only nerds use it
16:53:57 <J_Arcane> :D Yeah. Other than the very rare case you want to recur inside a lambda I don't see myself using it ever again in all likelihood. XD
17:01:04 <elliott> J_Arcane: well, I mean, you use Y in languages without explicit recursion
17:01:38 -!- Sprocklem has quit (Ping timeout: 264 seconds).
17:01:38 <elliott> if you want a fixed-point combinator in a language with recursion just do (define (fix f) (letrec ((g (f (lambda (x) (g x))))) g))
17:02:11 <J_Arcane> elliott: Ahh, yeah. Makes sense.
17:03:59 <J_Arcane> In Scheme it's mostly novelty because tail-call optimizations are a part of the standard, but I can see where it could be useful elsewhere.
17:05:38 <elliott> it doesn't have much to do with tail calls, though :)
17:05:51 <elliott> Y does general recursion, not just tail calls, and will use just as much stack
17:05:55 <elliott> *just as much stack to do it
17:05:58 -!- drdanmaku has joined.
17:06:20 <J_Arcane> Ahh. I suppose that makes sense too.
17:06:55 -!- GeekDude has joined.
17:06:56 <J_Arcane> That was something I noticed watching it expand in DrRacket: "holy hell, this generates an awful lot of code ..."
17:07:08 -!- spiette has quit (Ping timeout: 258 seconds).
17:07:40 <J_Arcane> factorial 2, done with Y, took 25 steps to finish expanding, and it practically doubled each time from there ...
17:09:49 <elliott> really you should look at Y in a lazy language
17:09:55 <elliott> you cannot write the real Y in scheme
17:09:56 <elliott> it diverges
17:10:14 <elliott> (you can write a similar but not identical fixed-point combinator though, which is probably what you did)
17:10:28 <Bicyclidine> permit not the false y to live
17:11:09 <J_Arcane> elliott: Yeah. That's true. I should try it in Lazy Racket.
17:11:38 <elliott> I'd recommend a toy symbolic lambda calculus reducer if you have one lying around
17:11:38 -!- GeekDude has quit (Client Quit).
17:11:43 <elliott> that way you get to implement arithmetic too :)
17:14:08 <Bicyclidine> is arithmetic even real? think about it
17:15:15 -!- S1 has quit (Quit: S1).
17:15:20 <J_Arcane> elliott: Church numerals broke my brain.
17:15:50 <elliott> it's representing n as \f x. f^n(x), if that helps any
17:16:44 <J_Arcane> Well, part is also that I wasn't really clear on what the . means in that notation.
17:16:56 <Bicyclidine> it means the parameter list is over and you're onto the body.
17:17:00 <J_Arcane> But the idea of representing numerals even as functions.
17:17:11 <Bicyclidine> \f x . f^n(x) = (lambda (f x) ((power f n) x))
17:17:24 <J_Arcane> (bear in mind I washed out of the math track at trig proofs in pre-calculus)
17:17:35 <Bicyclidine> well, except you have the implicit whatever, so it's (lambda (f) (lambda (x) ((power f n) x)))
17:17:55 <Taneb> Lambda Calculus is not very similar to trig
17:18:10 <elliott> thankfully, lambda calculus is programming, not calculus
17:18:11 <Bicyclidine> http://dkeenan.com/Lambda/ you might be interested in
17:18:24 <Bicyclidine> Taneb: in american schools, at least, trig is when they introduce proofs.
17:18:29 <J_Arcane> Hmm. Racket's timing function doesn't really seem to behave with #lang lazy, but it does appear more efficient there.
17:18:41 <elliott> J_Arcane: you'll want to change the combinator
17:18:53 <elliott> since what you have does not diverge in call-by-value Racket, it cannot be Y
17:18:56 <J_Arcane> elliott: Yup. Back to the one-true form. :)
17:19:05 -!- spiette has joined.
17:19:21 <Taneb> I'm doing a half-hour talk on lambda calculus next week
17:19:46 <J_Arcane> (define Y (λ(f)((λ(x)(f (x x)))(λ(x)(f (x x)))))), instead of having to wrap it in an extra lambda.
17:20:45 <elliott> you can read that mess but not (\f.(\x.f (x x))(\x. f (x x)))? :)
17:20:50 -!- `^_^v has joined.
17:21:21 <elliott> *\x.f
17:21:26 <Bicyclidine> does (define (fix f) (letrec ((g (f g))) g)) work
17:21:33 <J_Arcane> :D Well, Lisp is kinda my thing.
17:21:38 <elliott> Bicyclidine: maybe in a lazy language
17:21:45 <elliott> it does in Haskell
17:21:50 <elliott> fix f = g where g = f g
17:21:55 <J_Arcane> Bicyclidine: Dunno, let's find out. :D
17:21:56 <elliott> it's not Y though of course
17:21:58 <Bicyclidine> well, yes, i thought arcane was using lazy racket now.
17:22:22 <Bicyclidine> you have letrec. shouldn't bother with that nested lambda garbage if you don't have to, mon.
17:22:42 <elliott> j'arcane
17:22:57 <elliott> Bicyclidine: well, yeah, you should, if your interest is Y (and not fixed-point combinators)
17:23:09 <elliott> all that fix tells you is how to piggyback on the implementation's value recursion
17:23:30 <Bicyclidine> but y is so uuuuugly
17:23:32 <elliott> Y is the real magic, since it is a non-recursive definition of recursion
17:23:38 <elliott> maybe in lisp :p
17:23:52 <Bicyclidine> it's pretty gross in lambda calculus too. BLA
17:23:57 <elliott> Y = \f. F F where F = \x. f (x x) is pretty nice!
17:24:08 <elliott> use M for Y = \f. M (\x. f (x x)), clearly
17:25:06 <Bicyclidine> (let ((f (lambda (x) (f (x x))))) (f f)) i guessk
17:25:21 <Bicyclidine> no, that's wrong. in my defense i just woke up
17:25:38 <J_Arcane> Bicyclidine: Yes, (define (fix f) (letrec ((g (f g))) g)) works in Lazy, as does the purely anonymous Y.
17:26:40 <Bicyclidine> "The Imitation Game is at its best when it focuses on the collision between cryptography and proto-programming. The film’s efforts to function as a character study, on the other hand, are decidedly clumsy, with Cumberbatch working a little too hard at making Turing a socially inept robot who learns how to pass as human."
17:27:06 <Bicyclidine> lol they gave it a worse review than the penguin movie
17:27:39 -!- bb010g has quit (Quit: Connection closed for inactivity).
17:28:30 <J_Arcane> elliott: It's the "non-recursive definition of recursion" part oddly, and seeing how it expanded, that sort of made sense of it for me. I've read several tutorials now, and they all tend to walk through the proof with intermediate incomplete definitions, which my brain somehow didn't follow so well until I saw it in action.
17:29:13 <elliott> I think the best way to see it is to prove that the (x x) is = Y f
17:29:18 <elliott> and then the whole definition is clear
17:29:32 <elliott> easier said than done, though
17:31:01 <J_Arcane> Ahahaha: http://rosettacode.org/wiki/Y_combinator#BlitzMax
17:31:33 <Bicyclidine> uh, wow.
17:31:53 <elliott> Bicyclidine: penguin movie?
17:32:03 <Bicyclidine> is this based on blitz basic
17:32:22 <J_Arcane> Bicyclidine: Yes.
17:32:31 <Bicyclidine> elliott: Penguins of Madagascar, it's an animated kids movie
17:32:40 <Bicyclidine> they gave it a B, and cumberbund got a B-
17:32:42 <J_Arcane> BlitzMax is the 'game programming' version.
17:33:03 <Bicyclidine> i thought that was blitzbasic.
17:33:09 <elliott> sounds better than "cumberbatch as gay autistic: the inevitable trainwreck"
17:33:17 <Bicyclidine> well, pretty much yeah.
17:33:23 <Bicyclidine> i donated a book on game programming in blitz basic to my middle school!!
17:33:29 <J_Arcane> Bicyclidine: I did a monologue from Breaking the Code in college acting.
17:34:39 <J_Arcane> A combinator engine in TCL: http://wiki.tcl.tk/4833
17:38:59 <Bicyclidine> "It’s a very trendy take on a legendary figure, likely to look far more dated in decades hence than Breaking The Code does now."
17:39:06 -!- nycs has joined.
17:41:34 <J_Arcane> Derek Jacobi *is* amazing.
17:41:52 -!- `^_^v has quit (Ping timeout: 250 seconds).
17:51:52 -!- shikhout has changed nick to shikhin.
17:57:47 -!- tlewkow has quit.
18:02:47 -!- tlewkow has joined.
18:04:51 -!- tlewkow_ has joined.
18:04:53 -!- ZombieAlive has joined.
18:07:37 -!- tlewkow has quit (Ping timeout: 256 seconds).
18:20:38 -!- dts has joined.
18:21:34 -!- mihow has joined.
18:40:30 -!- GeekDude has joined.
18:40:31 -!- GeekDude has quit (Changing host).
18:40:31 -!- GeekDude has joined.
18:44:21 -!- tlewkow_ has quit (Remote host closed the connection).
18:44:56 -!- tlewkow has joined.
18:45:01 -!- tlewkow has quit (Remote host closed the connection).
18:45:07 -!- tlewkow has joined.
18:47:00 -!- Sprocklem has joined.
18:48:53 -!- dts has changed nick to dTS.
19:20:55 -!- Sprocklem has quit (Ping timeout: 240 seconds).
19:22:36 -!- Sprocklem has joined.
19:25:52 -!- HackEgo has quit (Ping timeout: 250 seconds).
19:28:42 -!- tlewkow_ has joined.
19:29:00 -!- Sprocklem has quit (Ping timeout: 265 seconds).
19:29:37 -!- tlewkow has quit (Read error: Connection reset by peer).
19:38:47 -!- Dulnes has joined.
19:38:52 -!- tlewkow_ has quit (Remote host closed the connection).
19:39:10 -!- tlewkow has joined.
19:39:12 -!- MoALTz_ has quit (Quit: Leaving).
19:39:21 -!- tlewkow has quit (Remote host closed the connection).
19:41:34 <Dulnes> Wtf is this prediction of 2023
19:44:19 <Bicyclidine> castrating squirrels will finally be recognized as the united states's national sport.
19:50:13 -!- Sprocklem has joined.
20:02:16 -!- Sprocklem has quit (Ping timeout: 250 seconds).
20:03:28 -!- Patashu has joined.
20:26:06 -!- Patashu has quit (Ping timeout: 250 seconds).
20:26:26 -!- tlewkow has joined.
20:28:37 -!- nanyyyyy has joined.
20:32:30 -!- nanyyyyy has left.
20:36:09 -!- AnotherTest has joined.
21:02:01 -!- GeekDude has quit (Quit: {{{}}{{{}}{{}}}{{}}} (www.adiirc.com)).
21:24:45 -!- GeekDude has joined.
21:45:39 <HackEgo> [wiki] [[MNNBFSL]] http://esolangs.org/w/index.php?diff=41156&oldid=40931 * AndoDaan * (+3802) Added BLSQ implementation for MNNBFSL
21:48:13 -!- AndoDaan has joined.
21:51:36 -!- shikhout has joined.
21:55:23 -!- shikhin has quit (Ping timeout: 250 seconds).
22:04:33 -!- Dulnes has quit (Quit: Connection closed for inactivity).
22:04:37 -!- AnotherTest has quit (Remote host closed the connection).
22:08:25 -!- dTS has changed nick to dts.
22:12:57 -!- tlewkow has quit (Remote host closed the connection).
22:14:01 -!- ^v has joined.
22:25:35 -!- tlewkow has joined.
22:28:46 -!- Dulnes has joined.
22:28:51 <HackEgo> [wiki] [[Special:Log/newusers]] create * Keerthanakumar * New user account
22:29:13 <Dulnes> Bicyclidine: ...
22:30:05 <HackEgo> [wiki] [[DNA-Sharp]] http://esolangs.org/w/index.php?diff=41157&oldid=41131 * Keerthanakumar * (+10) /* Hello World Program */
22:32:32 <Bicyclidine> who
22:34:02 <HackEgo> [wiki] [[Special:Log/newusers]] create * Blight * New user account
22:34:42 <Dulnes> Also what? Squirrels
22:36:36 -!- tlewkow has quit (Remote host closed the connection).
22:36:58 -!- nycs has quit (Ping timeout: 255 seconds).
22:51:12 -!- bb010g has joined.
23:01:33 -!- oerjan has joined.
23:02:36 <oerjan> @messages-
23:02:36 <lambdabot> int-e said 10h 28m 21s ago: today I learned that runhaskell is not good for testing haskell programs, because its buffering of stdout is wrong.
23:02:36 <lambdabot> int-e said 7h 33m 35s ago: PS: by "today I learned" I meant that today was the first time that I profited from that fact rather than finding out that my oh-so-cleverly-optimized program didn't work on anagol.
23:04:00 <oerjan> @tell int-e i've also found that buffering can be difficult; in particular erroring out at the end doesn't work well with interact.
23:04:01 <lambdabot> Consider it noted.
23:04:07 -!- HackEgo has joined.
23:05:13 <oerjan> @tell int-e <int-e> because ... it works for the examples, so it's quite tempting <-- um no it doesn't? not with the wrapping that's easy for me at least, see the logs where i discussed how removing that check made test cases fail.
23:05:13 <lambdabot> Consider it noted.
23:06:19 <oerjan> @tell int-e i don't think i'm presently cheating at all.
23:06:20 <lambdabot> Consider it noted.
23:06:45 <oerjan> @tell int-e oh wait, except for added final space.
23:06:46 <lambdabot> Consider it noted.
23:06:55 <AndoDaan> just in case: http://golf.shinh.org/checker.html can run any anagol language, and you can give your own input.
23:06:59 -!- S1 has joined.
23:07:31 <oerjan> AndoDaan: i know. i find it awkward that it doesn't accept the program as a form, though.
23:08:18 <AndoDaan> form?
23:08:20 <oerjan> also, when i _do_ try to submit a file that way, i find that the file is locked until i leave the result page...
23:08:45 <oerjan> AndoDaan: the usual submission form on problems allows you to paste code directly.
23:09:05 <AndoDaan> Ah, right.
23:09:39 <fizzie> I was annoyed by that today. Or yesterday.
23:10:08 <oerjan> since i keep all my golfing in one file it's rather awkward to submit as a file, although i suppose it's still useable for speed testing.
23:10:11 <AndoDaan> write a program that takes the input and saves it to a temp file. Since exec isn't denied you can then have your program run that temp cod.
23:10:13 <AndoDaan> write a program that takes the input and saves it to a temp file. Since exec isn't denied you can then have your program run that temp code.
23:10:27 <AndoDaan> I'm guessing.
23:11:00 <oerjan> AndoDaan: but that would ruin it for speed testing _too_
23:11:12 <AndoDaan> bah.
23:11:17 <oerjan> since you then get additional compilation.
23:11:41 <AndoDaan> 10sec run time instead of 3.
23:12:15 <AndoDaan> but idk, i never really consider how fast my code runs.
23:12:33 <AndoDaan> I vague remember it being a problem once.
23:12:56 <fizzie> I find it annoying when all the "clever" bits get obsoleted due to something that's both simpler and shorter.
23:13:18 -!- nooga has quit (Ping timeout: 272 seconds).
23:13:20 <oerjan> AndoDaan: my main reason for doing it would be if i am _constructing_ a golf problem, in which case it would be rather important to check that it's actually possible to solve in the allotted time (my half-designed idea has trouble with this...)
23:14:08 <AndoDaan> ah, the power of a little randomness.
23:14:53 <AndoDaan> or bruteforce. I'm trying that with bitwise counting.
23:14:54 -!- vanila has joined.
23:15:07 <fizzie> (Also I seem to have gotten slightly stuck at the current length of this thing. I've got some minor variations, but they're all of identical length.)
23:16:44 <AndoDaan> the dominosa problem, fizzie?
23:16:49 <fizzie> Right.
23:16:57 <oerjan> fizzie: annoyed by which of those things?
23:17:06 <vanila> How about deleting all brainfuck derivatives from the wiki
23:17:22 <fizzie> oerjan: The fact that the performance checker page lacks the form submission option.
23:17:38 <oerjan> mhm
23:17:55 <AndoDaan> bbiab.
23:18:15 <fizzie> I generally keep problems in separate files, but also tend to have lots of miscellaneous cruft and notes in the files.
23:18:21 <oerjan> vanila: i have vaguely had popped up in my mind an idea to move them into their own namespace >:)
23:18:25 <vanila> Could there be a preference that hides them all
23:18:32 <vanila> namespace would be good
23:18:46 -!- tlewkow has joined.
23:18:52 <fizzie> And Burlesque (as far as I know) doesn't even have comments. I've used "this is a comment"vv but it's visually slightly distracting.
23:18:58 <oerjan> however this would ruin our traditional wikigame
23:18:58 <vanila> http://esolangs.org/wiki/MNNBFSL
23:19:02 <vanila> http://esolangs.org/wiki/DNA-Sharp
23:19:15 <vanila> i just swa recetn adds to the wiki
23:19:18 <vanila> very lame
23:19:23 <vanila> no ffense
23:20:44 <vanila> MNNBFSL less so
23:21:24 <vanila> http://esolangs.org/wiki/Talk:TrivialBrainfuckSubstitution
23:21:29 <vanila> http://esolangs.org/wiki/Category:Brainfuck_equivalents
23:21:40 <vanila> there are very few "braifuck equivalent"
23:22:05 -!- AndoDaan has quit (Ping timeout: 245 seconds).
23:22:56 <vanila> Random page => probably a BF derivative
23:23:02 <vanila> language list => hard to see past BF derivatives
23:23:25 -!- tlewkow has quit (Ping timeout: 265 seconds).
23:24:29 <vanila> there's probably not a good solution
23:24:53 <oerjan> vanila: but that random page is what our wiki game depends on :P
23:25:24 <oerjan> hm what was the scoring mechanism again
23:25:37 <oerjan> i'm pretty sure it was -1 point per bf derivative
23:25:56 <elliott> it was +1 point for non-BF derivative
23:26:00 <oerjan> ah.
23:26:00 <elliott> you lose when you hit one
23:26:06 <oerjan> oh.
23:26:25 <elliott> drinking game variant: drink as much as your points when you hit one
23:26:58 <oerjan> "join esolang, the wiki with the most lethal drinking game!"
23:27:11 -!- tlewkow has joined.
23:27:50 <vanila> hi :)
23:27:55 <elliott> well, we already have TURKEY BOMB
23:28:13 <elliott> we need to play that at an #esoteric meetup
23:28:18 <Taneb> How do you count, eg, MIBBLLII?
23:28:30 <vanila> we should make a monthly esoteric magazine
23:28:47 <vanila> just collect up some unusal stuff from the wiki or something
23:28:56 <vanila> which would not easily be found by random
23:29:19 <vanila> http://esolangs.org/wiki/Category:Brainfuck_derivatives
23:29:30 <vanila> http://esolangs.org/wiki//%CB%88%C3%A6mbi%CB%90%C9%9Bf/ i like this one
23:29:37 -!- spiette has quit (Ping timeout: 255 seconds).
23:29:50 <vanila> also that brainfuck restricted to bits is equivalent to normal bf
23:30:32 <oerjan> vanila: um we are too lazy to make a monthly magazine. we cannot even manage a monthly featured article...
23:31:24 <vanila> Featured language
23:31:24 <vanila> One of the best-known esoteric programming languages, brainfuck
23:31:33 <vanila> lol
23:31:55 <oerjan> hm maybe it's bad to have that as featured article too long.
23:32:10 <oerjan> it would seem likely to _encourage_ derivatives.
23:32:19 <vanila> I changed my mind and now like BF derivatives
23:32:34 <oerjan> (derivatives were a problem long before the feature, though.)
23:32:39 <elliott> vanila: do you like my BF derivative
23:32:44 <vanila> yes, what is it?
23:32:48 <elliott> wait I have two arguably, fuck
23:32:56 <FireFly> and brain?
23:33:19 <elliott> fizzie did you break https or is my connection broken
23:33:31 <vanila> suddenly esolang wiki is stopped working
23:33:39 -!- Phantom_Hoover has joined.
23:33:46 <oerjan> i was going to ask the same, i was trying to check that i hadn't remembered wrong which language is featured
23:33:59 <vanila> I guess too many connnections at once (3)
23:34:09 <oerjan> heh
23:34:11 -!- AndoDaan has joined.
23:34:28 <elliott> vanila: considering it's on a "free" VPS... yeah.
23:34:37 <FireFly> oerjan: just automate the monthly magazine
23:34:57 -!- HackEgo has quit (Remote host closed the connection).
23:35:04 <FireFly> Special:Random and some stitching-together
23:35:08 -!- HackEgo has joined.
23:35:25 <oerjan> the previous featured language was Deadfish, which was the april fools issue. except i think it was _last_ year's april.
23:35:35 <FireFly> Oh, I guess the point was precisely to not Special:Random.. oh well
23:35:36 -!- bronson has joined.
23:35:44 <elliott> vanila: https://esolangs.org/wiki/Brainfuck/w/index.php%3Ftitle%3DTalk:Brainfuck/index.php https://esolangs.org/wiki/Not_a_brainfuck_derivative
23:35:49 <oerjan> FireFly: well i guess we can automatically exclude bf derivatives, at least
23:36:09 <FireFly> Or at least delegate them to an appendix
23:36:10 <vanila> Is there any more information about Not a brainfuck derivative??
23:36:32 <elliott> do you need any more
23:40:52 -!- bronson has left ("Leaving").
23:44:57 <HackEgo> [wiki] [[Janus]] M http://esolangs.org/w/index.php?diff=41158&oldid=41153 * Cluid Zhasulelm * (+478) more information
23:47:10 -!- tlewkow has quit (Remote host closed the connection).
23:48:53 <oerjan> soon the mccarthy function problem will expire, i have no clue how the others got it so short :(
23:49:22 <vanila> whydon't you put that ^ as the featured langauge?
23:49:28 <vanila> if you want to get branfuck off the frontpage
23:50:08 <oerjan> there is a candidate list
23:50:22 <vanila> where?
23:50:38 <elliott> we should get rid of the process and go back to my original idea
23:50:43 <elliott> which was that sysops would just put whatever they like there
23:51:00 <oerjan> http://esolangs.org/wiki/Esolang:Featured_languages/Candidates
23:51:02 <elliott> that wasn't ~~democratic~~ enough for some people who afaik never participated in the process though
23:51:07 <vanila> lol
23:51:10 -!- tlewkow_ has joined.
23:51:44 <vanila> yes sysops should do it imo
23:51:45 <oerjan> elliott: i'm pretty sure brainfuck was selected completely outside the "democratic" process
23:52:04 <elliott> oerjan: no, it was on the list
23:52:09 <oerjan> ok
23:52:22 <oerjan> well some languages were, anyway
23:52:31 <elliott> the age of those candidates should show how useful community input is on a wiki as tiny as this one
23:53:23 <oerjan> elliott: what is needed is for the proposers to do more of the actual work too >:)
23:53:41 <elliott> oerjan: then we will have even fewer featured languages
23:53:48 <oerjan> OKAY
23:54:42 <vanila> so we're all agreed
23:55:21 <oerjan> what do you say we do funciton next, it's pretty and pretty much the opposite of brainfuck in every way
23:55:59 <Phantom_Hoover> imho eodermdrome
23:56:14 <oerjan> it's new rather than old, visual rather than textual, functional rather than imperative
23:56:41 <HackEgo> [wiki] [[Esolang:Featured languages/Candidates]] http://esolangs.org/w/index.php?diff=41159&oldid=37409 * AndoDaan * (+100) /* List of candidates */
23:57:01 <oerjan> vanila: i didn't agree.
23:57:03 <elliott> funciton is new?
23:57:08 <vanila> so we're all agreed, hth
23:57:12 <elliott> @google funciton esolang
23:57:13 <lambdabot> http://esolangs.org/wiki/Funciton
23:57:13 <lambdabot> Title: Funciton - Esolang
23:57:15 <FireFly> elliott: er, not terribly new
23:57:25 <FireFly> At least a couple of years old
23:57:29 <oerjan> elliott: relatively new, compared to brainfuck.
23:57:30 <elliott> yes I was just wondering about oerjan's definition
23:57:32 -!- tlewkow_ has quit (Remote host closed the connection).
23:57:43 <oerjan> i'm thinking before/after i joined here split, sort of :P
23:59:11 <elliott> % grep '<oerjan>' ????-??-??.txt | head -n 1
23:59:11 <elliott> 2006-06-13.txt:00:38:54: <oerjan> hi gregorR
23:59:19 <elliott> ah yes, recent
←2014-11-24 2014-11-25 2014-11-26→ ↑2014 ↑all