00:01:17 Yup! Dunno if this channel HAS a QDB, but still... 00:02:05 it does, but the rules for using it are quite intricate 00:02:15 `? rules 00:02:24 rules? ¯\(°_o)/¯ 00:02:33 not even HackEgo itself knows the rules 00:02:39 `? qdbformat 00:02:42 qdbformat is: message; * nick action; two spaces between messages; all elisions marked with [...] other than irrelevant intervening messages; for messages separated by elision, one space on each side, not two 00:02:45 i still have no idea why it's necessary 00:03:00 sorry let's make that "necessary" 00:05:40 `? hi 00:05:43 hi? ¯\(°_o)/¯ 00:05:59 hi nooodl_ 00:06:06 hi 00:06:14 -!- Taneb has quit (Quit: Leaving). 00:07:12 @hoogle lookup 00:07:12 echo 127.0.0.1 reddit.com | sudo tee -a /etc/hosts 00:07:13 Prelude lookup :: Eq a => a -> [(a, b)] -> Maybe b 00:07:13 Data.List lookup :: Eq a => a -> [(a, b)] -> Maybe b 00:07:13 Data.HashTable lookup :: HashTable key val -> key -> IO (Maybe val) 00:07:40 `? ? 00:07:41 ​? is wisdom 00:07:47 kmc: but then i'll miss out on um 00:07:51 1/3rd of /r/haskell! 00:07:53 -!- nooga has quit (Ping timeout: 255 seconds). 00:07:54 `? wisdom 00:07:56 wisdom is always factually accurate, except for this entry 00:08:10 `? monqy 00:08:11 The friendship monqy is an ancient Chinese mystery; ask itidus21 for details. 00:08:29 hmm, what happened to itidus? 00:08:39 `? itidus21 00:08:41 itidus21 just made some instant coffee. 00:08:41 `? itidus20 00:08:43 itidus20's entry has been censored. 00:08:46 `learn wisdom is always factually accurate, except for this entry, and uh that other one? it started with like, an ø? 00:08:46 rip 00:08:50 I knew that. 00:10:01 itidus might have gone crazy and moved to finland 00:10:27 or moved in finland if he was already there 00:14:00 `run echo wisdom/ø* 00:14:02 wisdom/ø 00:14:16 `? ø 00:14:18 ​ø is not going anywhere 00:14:43 what have i done.............. 00:14:57 is ø going somewhere then 00:15:11 `? oe 00:15:11 `run echo wisdom/ø* 00:15:12 wisdom/ø 00:15:12 oe? ¯\(°_o)/¯ 00:15:27 `? ¯\(°_o)/ 00:15:29 ​¯\(°_o)/? ¯\(°_o)/¯ 00:15:34 that's deep 00:15:41 though you missed a macron 00:15:48 damn 00:16:04 `? ¯\(°_o)/¯ 00:16:06 ​¯\(°_o)/¯? ¯\(°_o)/¯ 00:16:31 `run echo "¯\(°_o)/¯? ¯\(°_o)/¯" > wisdom/¯\(°_o)/¯ 00:16:32 bash: -c: line 0: syntax error near unexpected token `)' \ bash: -c: line 0: `echo "¯\(°_o)/¯? ¯\(°_o)/¯" > wisdom/¯\(°_o)/¯' 00:16:39 fucking hell 00:17:12 hint: " are evil, use ' 00:17:36 (unless you actually _need_ the evil) 00:18:32 `run echo '¯\(°_o)/¯? ¯\(°_o)/¯' > wisdom/¯\(°_o)/¯ 00:18:34 bash: -c: line 0: syntax error near unexpected token `)' \ bash: -c: line 0: `echo '¯\(°_o)/¯? ¯\(°_o)/¯' > wisdom/¯\(°_o)/¯' 00:18:42 see 00:18:47 bash is impossible 00:19:16 ok, _no_ quotes are also evil hth 00:19:33 i have an idea 00:19:41 * oerjan doesn't actually disagree, mind you 00:19:58 `run echo '\¯\\\(\°\_\o\)\/\¯\?\ \¯\\\(\°\_\o\)\/\¯' > wisdom/\¯\\\(\°\_\o\)\/\¯ 00:19:59 bash: wisdom/¯\(°_o)/¯: No such file or directory 00:20:16 what 00:20:32 good idea 00:22:04 do you really need to escape "o"? 00:22:15 `run echo '\\\¯\\\\\\\(\\\°\\\_\\\o\\\)\\\/\\\¯\\\?\\\ \\\¯\\\\\\\(\\\°\\\_\\\o\\\)\\\/\\\¯' > wisdom/?? 00:22:17 bash: wisdom/??: ambiguous redirect 00:22:23 impossible 00:22:31 `run echo '\\\¯\\\\\\\(\\\°\\\_\\\o\\\)\\\/\\\¯\\\?\\\ \\\¯\\\\\\\(\\\°\\\_\\\o\\\)\\\/\\\¯' > wisdom/\?\? 00:22:35 No output. 00:22:37 there 00:22:39 `? ?? 00:22:42 ​\\\¯\\\\\\\(\\\°\\\_\\\o\\\)\\\/\\\¯\\\?\\\ \\\¯\\\\\\\(\\\°\\\_\\\o\\\)\\\/\\\¯ 00:22:46 thanks bike 00:22:46 i think that went well 00:22:46 fancy 00:22:58 the very best result possible 00:23:01 OKAY 00:25:05 -!- copumpkin has quit (Ping timeout: 252 seconds). 00:25:36 -!- copumpkin has joined. 00:27:14 `? wisdom 00:27:16 wisdom is always factually accurate, except for this entry, and uh that other one? it started with like, an ø? 00:27:36 `? ? 00:27:38 ​ ?? ¯\(°_o)/¯ 00:27:54 `? ?? 00:27:55 ​\\\¯\\\\\\\(\\\°\\\_\\\o\\\)\\\/\\\¯\\\?\\\ \\\¯\\\\\\\(\\\°\\\_\\\o\\\)\\\/\\\¯ 00:28:01 `? ??? 00:28:03 ​???? ¯\(°_o)/¯ 00:28:35 bike: what were you trying to do? 00:28:59 Waste time inbetween being crushed in a game of Scrabble. 00:29:11 i'm watching http://www.pbs.org/wgbh/americanexperience/films/silicon/player/ 00:29:11 ¯\(°_o)/¯ 00:29:16 about Fairchild Semiconductor and the birth of Sillicon Valley 00:29:19 `? ¯\(°_o)/¯ 00:29:21 ​¯\(°_o)/¯? ¯\(°_o)/¯ 00:29:25 one of the old brochures describes a transistor with "80 milli-microsecond" switching time 00:29:31 i guess nanoseconds hadn't been invented yet 00:30:14 `learn ¯\(°_o)/¯ `? ¯\(°_o)/¯ 00:30:15 ​/hackenv/bin/learn: 4: cannot create wisdom/¯\(°_o)/¯: Directory nonexistent \ I knew that. 00:31:03 oh of course 00:31:35 `run mkdir 'wisdom/¯\(°_o)'; learn '¯\(°_o)/¯ `? ¯\(°_o)/¯' 00:31:40 mkdir: cannot create directory `wisdom/¯\\(°_o)': File exists \ I knew that. 00:31:47 wat 00:31:50 Awesome. 00:32:03 Can you not have filenames with forward slashes in them? 00:32:08 nope 00:32:31 `? ¯\(°_o) 00:32:32 cat: ¯\(°_o): Is a directory 00:32:38 wtf 00:32:46 oh 00:32:58 `ls ¯\(°_o) 00:32:59 `? ¯\(°_o) 00:33:00 ​/bin/ls: cannot access ¯\(°_o): No such file or directory \ /bin/ls: cannot access ¯\(°_o): No such file or directory 00:33:01 cat: ¯\(°_o): Is a directory 00:33:03 `? ¯\(°_o)/¯ 00:33:05 ​¯\(°_o)/¯ `? ¯\(°_o)/¯ 00:33:27 oh duh 00:33:32 `ls wisdom/¯\(°_o) 00:33:33 ​¯ 00:33:34 I have no idea what is happening. 00:33:43 Gonna call this a victory. 00:34:06 `? victory 00:34:07 `learn ¯\(°_o)/¯ `? ¯\(°_o)/¯ 00:34:07 victory? ¯\(°_o)/¯ 00:34:09 I knew that. 00:34:18 whee! 00:34:26 `? ¯\(°_o)/¯ 00:34:28 ​¯\(°_o)/¯ `? ¯\(°_o)/¯ 00:35:01 Bike: the victory of wisdom over you? 00:35:06 `? learn 00:35:07 learn? ¯\(°_o)/¯ 00:35:08 Yes. 00:35:28 `? ` 00:35:29 ​`? ¯\(°_o)/¯ 00:35:55 not knowing is the best of states, from which you can only learn more 00:36:18 00:32:03 Can you not have filenames with forward slashes in them? 00:36:24 consider the ambiguity in a/b/c 00:36:39 I mean, why not escape them? 00:37:12 well the notion of an escape character does not otherwise exist in filesystems 00:37:27 Can't you have null characters? 00:37:35 soln. don't insist that everything be represented as a string 00:37:46 sol.n @ 00:37:48 I don't think you get Unix philosophy. 00:38:26 supporting every possible character sequence as a file name might not have been the goal when this file system thingy was being invented 00:38:33 unix syscalls take filenames as strings and not as string-arrays 00:39:12 they could use nulls as the path separator and a double-null as a terminator 00:39:31 Well, they take bytestrings. 00:39:48 but then you can't have nulls in filenames 00:39:50 Unlike Windows, which takes actual (UTF-16-encoded) character strings. 00:40:59 UTF-63 has room for extra data to signal end-of-path and path separators 00:41:25 i think in a capability-based system, you wouldn't have file paths as a kernel-level concept 00:41:33 olsner: Only if they're 3-character-aligned. 00:41:37 you would open /, read usr out of it, read bin out of that, etc 00:41:55 but i don't really know 00:41:57 Bike: no, most filesystems reject NUL too 00:41:59 well most 00:42:01 I think all unix ones 00:42:11 generally you can't use / or NUL but anythiing else goes 00:42:22 mmonqy has it right 00:42:30 I think using byte strings (or length/data pairs) is good enough, although using open the root and then usr from that and so on seems good too 00:42:43 *monqy 00:42:55 mmonqy pinged me too 00:43:50 maybe the solution is to abandon hierarchical filesystems 00:43:55 we can use semantic tagging like in the future 00:45:30 Bike: you're still behind @ 00:45:48 fuck @ 00:46:24 what 00:46:24 fuck you 00:46:58 fuck fuck you 00:47:25 fuck you 00:47:43 `? fuck 00:47:45 fuck? ¯\(°_o)/¯ 00:48:02 fungot, love love love 00:48:03 Jafet: not /really/, but i really have to be commands, and bind it to one list, because there's really no single day the stats ' start from', 00:48:15 fungot: fuck 00:48:16 olsner: uml doesn't do that), it slows down the code when that's possible for you. as optbot instructed, we will know :d) 00:49:07 ^style 00:49:07 Available: agora alice c64 ct darwin discworld enron europarl ff7 fisher fungot homestuck ic irc* iwcs jargon lovecraft nethack pa qwantz sms speeches ss wp youtube 00:55:28 btw, i am thinking of amending the rules of continuous chess so the delta in the centre of mass in a move has to be the vector of a legal chess move divided by the measure of the piece being moved 00:55:31 thoughts? 00:56:09 if the pieces don't vary in size why complicate it? 00:56:10 er how do you change the measure of a piece 00:56:35 capture 00:56:57 and i recently amended the rules so all the pawn is in one big piece 00:57:16 Phantom_Hoover: that sounds like the change will make it more boring 00:57:27 hmm 00:57:33 my worry was that it'd make it too interesting 00:57:53 it's a delicate balance, how boring to make it 00:58:19 Phantom_Hoover: well it is a restriction 00:58:24 no it's not 00:58:41 the measure of a piece can only decrease 00:59:32 hmmmmmm 00:59:54 Phantom_Hoover: by restriction I just meant that the number of moves decreases 00:59:59 -!- augur has quit (Remote host closed the connection). 01:00:12 and since the game already seems to have no obvious strategy with the incredibly free number of moves it seems like it'd only decrease the interest 01:00:17 -!- kmc has set topic: 80 milli-microseconds to freedom | http://codu.org/logs/_esoteric/. 01:00:26 i think there's a problem of empiricism here 01:00:31 again, it doesn't (also the amount of moves is, like, some large beth number) 01:00:33 namely: i'm not convinced that this game has ever been played 01:00:45 so it seems a bit premature to talk about making it more boring 01:01:04 it still exists as a platonic game which could conceivably be played!! 01:01:45 Bike: I think we played it once 01:01:46 what if we played a game... right now 01:01:52 and it got too confusing 01:02:02 Phantom_Hoover: by decrease I merely mean it makes existing moves valid 01:02:03 who would have thought 01:02:05 er 01:02:06 Phantom_Hoover: by decrease I merely mean it makes existing moves invalid 01:02:09 not that the actual cardinality changes 01:02:14 elliott, well, ok 01:02:30 but not in a particularly limiting sense 01:02:35 obviously continuous chess chess should be invented 01:02:45 moves are bijections between sets of rules for continuous chess 01:02:46 it just means pieces have to move further as they get captured 01:03:30 Bike: ok but continuous continuous chess chess 01:03:34 it's like continuous chess chess, but continuous 01:03:48 Phantom_Hoover: perhaps we should step back and invent, say, continuous checkers 01:03:51 and then figure that out first 01:03:57 oh fuck 01:04:05 i don't even want to think about continuous checkers 01:04:07 can we tie this into surreals somehow 01:04:23 or ordinals at least 01:04:44 what's the chess variant corresponding to 0# 01:05:18 elliott, also it's draughts you americanised piece of shit! 01:05:24 shut up ph 01:05:28 Phantom_Hoover: ok how about continuous go 01:05:38 go is PRACTICALLY continuous anyway 01:05:41 Oh I've actually seen continuous go before. 01:06:03 how about continous reversi/othello 01:06:04 it is thus boring 01:06:16 we are the leading exporter of board games only mathematicians can play 01:06:20 or continouous go fish 01:06:21 and that can't actually be played on a board 01:06:25 haha continuous go fish 01:06:30 what would a continuous card game even mean 01:06:37 what is continuous ___ about 01:06:45 a joke gone way too far 01:06:45 nooodl_: we invented this game called continuous chess once 01:06:46 well mainly ph 01:06:47 aka #esoteric 01:06:50 it kinda spiralled out from there 01:07:15 what would a continuous card game even mean 01:07:21 the... cards can be split up? 01:07:24 wait 01:07:25 no 01:07:32 http://www.chessvariants.org/other.dir/continuouschess.html ?? 01:07:32 i think you broke ph monqy 01:07:35 how does continuous anything work? 01:07:37 I mean, card games are like, fundamentally based on combinatorics. 01:07:41 obviously the deck is treated as a cuboid 01:07:45 Maybe you could do soemthing with analytic combinatorics? 01:07:46 i love how nooodl_ googles things we talk about in here and expects useful results 01:07:50 go fish with power series 01:08:06 chessvariants.org is a wiki-ish thing... 01:08:09 nooodl_, http://sprunge.us/ZDHO 01:08:09 does go fish form a field 01:08:11 -!- augur has joined. 01:08:17 this is basically a super wimpy version of continuous chess 01:08:36 Phantom_Hoover: I like "called piece" 01:08:37 is it a mass noun 01:08:42 yes 01:08:44 good 01:08:52 piece has always been a mass noun 01:08:58 piece of eight 01:09:09 piece as a mass noun makes sense here, and it wouldn't make sense otherwise 01:09:12 i support this decision 01:09:34 -!- augur has quit (Remote host closed the connection). 01:10:31 admittedly i'm a bit inconsistent with what to call each batch of piece 01:10:47 -!- carado has quit (Ping timeout: 246 seconds). 01:11:46 why are there 18 disjoint subsets? 01:11:47 well it's like you can call a variety of cheese "a cheese" 01:12:00 olsner: 9 per player; pawns are one batch 01:12:22 IMO pawns should be separate piece!!! very important 01:12:27 right, the pawns ... but the knights and rooks have one each? 01:12:43 anyway i stopped understanding this at "bijective, measure-preserving" 01:12:51 monqy: Or a variety of maths "a math"? 01:12:56 shachaf: yes 01:13:17 nooodl_: basically "the same size" 01:13:19 how do you do that thing where pawns can get transforme into other piece 01:13:25 or "preserves size" i guess 01:13:39 nooodl_: well bijective is pretty simple at least 01:13:42 it's just that math makes size/measure hard because this is math so it has to be hard and weird 01:13:48 measure preserving is also easy 01:13:54 not quite as easy as bijective 01:14:11 for instance the bijective part doesn't really involve the reals 01:14:14 so i'm more sure it exists 01:14:27 the reals "totally" exist 01:14:33 what if i want to play chess with vitali sets monqy 01:14:35 what then 01:14:44 monqy: can you prove it 01:14:52 it's probably all pretty simple but i'm kinda dumb. 01:14:55 Bike: imo you shouldn't do that 01:14:59 i'll accept that the computable ones exist, conditional on the naturals existing! 01:15:16 ha, ha, constructivism 01:15:19 talking about math "existing" in real life is dumb 01:15:27 philosophy is dumb 01:15:32 ur dumb 01:15:34 yes 01:15:54 does the banach-tarski theorem apply to batches of piece? 01:15:57 maybe if i knew what kind of function this is... what's its "type signature" 01:16:40 also: maybe if i saw an example game of continuous chess (has anyone played it?) 01:16:48 [0,8]^2 -> [0,8]^2 01:16:55 er well 01:17:04 ok i'll let Phantom_Hoover explain 01:17:15 nooodl_: ps its basically impossible for humans to play 01:17:46 olsner: of course not, it requires 3 dimensions 01:18:26 is it basically impossible for humans to make valid moves, or just really hard in terms of strategy 01:18:31 how do you do that thing where pawns can get transforme into other piece 01:18:48 any pawn that gets close to the opposite rank gets promoted, i guess 01:19:11 -!- ais523_ has joined. 01:19:16 does the castling exist 01:19:21 hahahaha no 01:19:26 what about en passant 01:19:27 please add 01:19:28 en passant? 01:19:29 piece of cake 01:19:31 en passant 01:19:33 nooodl_, that definition is excessively mathematical btw 01:19:35 -!- ais523 has quit (Ping timeout: 260 seconds). 01:19:35 olsner: no, they're measurable sets 01:19:37 omg elliott let's be friends forever 01:19:40 -!- ais523_ has changed nick to ais523. 01:19:57 is it basically impossible for humans to make valid moves <-- now you're getting it. 01:20:00 what 01:20:11 the gist of it is that at the start of the game each piece is a 1x1 square of stuff, henceforth called 'piece' 01:20:16 ah, Linux: fast enough at startup that you can have the entire computer lock up, shut it down with alt-sysrq-reisuo, load it up again, and /still/ connect to IRC before you ping out 01:20:52 all the bijective and measure-preserving stuff basically just means that you can only rearrange your piece, you can't shrink or expand it 01:21:22 ais523: istr this has happened to you before 01:21:32 oerjan: last time it was just X that crashed 01:21:44 -!- copumpkin has quit (Ping timeout: 252 seconds). 01:22:01 and when you rearrange it, its centre of gravity has to make a legal chess move 01:22:13 seems it was caused by a hung GPU again, just X crashed in a different way this time 01:22:14 -!- copumpkin has joined. 01:22:29 and you capture enemy piece by moving yours onto it 01:22:46 nooodl_: it's easy to make valid moves 01:22:48 ais523: what are you doing to your poor GPUs 01:22:51 it's difficult to figure out what's going on afterwards 01:23:01 oerjan: probably overheating them by forgetting to bang on the case to start the fan 01:23:02 especially win conditions 01:23:09 since check and checkmate are like 01:23:11 moving pawns sounds fun 01:23:15 based on the existence of a function with certain properties 01:23:22 ic 01:23:25 oh wow, i hadn't even thought about that 01:23:44 well Phantom_Hoover did leave a little note saying they're kind of undecidable in the rules 01:24:26 -!- oerjan has quit (Quit: Good night). 01:24:31 what if you just change the win condition into "capture the other guy's king" and remove check/checkmate 01:24:39 boring 01:24:52 this reminds me of the rule in 4D noughts and crosses 01:25:10 that says that you don't win unless you notice you have a length 4 line and point the fact out to the other player 01:25:26 You lost me at "4d noughts and crosses" 01:25:38 does anyone remember oklopol's n-dimensional tic tac toe 01:25:44 that was fucking mindblowing 01:25:49 Bike: it's just noughts and crosses played on a 4x4x4x4 grid rather than a 3x3 grid 01:25:55 well 01:25:57 \infty-dimensional 01:25:58 elliott: but is it continouous tic tac toe 01:25:59 oh 01:26:05 well \infty-dimensional 01:26:07 therefore iso to reals!! 01:26:07 i thought you meant boxes and lines because i don't speak british 01:26:24 elliott: infinity-dimensional seems similar to 4-dimensional, really 01:26:24 what do you call tic tac toe 01:26:29 ais523: except not... 01:26:30 I used to play 4d tick tac toe in middle school 01:26:34 Bike, what about your stint in cornwall... 01:26:41 I spoke Cornish. 01:26:43 elliott: in terms of strategy, I mean 01:26:51 doesthiswork: yeah, it's a pretty obvious generalization 01:26:55 and 4x4x4x4 seems like the right size 01:27:00 Why would I be speaking British in Cornwall? 01:27:14 why would you be speaking to the cornish 01:27:19 I remember challenging the UK maths team to prove/disprove that a draw was possible 01:27:26 (it is possible to draw, but it's quite hard to find a drawn position) 01:27:55 So I could later bring them up when it was disbelieved that I was in Cornwall. Duh. 01:28:05 Don't you even know how tax nonfraudulentoperations work? 01:30:54 http://en.wikipedia.org/wiki/Counterexamples_in_Topology 01:31:01 i love that list of names 01:31:34 Niemytzki. I love you Russian 01:31:54 closed infinite broom 01:32:15 cantor's leaky tent 01:32:26 the ones with someone's name are my favourite 01:34:32 ugh i just realised it's going to be at least 2 years before i start doing proper topology 01:34:47 2 years? proper topology? 01:34:58 well, like, formally 01:35:11 metric spaces are next year but that barely counts 01:35:44 Wheel without its hub 01:35:49 i wonder if you can actually read that book with no understanding of topology 01:35:51 maybe i'll do topology next year........ 01:35:55 what book 01:35:58 maybe i'll try it and send chris an angry email asking for my money back if i can't 01:35:58 categories? 01:36:04 monqy: Counterexamples in Topology as recommended by chris 01:36:06 ah 01:36:09 and not that chris, the other one 01:36:14 Long line 01:36:16 http://esolangs.org/wiki/User:Chris%20Pressey#Esoteric_Reading_List.21 01:36:17 not pressey? 01:36:18 oh 01:36:20 In topology, the long line (or Alexandroff line) is a topological space somewhat similar to the real line, but in a certain way "longer". 01:36:21 yes presssey 01:36:25 topology sounds good 01:36:29 i meant not oel 01:36:33 i wonder if you can actually read that book with no understanding of topology 01:36:37 i doubt it somehow 01:36:39 well i thought pressey before oel!!! 01:36:53 you do sort of need to know what they're a counterexample to 01:36:56 ive seen presseys reading list before tho so 01:37:23 gabriel's horn is comparatively simple but i like it a lot 01:37:24 but do you remember the comment on counterexamples of topology?? 01:37:39 also not topological really "but whatever" 01:37:39 not a counterexample in topology though! 01:37:50 i remember the comments on gödel escher bach and a new kind of science 01:38:06 cpressey is the best 01:38:22 monqy: but not laws of form?? 01:38:43 topology sounds good 01:38:45 it's the best 01:38:47 elliott: i remembered the laws of form comment but not what book it was for 01:41:43 Laws of Form just reminds me of that biology book except that it is not that biology book 01:42:01 what's it about again 01:42:17 http://en.wikipedia.org/wiki/Laws_of_Form 01:42:18 what biology book 01:42:23 ugh 01:42:25 i can never remember the title 01:42:29 it's that one with the picture of the fish 01:42:36 i can't READ when i'm also trying to SEE THINGS 01:42:46 what is Phantom_Hoover trying to see 01:42:50 -!- Fiora has joined. 01:43:02 hey Fiora you like chess and maths right 01:43:09 um, a bit yeah 01:43:21 excellente 01:43:22 http://sprunge.us/ZDHO 01:43:29 JOIN THE DISCUSSION 01:44:09 i think if there is one thing this channel is good at it is welcoming Fiora 01:44:22 sorry, bike poked me 01:44:44 you can blame kmc and me 01:44:44 was it because of the chess 01:44:44 Those who agree point to LoF as embodying an enigmatic "mathematics of consciousness," its algebraic symbolism capturing an (perhaps even the) implicit root of cognition: the ability to distinguish. 01:44:45 hi Fiora 01:44:47 and also Bike I guess? 01:44:53 * shachaf resists the urge to `welcome 01:44:53 hi elliott 01:44:56 monqy: what the hell 01:45:06 laws of form is great 01:45:08 i should read it 01:45:09 LoF argues that the pa (primary algebra) reveals striking connections among logic, Boolean algebra, and arithmetic, and the philosophy of language and mind. 01:45:14 what the hell 01:45:16 i should read it too 01:45:20 the guy eventually gave up and became a full-on quack 01:45:25 you should see his four-colour theorem proof 01:45:31 oh christ 01:45:39 «He describes himself as a "mathematician, consulting engineer, psychologist, educational consultant and practitioner, consulting psychotherapist, author, and poet."[1].» 01:45:44 ive read goedel escher bach and a new kind of maththematics so reading lof would complete The Trifecta 01:45:49 a renaissance man!! 01:45:53 monqy: did you actually read a new kind of science 01:45:55 what was it like 01:45:57 What did you think of new kind of science 01:45:58 I kinda missed this place a little I guess <.< 01:46:05 elliott: it might actually be on my shelf right now 01:46:06 like i've heard everybody say it's bad but 01:46:14 elliott: the shelf of neglect mind you 01:46:41 yeeep here it is 01:46:45 dusty 01:46:57 Bike: have you seen that rather famous review of it 01:47:05 i've seen shalizi's 01:47:17 gosh it's long 01:47:42 how did i read this 01:48:19 index/Egg/randomness in fertilization of, 970 01:48:33 what 01:48:53 how much of it is words and how much is pretty pictures of cas 01:49:05 did any of you read "i am a strange loop" 01:49:10 lots of both 01:49:14 it's like a dry joyless version of GEB 01:49:30 where is the famous laws of form review? 01:49:32 theres a lot of pages and in those pages there are a lot of words and a lot of CA pictures 01:49:51 it's like "nobody understood my book so i'll spell it out in the clearest possible terms, also my wife is dead and i'm super sad about that" 01:49:59 doesthiswork: nowhere 01:50:02 but there's a famous ANKOS review 01:50:17 I''ll take that one instead then 01:50:21 kmc, maybe that's the reason for the harem 01:50:30 does he have a harem 01:50:31 (i feel terrible now?) 01:50:38 kmc: I read the beginning of it. 01:50:40 kmc, yes, of beautiful french women* 01:50:42 doesthiswork: http://vserver1.cscs.lsa.umich.edu/~crshalizi/reviews/wolfram/ 01:50:45 kmc: he talked about his wife in le ton beau but it was still pretty good 01:50:57 Bike: yeah that book is about something 01:50:59 *this information is obtained third-hand from a man who was probably a nutcase 01:51:03 ah 01:51:05 A Rare Blend of Monster Raving Egomania and Utter Batshit Insanity 01:51:08 that sounds about right 01:51:13 kmc: it probably helped that he actually knows shit about language, in an academic context :V 01:51:37 I don't know anything in an academic context. :-( 01:51:42 and well that that academic context is old and entrenched 01:51:47 hofstadter himself claims it was his daughter and her piano teacher or something, but that's a likely story 01:51:58 wish i had a harem 01:52:10 not in the "imprisoning women" sense ofc 01:52:19 why would you want to have a bunch of french people around you 01:52:35 Phantom_Hoover: "No one has figured out how to make general relativity, and with it gravity, work in a CA." 01:52:36 it's funny because french people suck, also they smell bad and are bad at wars 01:52:40 Phantom_Hoover: imo we have a new project 01:52:56 kmc: as a british person i feel like we are 'on the same wavelength' 01:53:01 kmc, no it's because they never came through for us against the english 01:53:09 who's us here 01:53:21 the scots obv. 01:53:38 well i'm sure they'll be right behind you in the 2018 Scottish War of Independence 01:53:52 how's scottish independence going anyway 01:53:55 2018 seems a bit far off for that 01:53:57 idk 01:54:04 they're going to have a referendum 01:54:18 Phantom_Hoover: will you vote for scottish independence??? 01:54:27 one sticking point is, if they leave the UK are they grandfathered into the EU or do they have to re-apply 01:54:38 well somebody pointed out to me that the english are to blame for david cameron so... 01:54:38 and if the latter, do they have to switch to the euro (as new EU countries mostly do) 01:54:51 i could see independence being good for scottish politics 01:54:53 yeah i remember hearing about that 01:54:59 but it seems like it'd be really awful for scotland the nation 01:55:01 and does that mean they have to float the scottish pound and join ERM 01:55:04 i think i heard that they've been using euros anyway? i don't know? 01:55:11 i seriously doubt it 01:55:22 like being a country is a big deal!! has scotland come of age yet 01:55:22 with EUR on the brink of collapse for a year or more 01:55:29 i think the argument largely depends on how creative your accounting is vis-a-vis the cash flow over the border 01:55:36 spoiler everything i know about this is from a half-read forum thread 01:55:38 also UK lost their AAA bond rating, does this mean the chancellor will get sacked 01:55:41 elliott: well they were a country for a while 01:55:51 did you know they tried to colonize panama back in the day? blew my fuckin mind 01:55:55 haha yes 01:55:56 it seems like if scotland becoming independent is good for politics there then that also might make politics here worse 01:56:01 but you know, I know nothing 01:56:09 the one attempt at a scottish overseas colony and they picked one of the least hospitable places on earth 01:56:20 Bike: something about John Darwin 01:56:28 the point that, to this day, is the single gap in the highway that otherwise stretches from argentina to alaska 01:56:41 nice 01:56:54 and it bankrupted Scotland and forced them to join with England 01:57:04 isn't that er 01:57:07 kind of simplistic 01:57:07 yeah that's the bit i heard of 01:57:12 there were a lot of things going on around then 01:57:12 of course it's simplistic 01:57:22 it's something i've said about history, therefore it's simplistic 01:57:31 it's still funny 01:57:35 wp says "was an important factor in weakening their resistance to the Act of Union" 01:57:45 kmc: least hospitable in which sense 01:57:51 elliott: kmc doesn't live there 01:58:01 -!- nooga has joined. 01:58:02 thanks 01:58:07 http://en.wikipedia.org/wiki/Dari%C3%A9n_Gap 01:58:32 full of jungle that wants to kill you 01:58:36 also colombian narco-terrorists 01:58:57 probably not so much in 1698 01:59:17 well the world was black-and-white and geometrically challenged in 1698 01:59:22 if their photos are anything to go by 01:59:31 or wait 01:59:35 "geometrically challenged"? 01:59:35 i guess they had figured art out by 1698 01:59:41 as in, a rectangle deficiency or the like? 01:59:45 did you see those old color photos of paris 01:59:52 ais523: well have you noticed old enough drawings look like a 5 year old did them 01:59:52 "The Darién Gap had a reported population of 1,700 in 1980." uh damn 02:00:00 because they hadn't quite figured out, like, perspective until... um 02:00:01 when was it Phantom_Hoover 02:00:12 ok apparently the color is fake maybe, though? 02:00:28 the renaissance? 02:00:29 before color cameras were invented 02:00:38 Phantom_Hoover: sure let's go with that 02:00:38 color photos were made by taking black and white photos 02:00:40 before the 1600s, for sure 02:00:42 then painting the color on by hand 02:00:45 elliott: I'd usually go with Dürer 02:00:54 but maybe it hadn't reached scotland yet 02:00:56 mostly because he's fucking awesome but hey 02:01:02 (also, interesting historical note: the video camera was invented well before the video projector was) 02:01:10 so 1400 was the exact year they figured out how to draw things 02:01:15 yep 02:01:20 it is settled 02:01:21 the first vehicular crossing took 5 months 02:01:23 (they used to make them into flickbooks instead before that) 02:01:44 "averaging 201 m (220 yd) per hour over 136 days." is not exactly swift 02:01:50 holy hell 02:02:49 olsner: I assume that it tended to go much faster sometimes and much slower most of the time? 02:03:09 maybe, the sentence doesn't contain full data 02:03:59 maybe they drove half the way, stopped for lunch for 5 months, then drove the rest of it 02:04:18 "missing, presumed Fed" 02:07:28 did you read about the first automobile crossing of the US 02:07:28 http://en.wikipedia.org/wiki/Horatio_Nelson_Jackson#Cross-country_drive 02:08:04 apparently the crossing I quoted about was partially done by boat 02:08:44 because there's a later "first all-land auto crossing" 02:08:59 maybe it was partly done by air 02:09:46 "taking 741 days to travel 125 miles (201 km).", i.e. about 5 minutes per meter 02:18:04 Turns out the book I was thinking of was On Growth and Form. 02:18:18 oh that it completely different 02:18:35 yes but it has "form" in it you see and is sort of about laws 02:18:56 form of laws 02:19:01 book about laws 02:19:03 and their structure 02:19:24 Kafka? 02:28:31 -!- Guest87505 has joined. 02:30:12 -!- nooga has quit (Ping timeout: 264 seconds). 02:30:25 another book you need to reed to read! http://en.wikipedia.org/wiki/The_Fabric_of_Reality 02:31:23 what is it about? 02:31:31 wait wrong one 02:31:32 http://en.wikipedia.org/wiki/The_Beginning_of_Infinity 02:31:37 oh, deutsch 02:31:38 the fabric of reality 02:31:47 the beginning of infinity then i guess 02:31:54 (isn't that just 0) 02:32:05 the enlightenment, apparently 02:32:10 0 is not infinity 02:32:37 he's got a mind-blowing insight into aesthetics, cultural creativity and moral philosophy 02:32:41 it's in it though 02:32:49 "To test this Deutsch suggests an AI behavioural evolution program for robot locomotion should be fed random numbers to see if knowledge spontaneously arises without inadvertent contamination from a human programmer's creative input." yeah ok 02:33:07 Bike: that reminds me of a hacker koan 02:33:17 me too 02:33:22 im trying to google it 02:33:26 but my browser is a freezin' 02:33:26 i know the one 02:33:31 about tic tac toe and preconceptions 02:33:34 im going to quote it anyway 02:33:39 because i just got the search in 02:33:39 ok 02:33:40 so go to hell 02:33:44 no 02:33:52 In the days when Sussman was a novice, Minsky once came to him as he sat hacking at the PDP-6. 02:33:55 "What are you doing?", asked Minsky. 02:33:57 "I am training a randomly wired neural net to play Tic-tac-toe", Sussman replied. 02:33:57 bike: where'd you get the qoute 02:34:00 "Why is the net wired randomly?", asked Minsky. 02:34:03 "I do not want it to have any preconceptions of how to play", Sussman said. 02:34:05 Minsky then shut his eyes. 02:34:08 "Why do you close your eyes?" Sussman asked his teacher. 02:34:10 "So that the room will be empty." 02:34:13 At that moment, Sussman was enlightened. 02:34:15 yes 02:34:17 doesthiswork: the wikipedia article. 02:34:28 bike: ok I'll read it 02:34:43 What, he criticizes Diamond 02:34:46 that's pretty random 02:34:54 as in jared? 02:35:03 yep 02:35:19 i mean not that i like diamond, it just seems a weird place to criticize him from 02:36:34 it does seem like a odd criticism 02:36:37 http://www.imediaethics.org/News/149/Jared_diamonds_factual_collapse__.php 02:37:02 oh jared diamond is that guns germs and steel guy 02:37:03 is he bad 02:37:08 all i know is that that book exists 02:37:13 -!- ais523 has quit. 02:37:18 he makes up facts 02:37:26 i'm coming to the conclusion that "never trust someone who posits their hypotheses in a popular science book" is a fairly good maxim 02:37:34 absolutley 02:37:47 although dawkins seems to be doing fine 02:37:49 elliott: it's pretty disliked by people in the field, apparently 02:37:55 mostly for the usual popsci reasons 02:38:00 -!- Arc_Koen has quit (Quit: Arc_Koen). 02:38:04 and environmental determinism isn't really his thing, anyway 02:38:18 well dawkins is kind of bad 02:38:35 he is kind of bad but not so much in biology 02:38:47 yes 02:38:53 that maxim does not apply to dawkins 02:39:00 actually was gene selection actually introduced in The Selfish Gene 02:39:16 wow i searched "elfish gene" by accident and that exists. 02:39:24 ph's least favourite gene 02:39:26 (it's an autobiography about D&D) 02:39:35 Bike: i think it was more a popularisation 02:39:42 yeah, that's what i'm guessin 02:39:44 it wasn't a scientific theory 02:40:02 « Dawkins coined the term "selfish gene" as a way of expressing the gene-centred view of evolution as opposed to the views focused on the organism and the group, popularizing ideas developed during the 1960s by W. D. Hamilton and others.» 02:40:04 you say that like it's a criticism 02:40:11 the elfish gene, it makes you slender, graceful, and able to ride shields down stairs and take down oliphaunts with arrows 02:40:20 (but it still only counts as one, no matter how sexy you are) 02:40:23 good gene 02:40:37 it was like writing a book about your favorite (mathematically correct) interpretation of mechanics 02:40:44 it's a view on things, it's still a perfectly valid thing to discuss 02:40:46 http://en.wikipedia.org/wiki/File:W_D_Hamilton.jpg hm i think hamilton is actually kind of hot 02:40:47 *quantum 02:40:56 Phantom_Hoover: I agree 02:41:01 btw jbs haldane was the best 02:41:05 just putting that out there 02:41:06 haldane owns 02:41:13 on being the right size is just great 02:41:27 did you know he wrote a children's book 02:41:32 it's incredible 02:41:33 really? 02:41:39 doesthiswork: no, the unit of selection has empirical consequences in a way quantum mechanical interpretations don't 02:42:27 i thought that the point was thier might be more then one unit of selection 02:42:43 there are several units of selection 02:43:11 some hardly ever get selected at 02:43:15 i read the book a long time ago, but that is what i took from it 02:44:20 dawkins' argument was that there was no mathimatical difference but conceptual clarity 02:44:31 Bike, it's about, like, this wizard who he's friends with 02:44:37 and they do all sorts of crazy shit 02:44:40 um 02:44:44 who Haldane is friends with? 02:44:49 not irl obviously 02:44:59 thanks for clarifying 02:45:17 do they go to india to fight imperialism and the bourgeosie 02:45:23 no 02:45:26 they do go to india 02:45:32 and they do fight the bourgeousie briefly 02:45:35 haha fuck yes 02:46:04 but not at the same time 02:46:41 good enough for me! 02:48:27 while i understand that the unit of selection at different levels is a nice conceptual device, woudn't thier interactions have real implications? 02:48:34 "unit of selection" seems silly to me, really. Like just a handle in which we try to approximate an understanding of what's going on. 02:48:53 Sgeo: of couse. 02:48:56 course* 02:49:12 all of our understanding is an approximation 02:49:12 I don't think any evolutionary biologist, including Dawkins, would say it's as simple as genes killing each other 02:49:26 -!- Phantom_Hoover has quit (Remote host closed the connection). 02:50:54 that is probably to general a statment. sorry 02:51:22 and yes i think interactions between "levels" is a thing thats researched a good deal. 02:51:49 Guest87505: approximately all of our understanding is an approximation 02:52:04 better 02:52:40 math and logic is not an approximation 02:52:53 babby's first existentialism 02:53:56 -!- Guest87505 has left. 02:54:14 Guest87505: to be an approximation there has to be something you are trying to approximate 02:54:31 woops he's gone 02:54:32 i think you upset guest Bike 02:54:42 :( 02:54:55 hi i havent been paying attn was this guest any good 02:54:59 its ok they only /parted 02:55:04 you can /msg them saying sorry 02:55:04 "Sounds to me like Anthony Junior may have stumbled across existentialism." "Fuckin' Internet." 02:55:08 I assume it was someone with a different name 02:55:29 I though I was just talking about statistics 02:55:35 well it wasn't me 02:55:47 The Extended Phenotype is a good book as well 02:55:52 sort of sequel to Selfish Gene 02:55:55 written more for scientists 02:55:58 doesthiswork: there are all kinds of ~philosophical implications~ behind saying that truth exists etc etc 02:55:58 cool stuff 02:57:38 bike: what is our official philosophy? 02:57:47 dicks 02:58:46 ah you mean the "8===>" operator 02:59:01 8==> for short 02:59:18 are dicks a monad? 02:59:34 you can bind them hurr hurr 03:01:16 have you noticed how immediate the feedback is on whether people like what you said or not? 03:01:32 no 03:02:04 there is a flurry of messages and then I say something that kills the conversation 03:02:24 and nobody wants to touch it 03:02:32 (hehehe) 03:02:32 god it's 03:02:34 it's too easy 03:02:42 which, i guess means it must be at least a monoid 03:03:09 are magmas easy 03:03:29 no 03:03:43 :( 03:03:44 associativity is kind of important, "imo" 03:04:31 What if we mix monads using cont? 03:04:32 Cont? 03:04:56 Although that might not work so well 03:05:10 Especially with State, but I need to actually think about it for more than 2 minutes 03:05:43 ok 03:05:56 even pointed semigroups aren't easy 03:06:50 Sgeo: You can mix monads using adjunctions. 03:07:03 But they aren't monads in your category. :-( 03:07:42 http://en.wikipedia.org/wiki/Bialgebra this has a lot of good scary diagrams 03:08:31 those diagrams aren't *that* scary 03:08:39 help i'm growing toleranti 03:08:43 i need something harder 03:09:08 yeah those diagrams don't look scary 03:10:00 shachaf, I don't know adjunctions 03:10:20 https://encrypted.google.com/search?q=commutative+diagram&tbm=isch has several scarier diagrams imo 03:10:58 oh dang 03:11:08 that one with the circle looks like a goddamn feynman diagram 03:11:17 fun fact they're the same thing as feynman diagrams 03:11:29 elliott: well they're the dual 03:11:34 string diagrams are the ones that are the same thing 03:11:44 what 03:11:50 don't lie to me 03:12:05 http://math.ucr.edu/home/baez/rosetta.pdf 03:13:40 fun fact 0 = 1 03:13:48 ugh 03:13:57 | fact n = n * fact (n - 1) 03:14:43 hm 03:14:50 what's a definition of gamma in haskell look like 03:15:01 elliott: zomg https://upload.wikimedia.org/math/3/f/4/3f426579fc0475ca3edbd849a96542b8.png 03:15:17 hello 03:15:27 elliott: It's mposition! 03:15:38 yes 03:16:00 That inequality is about the sides of a triangle, by the way. 03:16:23 "(3) that the triangle inequality holds, meaning that the length of one leg of a triangle xyz cannot exceed the sum of the lengths of the other two legs:" 03:17:17 ok 03:17:30 what the hell does the triangle inequality have to do with cocococococmpisitinnnnnnncococococococococococo 03:17:39 http://hackage.haskell.org/packages/archive/gamma/0.9.0.2/doc/html/src/Math-Gamma.html#gamma mmmhm 03:18:01 Bike: well look at the letters 03:18:13 https://www.youtube.com/watch?v=u328PglVpLU 03:18:17 well yes 03:18:18 distance 03:18:49 Remember the mposition/uncategory/type inequality thing? 03:18:54 nooodl_: is that z == abs z to see if it's real 03:18:56 p b a -> Either (p b x) (p x a) 03:19:11 That thing? 03:19:13 yeah 03:19:36 real and positive! 03:19:37 Compare to d(x, z) ≤ d(x, y) + d(y, z) 03:20:20 ok but is that analogy actually meaningful somehow 03:20:33 I bet it is? 03:20:46 math! 03:20:52 For one, I was trying to find examples of things that satisfy this sort of thing. 03:21:00 I wonder how that + would work, though. 03:21:13 It can't be coproduct, not in a poset category, can it? 03:22:53 What's d? I guess it's just some sort of bifunctor? 03:28:04 nooodl_: well 0 isn't positive 03:28:31 uuuuuuggggggggghhhhhhhhhhhhh 03:28:33 FreeFull: im sorry to inform you that nooodl_ is Deadly Wrong about 0 03:28:49 let's ban "positive" and "negative" 03:29:04 And instead use? 03:29:19 >0 <0 >=0 <=0 03:29:24 Doubleplusgood and doubleminusbad? 03:29:32 Those look like ducks 03:29:35 ≤≥ 03:29:35 nonnegative, nonpositive 03:29:39 And can't be pronounced 03:29:48 nonnonnegative 03:29:57 hi monqy 03:29:59 hi shachaf 03:30:13 :☼) 03:32:14 :♲( 03:33:04 :⚧¦ 03:33:21 nope 03:33:27 Nope? 03:33:45 shachaf: Your nose has mutated 03:33:47 i'm afraid not 03:34:01 Now it's a hermaphrodite 03:34:13 anyway 03:34:22 gamma 0 is already defined before that 03:34:53 so the "z == abs z" check after that really *does* check if it's real and positive 03:38:00 Why not z > 0.0 03:38:24 Because gamma is defined as a class on an arbitrary type, i assume 03:38:45 z > 0 if it's for all Nums 03:38:45 all numbers are fictitious 03:39:12 Since complex numbers aren't in Ord anyway I think 03:39:20 let's see, it has (Eq a, Floating a, Factorial a) 03:39:26 (why is Factorial a class) 03:39:33 03:38:24 Because gamma is defined as a class on an arbitrary type, i assume 03:39:39 bike you're great but 03:39:42 this sentence literally means nothing 03:39:47 :( 03:39:55 Clearly gamma is secretly bottom 03:39:59 Um, it's polymorphic? 03:40:02 I'm bad at words. 03:40:07 And thoughts. 03:40:23 me too 03:40:32 i just, it's a typeclass 03:40:50 so you can have some instance for BullshitNumberA and another one for BullshitFuckshitFuck 03:40:55 Bike: are you talking about what constraints you're putting on it 03:41:01 you know what sure 03:41:07 -!- doesthiswork has left. 03:41:18 -!- doesthiswork has joined. 03:41:19 Bike: gamma is just a class on an arbitrary type 03:41:24 don't let the man push you down 03:41:35 the man is better at haskell than i am 03:41:48 good point 03:42:48 actually what do you need for gamma function 03:43:02 logarithmic convexity and multiplication? 03:43:43 and continuity probably 03:43:56 except floats aren't actually continuous 03:55:26 -!- Frooxius has quit (Ping timeout: 252 seconds). 04:12:50 -!- nooodl_ has quit (Ping timeout: 260 seconds). 04:19:08 -!- aloril has quit (Ping timeout: 276 seconds). 04:20:42 -!- doesthiswork has quit (Quit: Leaving.). 04:32:16 -!- azaq23 has quit (Quit: Leaving.). 04:32:46 -!- aloril has joined. 04:36:45 -!- DHeadshot has quit (Ping timeout: 260 seconds). 04:38:04 * Fiora forgot how crowded this place got 04:38:22 she says, after almost an hour of inactivity 04:38:49 hi Fiora 04:39:03 <.< *pokes at bike* 04:39:18 'Lo, Fiora. 04:42:56 i like cheese and maths 04:43:54 cheese sounds good right now 04:45:47 -!- copumpkin has quit (Ping timeout: 252 seconds). 04:46:18 -!- copumpkin has joined. 04:47:42 today i ate some cheese that had a Data Matrix code printed on the rind 04:52:53 No cheese puns with Neo ): 04:54:02 -!- monqy has quit (Quit: hello). 04:54:16 kmc: Do you have a scanner to scan Data Matrix code? 04:54:46 my phone could I guess 04:54:58 but I don't think we got the whole code 04:55:01 Data Matrix? 04:55:07 it must have been printed on the wheel before it was sliced up 04:55:19 my friend peeled apart the rind bfore I noticed 04:58:20 "I'm sorry, there are no available nodes on X-Bit BBS at this moment." I got this error message already for 24 hours. When will they fix it? 05:01:23 kmc: which math is your favourite 05:01:27 I don't know, I don't work for X-BIt BBS, and I doubt any of us do. 05:02:08 did you see that dcoutts interview where they asked him what his favourite monad was 05:03:10 shachaf: What was the answer? 05:03:20 I think he changed it to Cont at the end. 05:03:23 You can look it up. 05:03:47 My favorite monad, well I have to admit I do quite a lot of programming in the IO monad but I don’t think I could say that’s my favorite one. It wouldn’t be really politically correct for me as a Haskell programmer to say IO monad. Tricky, there’s so many. 05:04:03 Ah, I know what the answer is: the Continuation monad that’s my favorite one, yes, definitely… 05:04:53 i will say IO monad unashamedly 05:05:26 You like IO more than Cont?! 05:06:02 I hate monad transformers and wonder if Cont secretly holds the key to killing them 05:06:04 So Cont 05:06:16 It don't. 05:06:26 well I can implement Cont easily myself, and even if I'm not allowed to make it a Monad, i can do all the same things 05:06:41 if explicit CPS is good enough for startup rockstars then it's good enough for me 05:06:45 Sure. 05:06:51 plus i like to be contrary 05:06:57 Well, you write in explicit CPS with any monad. 05:07:01 That's what do notation is. 05:07:02 and you know my rants about imperative programming in Haskell 05:07:09 sure, i'll buy it 05:07:19 implicit explicit CPS :) 05:07:39 foo >>= \x -> bar >>= \y -> return (x,y) -- you'd call this explicit CPS? 05:07:49 > liftM (+) `ap` [1,2,3] `ap` [4,5,6] 05:07:50 Couldn't match expected type `(->) (a0 -> b0)' 05:07:50 with actual typ... 05:07:56 do { x <- foo; y <- bar; return (x,y) } -- and this implicit? 05:07:58 > liftM (+) [1,2,3] `ap` [4,5,6] 05:08:00 [5,6,7,6,7,8,7,8,9] 05:08:12 Doesn't look very explicit CPSey to me 05:08:38 :t liftM 05:08:39 Monad m => (a1 -> r) -> m a1 -> m r 05:08:53 Bike, it's the same as fmap, but for monads 05:09:14 :t fmap 05:09:15 Functor f => (a -> b) -> f a -> f b 05:09:15 Anyway, from the perspective of callbacks etc., you make everything much more standard by: Having each callback take exactly one argument; not taking the callback argument directly, but returning a separate object which accepts it. 05:09:25 I thought monads were functors... 05:09:38 Bike, they should be, but in Haskell they're not 05:09:52 But this is caleskell, land of the brave. 05:10:05 Even Cale won't stoop that low. 05:10:15 as low as making monads functors? 05:10:41 So instead of read(stdout, len, function(data) { ... }, function(err) { ... }), you have the object "read(stdout, len)", which you can run() with a callback or do other thing with. 05:10:58 By making it its own first-class object you get all the benefits of that. 05:11:05 But it's still pretty mch explicit CPS. 05:11:45 (I think you usually read from stdin... But who knows!) 05:13:27 Bike: Monads are functors (specifically endofunctors), but when they made Haskell they forgot to specify that. 05:13:51 I think Haskell got Monads before it got Functors? 05:14:16 :t ap 05:14:18 Monad m => m (a -> b) -> m a -> m b 05:14:19 i think haskell = stupidskell 05:14:28 hackskell! 05:14:34 -!- aloril has quit (Ping timeout: 256 seconds). 05:15:10 You see here a scroll labelled HASKEM MUCHE. 05:20:21 EH, CUM MEKSAH 05:21:08 Monads are functors and applicatives 05:24:06 FreeFull, theoretically yes, in Haskell, no 05:25:01 Applicative has WrapMonad 05:25:27 Wronad. Wrong Monad 05:25:47 We should have a variation of rhyming slang where you LAY-contract a phrase and then LAY-expand it in a different way. 05:26:34 haskell more like monadaskell 05:26:38 because of all the monads you see 05:26:50 -!- monqy has joined. 05:27:00 -!- aloril has joined. 05:27:06 It didn't have to be this way 05:27:22 Haskell started out free from the menace of monads 05:28:49 Haskell Episode I: The Phantom Monad 05:30:20 Haskell Episode V: Most Ever Monadiest Monad Fucker Fuck 05:31:04 Maybe the indexed Cont monad does what I seek 05:31:16 erm, hmm 05:31:50 Sgeo: Indexed Cont... Is that like a right kan extension? 05:32:01 shachaf, I have not the faintest idea 05:32:08 are there monad-based esolangs 05:32:26 Sgeo: newtype Ran g h a = Ran { runRan :: forall b. (a -> g b) -> h b } 05:32:37 Bike: haskell. hth 05:32:43 one where >>= and return are the only operators or some shit 05:32:54 well i proposed an esolang named "Haskell" which would have all the properties that Haskell is commonly misunderstood to have 05:33:05 like what 05:33:09 > "Haskell" 05:33:10 "Haskell" 05:33:11 Aw. 05:33:13 monads used for everything 05:33:23 separate types for pure and impure functions 05:33:29 auto memoization of functions 05:33:48 must have 3 PhDs to write any program (this one might be tricky to implement) 05:34:18 i love phds 05:34:20 they are so easy 05:34:48 has anyone in the world ever had three PhDs 05:34:57 do honorary phds count 05:35:01 no 05:35:30 Hmm, maybe they're honorary doctorates but not honorary PhDs. 05:35:47 https://en.wikipedia.org/wiki/List_of_honorary_degrees 05:37:18 Should I get a PhD? 05:37:52 This list of honorary degrees lists all honorary degrees, including honorary doctorates. 05:37:54 You should get three, so as to optimize your Haskelling. 05:37:55 This is an incomplete list 05:38:24 my doctorate is 3 phds/year 05:38:32 my doctoseconderivative is positive, though 05:39:40 That was forced. 05:39:53 They all are! 05:39:59 At last Bike is beginning to see the light. 05:40:04 The Wikipedia article on "Honorary degree" has a "Practical use" section. 05:41:28 Honorary Doctor of Divinity??????????? 05:42:06 monqy: are you a doctor yet 05:42:10 not yet 05:42:12 drdoctormonkey 05:42:17 :-) 05:42:20 it's not lupus 05:42:46 monqy: imo become drdoctormonkey proäctively 05:43:21 herr doktor professor monqy 05:43:36 kmc: So my trip report is going to be LGA->Bronx rather than JFK-> 05:43:48 oh 05:44:06 i thought that's what you said in the first place 05:44:11 Maybe it is? 05:44:16 For a while I thought it'd be JFK-> 05:44:25 cause i said you should take the M60 and then $train 05:44:55 That's when I was trying to figure out whether to go to LGA 05:45:03 JFK -> the void 05:45:14 JFK and beyond the infinite 05:45:19 My other flight is going to be JFK->SEA, though. 05:46:37 What's the best route LGA->~Netherland Ave.? M60+$train? 05:47:20 is that netherland ave 10463 or netherland ave 10471 05:47:21 Or Q48+M60+...? 05:47:26 "different apparently" 05:47:33 10463 05:47:38 why would you tak the Q48 first? 05:47:54 I'm not sure, that website suggested it. 05:48:01 * shachaf is now getting oriented. 05:48:13 google often proposes Comedy Bus Option 05:49:03 anyway I would take the M60 to the 1 to 231st St or so 05:49:19 Hmm, maps.google.com and hopstop.com have very different time estimates. 05:49:24 but if i'm not mistaken, the walk from there to Netherland Ave is pretty seriously uphill 05:49:30 shachaf: for the same time? 05:49:58 Yes, 18:00 on Wednesday. 05:50:27 i think the walk from Spuyten Duyvil metro north station is also seriously uphill 05:50:39 silly place names: the legacy of the dutch in north america 05:51:12 RIP new amsterdam 05:51:23 seriously uphill? doesn't soudn very dutch 05:52:10 Hmm, the 1? 05:52:23 isn't that the closest subway stop? 05:53:02 you can transfer to most of the subway lines from the M60, on 125th St Manhattan 05:53:15 so just pick the best one for your destination 05:54:09 Google Maps is suggesting the Hudson train now. 05:55:09 well it costs more and runs less frequently, but ok 05:55:14 you can get that at 125th too right? 05:55:52 Yes. 05:57:47 So I guess M60->125th is a good first step regardless. 06:04:49 -!- gatopan has joined. 06:05:17 -!- GOMADWarrior has quit (Ping timeout: 255 seconds). 06:05:38 -!- gatopan has left ("Leaving"). 06:20:41 -!- aloril has quit (Ping timeout: 276 seconds). 06:29:41 -!- ogrom has joined. 06:33:17 -!- aloril has joined. 06:39:32 -!- sirdancealot has quit (Ping timeout: 272 seconds). 06:44:26 -!- sirdancealot7 has joined. 06:59:31 -!- doesthiswork has joined. 07:39:22 -!- atehwa has joined. 07:55:17 -!- augur has joined. 08:09:49 -!- ogrom has quit (Read error: Connection reset by peer). 08:21:33 -!- Taneb has joined. 08:35:38 -!- Nisstyre-laptop has quit (Quit: Leaving). 08:37:48 -!- ogrom has joined. 08:41:21 -!- zzo38 has quit (Remote host closed the connection). 08:55:12 -!- jajaja has joined. 08:55:52 @tell nooodl_ You can use replicate. I guess. 08:55:52 Consider it noted. 08:55:55 -!- jajaja has left. 08:56:24 @tell nooodl_ There is the EvalMany function which runs a block n times. 08:56:24 Consider it noted. 08:57:05 !blsq 0 3CB 08:57:06 {0} 08:57:23 !blsq '0'3CB 08:57:23 ERROR: Burlesque: (CB) Invalid arguments! 08:57:27 !blsq '03CB 08:57:27 ERROR: Burlesque: (CB) Invalid arguments! 08:57:35 !blsq "0"3CB 08:57:35 {"000"} 08:57:49 !blsq "0"3CB2.* 08:57:49 {{"000"} {"000"}} 08:58:59 @tell nooodl_ If it's ok to have strings then a 3x2 matrix filled with zeroes is "0"3CB2.* 08:58:59 Consider it noted. 08:59:22 !blsq 0bx3.*2.* 08:59:22 {{{0} {0} {0}} {{0} {0} {0}}} 08:59:31 !blsq 0bx3.*\[2.* 08:59:32 {{0 0 0} {0 0 0}} 09:00:05 @tell nooodl_ If you need 0 digits as Ints then a 3x2 matrix is 0bx3.*\[2.* which yields {{0 0 0}{0 0 0}} 09:00:05 Consider it noted. 09:00:43 although isn't that actually a 2x3 matrix? 09:00:49 I always forget which is which. 09:04:46 !blsq 0bx3.*\[3.*1{0 0}D! 09:04:47 ERROR: Burlesque: (D!) Invalid arguments! 09:04:53 !blsq 0bx3.*\[3.*{0 0}1D! 09:04:54 {{1 0 0} {0 0 0} {0 0 0}} 09:05:52 !blsq 0bx3.*\[3.*0 2R@{bx[+1}[m 09:05:53 Ain't nobody got time fo' dat! 09:06:00 !blsq 0bx3.*\[3.*0 2r@{bx[+1}[m 09:06:00 {1 ERROR: Burlesque: ([+) Invalid arguments! {0} 0 1 ERROR: Burlesque: ([+) Inva 09:06:05 !blsq 0bx3.*\[3.*0 2r@{bx\/[+1}[m 09:06:05 {1 {0 0} 1 {1 1} 1 {2 2}} 09:06:35 !blsq 0bx3.*\[3.*0 2r@{1\/^^bx\/[+}m[ 09:06:35 {{0 0} 1 {1 1} 1 {2 2} 1} 09:06:49 !blsq 0bx3.*\[3.*0 2r@{1\/^^bx\/[+(D!)}m[e! 09:06:49 1 09:06:54 oh come on :( 09:06:58 !blsq 0bx3.*\[3.*0 2r@{1\/^^bx\/[+(D!)}m[ 09:06:58 {D! {0 0} 1 D! {1 1} 1 D! {2 2} 1} 09:07:10 !blsq 0bx3.*\[3.*0 2r@{(D!)\/1\/^^bx\/[+}m[ 09:07:11 {{0 0} 1 D! {1 1} 1 D! {2 2} 1 D!} 09:07:14 !blsq 0bx3.*\[3.*0 2r@{(D!)\/1\/^^bx\/[+}m[e! 09:07:15 {{1 0 0} {0 1 0} {0 0 1}} 09:08:27 @tell nooodl_ If you're working with nested blocks d! and D! might be of use 09:08:27 Consider it noted. 09:08:49 @tell nooodl_ 0bx3.*\[3.*0 2r@{(D!)\/1\/^^bx\/[+}m[e! 09:08:49 Consider it noted. 09:09:03 Ok. Enough spam :) 09:10:45 @ask nooodl hey mroman just sent nooodl_ a few messages you might want to check them 09:10:45 Consider it noted. 09:11:19 @ask nooooodl hello 09:11:19 Consider it noted. 09:12:36 He should just use one nick instead of hundreds. 09:23:47 !blsq 0 2r@^^z[ 09:23:48 {{0 0} {1 1} {2 2}} 09:24:06 There's gotta be a better way to generate an identity matrix 09:25:47 !blsq 0 2r@{0bx3.*\/D!}m[ 09:25:48 {ERROR: Burlesque: (D!) Invalid arguments! 0 {{0} {0} {0}} ERROR: Burlesque: (D! 09:26:01 !blsq 0 2r@{0bx3.*\/1D!}m[ 09:26:02 {ERROR: Burlesque: (D!) Invalid arguments! 1 0 {{0} {0} {0}} ERROR: Burlesque: ( 09:26:25 !blsq 0 2r@{0bx3.*\/1sa}m[ 09:26:25 {{{0} 0 {0}} {{0} 1 {0}} {{0} 2 {0}}} 09:27:16 !blsq 0 2r@{0bx3.*1x/sa}m[ 09:27:17 {{1 {0} {0}} {{0} 1 {0}} {{0} {0} 1}} 09:27:25 !blsq 0 2r@{0bx3.*\[1x/sa}m[ 09:27:25 {{1 0 0} {0 1 0} {0 0 1}} 09:27:53 now I just need to inject some more code into it 09:28:37 -!- nooga has joined. 09:29:08 !blsq 3^^0\/?dr@{0bx3.*\[1x/sa}2sa#s 09:29:08 {{0 1 {0 bx 3 .* \[ 1 x/ sa}} 3} 09:31:13 neat. 09:32:13 -!- Bike has quit (Quit: leaving). 09:42:29 I wonder how hard it'd be to write a web browser purely in Haskell 09:46:23 The renderer'd be tricky, but almost everything else already exists 09:46:58 there s a web browser in haskell 09:47:06 not purely 09:48:58 -!- Sgeo_ has joined. 09:49:16 -!- Sgeo has quit (Read error: Connection reset by peer). 09:50:33 `plist 09:50:36 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: plist: not found 10:06:28 -!- HSgeo has joined. 10:07:04 -!- HSgeo has left ("well, this requires me to put a part message. Ok."). 10:15:01 -!- Taneb has quit (Quit: awwwaaaaaaaaay). 10:21:01 -!- epicmonkey has joined. 10:35:02 -!- copumpkin has quit (Ping timeout: 252 seconds). 10:35:33 -!- copumpkin has joined. 10:52:45 -!- nooodl has joined. 10:54:41 -!- monqy has quit (Quit: hello). 10:56:35 hi nooodl 10:56:40 hey 10:56:40 nooodl: You have 1 new message. '/msg lambdabot @messages' to read it. 10:56:58 -!- nooodl has changed nick to nooodl_. 10:57:32 hooodl_ 10:57:55 -!- nooodl_ has changed nick to nooodl. 10:58:19 @tell monqy thanks 10:58:19 Consider it noted. 10:58:36 thonqy 10:58:48 nooodl: I sent some messages to nooodl_ 10:59:05 yeah, monqy sent a message to nooodl telling me so 10:59:11 ok 10:59:14 then everything's fine :) 10:59:36 i was working on langton's ant and it looked something like this near the end 10:59:37 {1 0} {10 10} 0 {bxcy21.+} 2E! { #R {-1 1} {<-} #s3!!#s5!!d! hd#a if {pd}Z[ #r #s1!! #bn! D! \/#s3!! {++}Z[ \/ x/vv }20E! p^ 10:59:40 (this doesn't work) 10:59:45 @ask monqy your services are greatly appreciated 10:59:45 Consider it noted. 11:00:10 anyway stack manipulation in this thing seems... almost impossible 11:00:40 are #a #b #c the only way to have variables? 11:04:06 also, a burlesque command idea i had while working on this: haskell's "iterate" 11:04:35 1 {2*} It --> {1 2 4 8 16 ...} 11:24:06 I seriously need to stop listening to music when I read 11:24:21 The songs and the stories get indelibly connected in my mind 11:24:30 And I can't listen to the music without thinking about the story 11:25:07 that is why bad fanfic writers write while listening to music 11:28:18 nooodl: impossible? 11:28:24 you have swap, dup, pop, rotate 11:28:35 and #a are not variables 11:28:55 they just sorta behave like that 11:28:57 mroman: what bout bopit? 11:29:15 how do you retrieve things that have >3 things on top of them in the stack? 11:29:22 nooodl: Also... those "variables" only exist in the current scope 11:29:26 !blsq 5hd#a 11:29:27 5 11:29:39 !blsq 5hd{1}{#a}m[ 11:29:40 {ERROR: Can't load non hidden state! Sorry. 1} 11:29:52 ^- map has no access to #a 11:30:24 maybe... 11:30:32 !blsq 1 2 3 4 hdx/ld 11:30:33 ERROR: Can't load non hidden state! Sorry. 11:30:38 nooodl: There are a couple of ways to do that 11:30:52 !blsq 1 2 3 4 hdx/ #s 11:30:52 {1 3 2 } 11:30:54 -!- jix has quit (Ping timeout: 276 seconds). 11:31:04 in earlier versions you could pop to a list 11:31:08 like 11:31:13 !blsq 1 2 3 4bx 11:31:14 {4} 11:31:16 !blsq 1 2 3 4bx+] 11:31:17 ERROR: Burlesque: (+]) Invalid arguments! 11:31:20 !blsq 1 2 3 4bx\/+] 11:31:20 {3 4} 11:31:26 !blsq 1 2 3 4bx\/+]\/+] 11:31:27 {2 3 4} 11:31:36 and then access specific elements in that list 11:31:45 however, now Burlesque has #s and #S (push/pop stack) 11:31:48 !blsq 1 2 3 4#s 11:31:49 {4 3 2 1} 11:31:50 -!- jix has joined. 11:32:07 You can push the whole stack, manipulate it 11:32:33 #s #S allows you to do everything with the stack 11:32:46 !blsq 1 2 3 4#s<-#S#s 11:32:47 {1 2 3 4} 11:32:54 ^- reverses the stack 11:33:03 !blsq 1 2 3 4#s2di#s#s 11:33:03 {{ERROR: Burlesque: (e!) Invalid arguments! ERROR: Burlesque: ([+) Invalid argum 11:33:07 hm 11:33:13 !blsq 1 2 3 4#s{2}di#s#s 11:33:14 {{{4 3 1} 4 3 2 1} {4 3 1} 4 3 2 1} 11:33:19 !blsq 1 2 3 4#s{2}di#S#s 11:33:20 {4 3 1} 11:33:31 ^- removes an element from the stack 11:33:35 (position 2) 11:33:58 You essentially have random access to the stack 11:34:15 you can delete elements deep down, you can access elements deep down, you can do everything with it. 11:34:29 i gues my #s3!! approach wasn't too bad 11:34:48 And there's XSwap 11:34:53 !blsq 1 2 3#s 11:34:54 {3 2 1} 11:34:57 !blsq 1 2 3x/#s 11:34:58 {1 3 2} 11:35:19 which rotates the first three elements 11:35:20 !lbsq 11:35:39 Lebesque integral not available 11:39:42 also 11:39:52 there's a censored bar over a womans bikini on tv 11:40:04 like I wouldn't see that all the time during summer but ok. 11:40:26 english tv is doing it weird. 11:40:32 -!- oerjan has joined. 11:42:21 g'oerjan 11:42:34 h'achaf 11:45:02 i''janachoeraf 11:45:56 ł'nooga 11:46:24 'ello everybudha 11:46:51 Ü 11:47:17 blsqbot: this channel ain't big enough for the two of us 11:49:08 -!- wareya has quit (Read error: Connection reset by peer). 11:49:41 i tried to write a minecraft mod in clojure 11:49:44 and failed 11:49:52 -!- wareya has joined. 11:49:56 and then i tried the same with Mirah 11:50:45 and failed because its compiler is bug ridden piece of crap 11:50:56 iirc i wrote a minecraft mod in scala then gave up and used java 11:51:01 by minecraft i mean bukkit 11:51:10 i tried with forge 11:51:27 didn't anyone fix this yet. 11:52:19 basically you just build annotated class that initializes the mod and does whatever it likes with minecraft/forge api 11:52:23 pack it in jar 11:52:33 and FML should load the mod 11:58:20 but mirah compiler crashes on imports from forge api and clojure generates weird class files 11:58:37 and I don't know java platform enough to troubleshoot this 12:05:32 -!- Phantom_Hoover has joined. 12:12:06 what do you call the category that has all the objects of another category C, but only identity arrows? 12:12:58 Discrete subcategory? 12:16:23 ok, sure 12:16:28 I guess there are lots of discrete subcategories. 12:16:43 So maybe "maximal" or something. 12:16:57 so equality (as in refl : a = a) in a language Foo is a functor in the maximal discrete subcategory of Foo 12:17:07 that is instead of (a -> b) -> eq x a -> eq x b, you get 12:17:12 eq a b -> eq x a -> eq x b 12:17:25 because every arrow is (a -> a) 12:17:34 and hence being given hom(A,B) proves A = B 12:19:10 An endofunctor? 12:19:13 no 12:19:23 Eq : MaxDisc(Foo) -> Foo 12:19:30 Ah. 12:19:31 because you get (a `eq` b) -> (eq x a -> eq x b) 12:19:51 in fact every type constructor F admits a functor MaxDisc(Foo) -> Foo 12:19:54 OK, sure. 12:19:55 (a `eq` b) -> (F a -> F b) 12:20:04 that's pretty interesting 12:20:27 -!- SimonRC has quit (Ping timeout: 260 seconds). 12:21:45 if F is injective then you get MaxDisc(Foo) -> Foo 12:21:50 (a `eq` b) -> (F a `eq` F b) 12:21:54 (e.g. doesn't apply to Haskell TFs) 12:21:57 er 12:22:00 if F is injective then you get MaxDisc(Foo) -> Foo 12:22:04 if F is injective then you get MaxDisc(Foo) -> MaxDisc(Foo) 12:23:34 Sounds reasonable. 12:24:05 what other "weakened" functors can you get 12:24:12 i.e. Something(Foo) -> Foo 12:24:18 where Somethin only removes stuff 12:24:27 (forgetful category!!!) 12:25:00 What do you get if you forget which arrow is which? 12:25:10 I.e. you have at most one arrow between objects. 12:25:47 how do you pick which arrow? 12:25:53 just arbitarily? seems like the choice might affect things 12:26:07 It doesn't matter. 12:26:12 Oh, you mean for the functor back. 12:27:33 I didn't, but OK 12:27:40 Then what did you mean? 12:29:14 I don't know 12:32:40 -!- Frooxius has joined. 12:32:48 -!- Frooxius has quit (Client Quit). 12:33:00 -!- Frooxius has joined. 12:51:32 elliott: confunctor? 12:51:42 cofunctor* 12:51:48 Actually, wait 12:52:01 Functors don't even have pure/return/whatever 12:52:12 ? 12:52:17 * elliott is confused 12:52:53 Your forgetful category 12:53:03 Looks like a more general comonad 12:54:07 are you confused because you're trying to understand what FreeFull is saying 12:54:19 I think so 12:54:27 I tend to do that 12:55:48 -!- sebbu has quit (Ping timeout: 248 seconds). 12:57:14 FreeFull: forgetful/free functors are adjoint pairs, which give rise to _both_ a monad and a comonad, in the respective categories. 12:58:48 if you identify all arrows, you get a category equivalent (not quite isomorphic, since there might still be isomorphic non-equal objects) to a partial order. 12:58:53 elliott: ^ 12:59:20 um 12:59:22 shachaf: ^ 12:59:43 oerjan: Right. 12:59:54 oerjan: do you have a good name for my thing? 13:00:04 which one 13:00:07 @google "largest discrete subcategory" 13:00:09 http://planetmath.org/encyclopedia/EmptyFunctor.html 13:00:09 Title: PlanetMath 13:00:15 oerjan: same objects as another category, but only identity arrows 13:00:45 -!- carado has joined. 13:01:07 not anything official, no 13:02:00 -!- DHeadshot has joined. 13:02:51 data Empty a = Empty 13:03:16 instance Functor Empty where { fmap f a = a } right? 13:03:29 Wait 13:03:36 Probably should be f a on the other side too 13:03:49 make it fmap f a on both sides 13:03:51 just to be safe 13:04:45 Mmm, bottommap 13:05:15 shachaf: I'm just thinking that fmap bottom should always be bottom 13:05:24 That might not be a law though 13:05:25 -!- sebbu has joined. 13:05:25 -!- sebbu has quit (Changing host). 13:05:25 -!- sebbu has joined. 13:06:10 -!- DHeadshot has quit (Ping timeout: 246 seconds). 13:06:55 -!- DHeadshot has joined. 13:07:06 f a doesn't type, for one 13:07:19 :t fmap 13:07:19 Nor does a. 13:07:20 Functor f => (a -> b) -> f a -> f b 13:07:27 But fmap f a types! 13:07:29 ∞ 13:07:31 Er. 13:07:33 ∎ 13:07:41 shachaf: bottom always types 13:07:49 Not true. 13:08:12 Well, until a type is assigned to it 13:08:16 what 13:08:44 (let x = x in x) should be able to be put anywhere, right? 13:09:19 modulo some edge-cases (rank-n/constraints), sure 13:09:33 as long as the whole thing types. 13:09:48 If the whole thing doesn't type, at least the hole thing will type. 13:12:02 -!- Taneb has joined. 13:12:07 What if the hole thing doesn't type? Will the ole thing type? 13:13:48 I don't know what OLE has to do with any of it. 13:14:46 shachaf: Haskell used to be a microsoft research project 13:14:52 OLE is from microsoft too 13:15:01 !blsq 1 2 3 4 {} c! #s 13:15:02 {4 4 3 2 1} 13:15:32 !blsq 1 2 3 4 #s ^^ 13:15:32 {4 3 2 1} 13:15:35 oops 13:15:40 !blsq 1 2 3 4 #s ^^ .+ 13:15:41 {4 3 2 1 4 3 2 1} 13:16:03 ^^ is dup? 13:16:11 !blsq 3 3 ^^ + 13:16:11 ERROR: (line 1, column 9): 13:16:12 !blsq 3 3 ^^ .+ 13:16:13 6 13:16:16 Seems so 13:16:55 -!- Taneb has quit (Ping timeout: 260 seconds). 13:17:34 FreeFull: instance Functor Empty where { fmap f a = a `seq` Empty } 13:18:10 -!- sebbu has quit (Ping timeout: 256 seconds). 13:18:47 So evaluate a and return Empty 13:19:06 oerjan: ew. 13:19:07 because a may not be the type of the Empty you want out 13:19:16 Oh, right 13:19:18 elliott: ? 13:19:20 elliott: ok, another possibility 13:19:22 Do you hate the Functor laws? 13:19:24 And f wouldn't really apply either way 13:19:36 instance Functor Empty where { fmap f a = unsafeCoerce a } 13:19:49 elliott: better? 13:19:52 yes 13:19:53 Much bettoerjan 13:20:14 (it should be entirely equivalent semantically, i think) 13:20:14 Except you should alpha-reduce it. 13:20:22 shachaf: oh right 13:20:33 oerjan: I like the part where you act like unsafeCoerce has semantics. 13:20:49 instance Functor Empty where { fmap = const unsafeCoerce } -- perfect? 13:22:03 shachaf: i think this is actually one of the listed intended uses of it, changing a phantom type 13:22:12 Maybe unsafeCoerce (flip const) 13:22:41 shachaf: ooh 13:23:25 FreeFull: i think we just jumped the shark but i'm not entirely sure where 13:23:47 jarked 13:24:52 hopefully ghc is smart enough to not require unsafeCoerce here 13:25:01 ? 13:25:17 oerjan: Probably when we started 13:25:18 elliott: fmap f a = a clearly doesn't type 13:25:32 I mean vs. the seq version 13:25:39 or just fmap f Empty = Empty 13:25:43 -!- sebbu has joined. 13:25:43 -!- sebbu has quit (Changing host). 13:25:43 -!- sebbu has joined. 13:25:45 elliott: Well... 13:25:54 In this case, maybe, but it's not so simple. 13:25:54 don't ruin it. 13:25:57 elliott: well the seq version would allocate a new Empty 13:26:04 i know for recursive stuff it's not so easy 13:26:04 oerjan: No it wouldn't. There's only one Empty. 13:26:32 shachaf: does ghc know that for different types? 13:27:25 or just fmap f Empty = Empty <-- oh duh of course :P 13:27:36 Yes. 13:27:36 well it can't "allocate a new empty" when it's just a constant pointer 13:27:37 I was going to suggest that 13:27:41 But you guys were going wild 13:28:07 However, consider data Blah a b c = Blah a b 13:28:19 elliott: oh hm right it's a polymorphic constant 13:28:21 reblah :: a b x -> a b y; reblah (Blah a b) = Blah a b 13:28:32 Here, GHC will allocate a new Blah. 13:29:00 (Note: Things like this come up in practice.) 13:29:30 that reblah has an interesting type 13:29:43 was about to say 13:30:04 hi 13:30:40 I would've used something like Tagged but then elliott would have pedantically pointed out something about newtypes. 13:31:18 shachaf: i'm not sure we're referring to what you are referring to 13:31:28 oerjan: I noticed. 13:31:32 That was the "hi". 13:31:38 OKAY 13:31:40 -!- sebbu has quit (Ping timeout: 260 seconds). 13:31:40 I thought the discussion was done with. 13:31:48 What, you want me to correct it? Is that what you want, oerjan? 13:31:57 reblah :: Blah a b x -> Blah a b y; reblah (Blah a b) = Blah a b 13:32:03 Are you feeling happier now? 13:32:15 slightly 13:32:17 * shachaf vanishes in a puff of meaningless fury. 13:33:21 Hmm, oerjan, what do you think of my GHC extension? 13:33:38 http://hackage.haskell.org/trac/ghc/ticket/7633 13:34:41 ^^ is dup. 13:34:46 ? 13:34:56 shachaf: that's so excellent i even remember thinking of something like that myself 13:35:06 So have I! 13:35:11 Several times, before I proposed it. 13:35:19 I've wanted it for a long time. 13:35:31 oerjan: Is it so excellent you feel like implementing it? 13:35:38 -!- sebbu has joined. 13:35:38 -!- sebbu has quit (Changing host). 13:35:38 -!- sebbu has joined. 13:35:52 very few things are _that_ excellent, shachaf 13:36:17 -!- DHeadshot has quit (Ping timeout: 246 seconds). 13:36:20 i take solace in the fact that there's no way in h* my laptop could compile ghc. 13:36:34 Really? 13:36:45 Compiling GHC is an old tradition. 13:37:27 let's put it like this: i had to disable the antivirus to get it through compiling lens. 13:37:49 or wait 13:38:04 i think it may have been cabal itself 13:38:13 Well, lens is a virus, so that makes perfect sense. 13:38:24 and then i just did it when compiling lens as well to make things easier. 13:41:53 -!- Taneb has joined. 13:43:55 -!- sebbu has quit (Ping timeout: 260 seconds). 13:43:55 hi 13:44:02 oh no, Vorpal too 13:44:08 And Taneb! 13:44:12 Maybe 13:44:21 Taneb: you didn't say "hi". this time, anyway. 13:44:26 Oh 13:44:28 Okay 13:44:30 Not me 13:44:39 but it's good 13:44:45 i take solace in the fact that there's no way in h* my laptop could compile ghc. <-- there are binary distributions? 13:44:47 that you didn't 13:45:06 Vorpal: the context was the idea of me modifying it 13:45:11 ah 13:45:32 oerjan, windows? 13:45:37 yes 13:45:45 that explains a bit of it 13:45:56 windows XP with very little memory by today's standards 13:46:20 ah 13:46:33 do they still provide security fixes for XP? 13:46:38 yes 13:46:45 weird 13:47:03 so when are you going to switch from XP? 13:48:26 i dunno 13:49:47 I wonder if in a few years people will be okay with Windows 8 13:51:22 Taneb, I think it will become another vista for desktops/laptops but might do okay on tablets 13:53:41 I SHALL BEAR THAT IN MIND 13:53:43 -!- Taneb has quit (Quit: Leaving). 13:53:49 -!- sebbu has joined. 13:53:49 -!- sebbu has quit (Changing host). 13:53:49 -!- sebbu has joined. 13:54:54 -!- oerjan has quit (Quit: leaving). 14:03:58 -!- doesthiswork has quit (Quit: Leaving.). 14:04:55 -!- sebbu has quit (Ping timeout: 260 seconds). 14:13:54 I spent like 5 minutes trying to figure out why I couldn't copy a file to a FAT32 partition... It was because it had a : in the file name apparently. 14:17:50 I'm currently being amazed by the fact that I can drag a directory from a thunar (xfce file manager) window into a program running under wine and have it work flawlessly 14:17:54 wine has come a LONG way since I last used it 14:21:06 -!- sebbu has joined. 14:21:06 -!- sebbu has quit (Changing host). 14:21:06 -!- sebbu has joined. 14:23:25 -!- azaq23 has joined. 14:23:37 -!- azaq23 has quit (Max SendQ exceeded). 14:28:43 -!- ogrom has quit (Quit: Left). 14:40:32 -!- impomatic has quit (Ping timeout: 255 seconds). 14:44:39 -!- azaq23 has joined. 15:19:13 -!- glogbackup has quit (Remote host closed the connection). 15:33:04 -!- GOMADWarrior has joined. 15:35:20 -!- Taneb has joined. 15:45:45 A girl is trying to meet me in person so I can fix her computer issue, which boils down to her wanting to use a Windows program on her Mac. 15:45:54 -!- TeruFSX has joined. 15:46:14 I suggested trying the newer version of the software, which has a Mac version, but she would rather not do that unless she has "someone who knows what they're doing" by her side 15:46:15 you're such a nice guy 15:47:18 Honestly, I'm almost tempted to think that this is just an excuse to see me or something. But she has a fiancee, and she knows I have a girlfriend. 15:47:33 you think too much 15:55:10 -!- sebbu has quit (Ping timeout: 260 seconds). 15:58:42 -!- sebbu has joined. 16:07:42 -!- doesthiswork has joined. 16:16:05 -!- impomatic has joined. 16:17:16 doesthiswork, no it doesn't 16:17:44 (sorry if you heard that joke before a hundred times) 16:18:30 I think that joke's once been done in a subtle enough way that someone didn't get it 16:21:19 okay 16:22:19 What? 16:22:26 I thought it meant doest his work 16:44:05 -!- copumpkin has quit (Ping timeout: 252 seconds). 16:44:37 -!- copumpkin has joined. 16:47:54 -!- TeruFSX has quit (Ping timeout: 256 seconds). 16:52:27 -!- TeruFSX has joined. 16:53:10 -!- TeruFSX has quit (Client Quit). 16:54:27 Sgeo_: maybe she wants to have a threesome with you and her fiancee 16:55:03 So What has a similar theme to I Will Survive 17:04:39 -!- azaq23 has quit (Max SendQ exceeded). 17:04:54 Taneb, eye of the tiger/ 17:07:00 -!- azaq23 has joined. 17:37:47 nooodl: How are things going? :D 17:40:23 -!- Bike has joined. 17:48:32 Barenaked Lades are awesome. 17:48:35 *Ladies 17:51:47 barenaked ladles 17:54:08 -!- Slereah_ has joined. 17:54:28 -!- Slereah has quit (Ping timeout: 256 seconds). 17:55:20 -!- epicmonkey has quit (Ping timeout: 260 seconds). 18:00:03 -!- Taneb has quit (Quit: Leaving). 18:06:30 Home. 18:06:34 Did not have wild sex. 18:07:00 :( 18:07:59 I manage to have inhibitions somehow even when dead tired. Girl repeatedly says that she owes me, is there anything she can do, etc. etc., and I manage to keep my inappropriate thoughts in my head 18:10:06 maybe she 18:10:09 wasn't talking about sex 18:10:54 Phantom_Hoover, that seems quite likely, and, as such, it was probably a good thing to keep my thoughts to myself. 18:11:18 alright it's burlesque time 18:11:21 so uh 18:11:21 that is also generally a good life tip 18:11:31 good job not freaking out some chick?? 18:13:34 -!- TeruFSX has joined. 18:14:53 weird situation Sgeo_ 18:15:32 kmc, not.. really? Profoundly computer illiterate girl needs help, I help her, she's grateful? Only thing weird is my mind 18:15:38 i see 18:15:55 i think most men attracted to women have these kinds of thoughts 18:16:19 at least below a certain age 18:17:17 I think though that in the past (not this situation) I may have held inappropriate thoughts back and that was to a detriment? 18:17:22 Seems possible, anyway 18:17:45 well that depends on whether they were really 'inappropriate' or not 18:17:59 will your girlfriend be upset if you sleep with another woman 18:18:20 By "the past" I tend to be thinking of situations before I got together with my gf 18:19:33 -!- AnotherTest has joined. 18:19:49 hello - to do a taneb 18:21:44 What just came to mind was the time in 2011 when I was talking to a girl on webcam and she wanted to play a "game" that was just asking each other questions, said I could ask _anything_. And then eventually sexual questions were asked. And I _still_ was convinced that there was no way anything... "interesting" would happen. 18:22:25 you didn't answer my question but, 18:22:36 i think me trying to bring up discussion of monogamy might constitute trolling 18:22:47 why do you talk to girls on webcam, that just sounds wrong sorry 18:22:48 2011 was before I got together with my gf 18:23:07 And my gf would be mad if I slept with another girl. 18:23:20 I assume 18:24:18 -!- md_5 has quit (Ping timeout: 276 seconds). 18:28:09 mroman: why does dupswap exist? 18:29:05 -!- md_5 has joined. 18:30:00 wubwubwub 18:30:42 nooodl: For completeness obviously. 18:31:49 better to have it and not use it than to need it and not have it. 18:32:15 !blsq 25 {^^ ^^ 2 .% { 3 .* 1 .+ } \/ { 2 ./ } \/ ie} {1 != } w! 18:32:15 Ain't nobody got time fo' dat! 18:32:21 :( 18:32:23 In this case, never ever use it 18:32:27 !blsq 5 {^^ ^^ 2 .% { 3 .* 1 .+ } \/ { 2 ./ } \/ ie} {1 != } w! 18:32:27 Ain't nobody got time fo' dat! 18:32:33 AnotherTest: You got 100 Microseconds 18:32:39 oh :( 18:32:46 !blsq 2 {^^ ^^ 2 .% { 3 .* 1 .+ } \/ { 2 ./ } \/ ie} {1 != } w! 18:32:46 Ain't nobody got time fo' dat! 18:33:00 mroman: division by 2 takes 100 microseconds? 18:33:12 !blsq 10 2 ./ 18:33:13 5 18:33:17 ^- no 18:33:27 well, generating the collatz sequence for 2 18:33:33 !blsq 1 {^^ ^^ 2 .% { 3 .* 1 .+ } \/ { 2 ./ } \/ ie} {1 != } w! 18:33:33 Ain't nobody got time fo' dat! 18:33:37 common 18:33:48 there's no comments, right? 18:33:59 i'll have to do something like "hello"vv? 18:34:03 nooodl: Except "this is a comment"vv 18:34:12 right. 18:34:56 or { would this work } vv 18:35:03 !blsq { would this work } vv 18:35:04 ERROR: (line 1, column 8): 18:35:09 oh no doesn't of course 18:35:23 !blsq { li ke th is }vv 18:35:24 No output! 18:35:28 !blsq {wouldthiswork}vv 18:35:29 ERROR: (line 1, column 15): 18:35:32 !blsq {wouldthiswork.}vv 18:35:33 No output! 18:35:53 !blsq 2 {0 1}{^^++[+[-^^-]\/}30.*\[e!vv 18:35:53 Ain't nobody got time fo' dat! 18:35:55 pff 18:36:09 !blsq {^^ ^^ 2 .% { 3 .* 1 .+ } \/ { 2 ./ } \/ ie} {1 != } 18:36:10 {1 !=} 18:36:17 !blsq 1 {^^ ^^ 2 .% { 3 .* 1 .+ } \/ { 2 ./ } \/ ie} {1 != } 18:36:18 {1 !=} 18:36:22 !blsq 4 ^^{\/^^.+\/1.-}{}w!vv 18:36:23 64 18:36:24 !blsq 1 {^^ ^^ 2 .% { 3 .* 1 .+ } \/ { 2 ./ } \/ ie} {1 != } e! 18:36:25 1 18:36:25 what? 18:36:29 !blsq 1 {^^ ^^ 2 .% { 3 .* 1 .+ } \/ { 2 ./ } \/ ie} {1 != } w! 18:36:29 1 18:36:39 !blsq 2 {^^ ^^ 2 .% { 3 .* 1 .+ } \/ { 2 ./ } \/ ie} {1 != } w! 18:36:40 1 18:36:42 oh wait, that's ok 18:36:47 !blsq 10 {^^ ^^ 2 .% { 3 .* 1 .+ } \/ { 2 ./ } \/ ie} {1 != } w! 18:36:48 1 18:36:53 5 {0\/1.-}{1.-}w!vv 18:37:01 !blsq 5 {0\/1.-}{1.-}w!vv 18:37:01 0 18:37:07 mroman: that borke 18:37:11 *broke 18:37:17 It should output 4 zeroes on the stack 18:37:30 blsqbot does not print the whole stack 18:37:33 just the top 18:39:01 oh 18:39:11 ok how do I make a string of all stack elements? 18:39:23 nooodl: No. DupSwap is just there because of copy & paste ;) 18:39:30 AnotherTest: #s 18:39:34 !blsq 1 2 3 4#s 18:39:35 {4 3 2 1} 18:40:00 !blsq 1 2 3 4#s)Sh 18:40:00 {"4" "3" "2" "1"} 18:40:04 !blsq 1 2 3 4#s)Shwd 18:40:05 "4 3 2 1" 18:40:39 great 18:40:51 !blsq 5 {0\/1.-}{1.-}w!vv #s 18:40:51 {0 0 0 0} 18:40:53 nice 18:41:03 !blsq 100 {0\/1.-}{1.-}w!vv #s 18:41:03 {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 18:41:11 !blsq 1000 {0\/1.-}{1.-}w!vv #s 18:41:11 Ain't nobody got time fo' dat! 18:41:19 !blsq 100000000000000 {0\/1.-}{1.-}w!vv #s 18:41:19 Ain't nobody got time fo' dat! 18:41:22 :( 18:41:32 !blsq 500 {0\/1.-}{1.-}w!vv #s 18:41:32 Ain't nobody got time fo' dat! 18:41:43 Ain't nobody got time fo' dat! 18:42:07 Execution time is limited to 0.1milliseconds 18:42:55 {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 18:43:05 make burlesque faster then :p 18:43:09 and yes, that currently does not work @privmsg 18:43:16 !blsq 300 {0\/1.-}{1.-}w!vv #s 18:43:17 {0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 18:43:19 It somehow always prints to the current channel 18:44:00 !blsq { 0 0 } { 5 6 }ps\[ 18:44:00 {ERROR: Burlesque: (_+) Invalid arguments!} 18:44:17 oh wait 18:44:28 !blsq { 0 0 } { 5 6 }\[ 18:44:28 {5 6} 18:44:29 you can't parse a block 18:44:44 !blsq { 1 2 3 } { 5 6 }\[ 18:44:44 {5 6} 18:45:29 Maybe you're looking for _+ 18:45:35 !blsq {1 2 3}{5 6}_+ 18:45:36 {1 2 3 5 6} 18:45:38 I suck at burlesque, it's official :( 18:46:11 !blsq "Hello, world" " ";; 18:46:11 {"Hello," "world"} 18:46:17 cool 18:46:55 !blsq "Hello, world" ",";; 18:46:56 {"Hello" " world"} 18:47:04 mroman: that's a cool command 18:47:21 !blsq -5 sn 18:47:21 -1 18:47:28 It's split 18:47:33 Yeah, I know 18:47:38 It's nice to have that build in 18:47:40 It's a simple split function 18:47:58 !blsq "Hello, world" "hello";; 18:47:59 {"Hello, world"} 18:48:11 even C++ doesn't have split built-in :p! 18:48:48 !blsq "What does this do exactly" "w" [S 18:48:49 ERROR: Burlesque: ([S) Invalid arguments! 18:48:50 strtok? 18:48:57 that's not build in 18:49:04 !blsq "What does this do exactly" 'w' [S 18:49:04 ERROR: Burlesque: ([S) Invalid arguments! 18:49:15 It says Str a, Char b 18:49:21 Yeah. 18:49:29 and you feed it two chars 18:49:30 how is 'w' not a char 18:49:31 a w and a space 18:49:37 'w' is not a achr 18:49:39 *char 18:49:44 'w' is w and a space 18:49:46 'w is a w 18:49:51 !blsq "What does this do exactly" w [S 18:49:52 ERROR: (line 1, column 30): 18:49:58 I don't get that 18:50:08 !blsq "www.google.com" 'w [S 18:50:08 !blsq "What does this do exactly" 'w [S 18:50:08 "What does this do exactly" 18:50:08 "www.google.com" 18:50:16 !blsq "www.google.com" 'w S[ 18:50:17 ".google.com" 18:50:22 blsq "What does this do exactly" 'W [S 18:50:26 ^- a char is ' followed by something else 18:50:31 !blsq "What does this do exactly" 'W [S 18:50:31 "What does this do exactly" 18:50:42 also [S strips on the right side 18:50:49 ah 18:50:51 you want to strip on the left side of the string 18:50:59 !blsq "What does this do exactly WWW" 'W [S 18:50:59 "What does this do exactly " 18:51:18 !blsq 0bc5.+bc5.+{2 2}{1 0} {#s^p\/d!^^x/\/ {{-1.*}m[}if g_-1.*_+ #s{1 3 4 0 3 0}si#S n!D!x/x/{++}Z[x/}10E!vvvv^p 18:51:18 Ain't nobody got time fo' dat! 18:51:23 whoops 18:51:39 !blsq 5546 46 !~ 18:51:39 1 18:51:47 oh well. bc5.+bc5.+ {2 2} are the size/start pos, 10E! is the number of generations 18:51:47 blsq is nice 18:52:15 #s{1 3 4 0 3 0}si#S <- this is nice for stack manipulation :) 18:52:41 !blsq "hello" "world" z[ 18:52:41 {{'h 'w} {'e 'o} {'l 'r} {'l 'l} {'o 'd}} 18:52:57 !blsq "hello" "world" z[ #S 18:52:57 {'h 'w} 18:52:57 is {'h 'w} different from "hw", mroman? 18:54:18 !blsq 1 2 3 4 5 #s^p#s 18:54:18 {1 2 3 4 5 5 4 3 2 1} 18:54:56 !blsq "hello, world" '. [[ 18:54:56 ERROR: Burlesque: ([[) Invalid arguments! 18:55:02 nooodl: Yes. 18:55:07 !blsq "hello, world" 'h [[ 18:55:07 ERROR: Burlesque: ([[) Invalid arguments! 18:55:11 huh? 18:55:16 "hw" is a string and {'h 'w} is a block containing two characters 18:55:44 Why doesn't this work: !blsq "hello, world" 'h [[ 18:55:47 !blsq "hello, world" 'h \/ [[ 18:55:47 "hhehlhlhoh,h hwhohrhlhd" 18:55:51 flip the args 18:56:02 why? it says: 18:56:05 "String a, Char b" 18:56:24 no 18:56:25 http://mroman.ch/burlesque/lref.html says Char a,String b 18:56:28 [[ says Char a, String b 18:56:36 oh 18:56:40 http://mroman.ch/burlesque/cookbook/lref.html 18:56:43 that doesn't 18:56:48 hu? 18:57:06 is there a link to cookbook/lref.html somewhere? 18:57:09 because that'd be wrong. 18:57:57 in my browser history it appears 18:58:38 !blsq "does ps give errors?" ps 18:58:39 {ERROR: (line 1, column 21): 18:58:44 Oh it does? 18:58:56 Yeah. 18:59:18 !blsq "" ps 18:59:18 {} 18:59:34 oh man. too bad there isn't a "print" command 18:59:50 there's no way to make this print multiple generations without rewriting all of it 19:00:07 !blsq {5 6 7 5 12 23 456} mp 19:00:07 ERROR: Burlesque: (pd) Invalid arguments! 19:00:23 because it relies on #s 19:00:44 -!- Taneb has joined. 19:00:53 !blsq {5 6 7 5 12 23 456} pd 19:00:53 132148800 19:01:17 !blsq "hello Taneb" "^.+$"~= 19:01:18 1 19:01:23 yay 19:01:29 I feel awful 19:01:38 for being matched by a regex? 19:01:50 nooodl: You could run it in a continution or eval 19:01:53 !blsq "hello Taneb" "Taneb"~= 19:01:54 1 19:01:59 No, just in general 19:02:04 that might work 19:02:06 ooh, how does c! work 19:02:22 c! evals the block on a copy of the current stack 19:02:35 and pop one element from that after evaluation and returns it 19:02:39 !blsq 5 5 .+ 19:02:40 10 19:02:41 that's perfect 19:02:47 !blsq 5 5 {.+}c! 19:02:48 10 19:02:52 !blsq 5 5 {.+}c!#s 19:02:52 {10 5 5} 19:03:03 wow 19:03:04 ^- the fives are not destroyed because c! works on a copy 19:03:09 that would've made a lot of this code a lot easier 19:03:27 oh well, i'm not going to rewrite it all... yet 19:03:46 I'm currently running it for 12000 steps :) 19:04:30 !blsq "hello taneb, hello mroman" "hello (\w+)" 19:04:30 "hello (\\w+)" 19:04:37 oops 19:04:41 !blsq "hello taneb, hello mroman" "hello (\w+)" =~ 19:04:41 {"taneb"} 19:04:57 !blsq "hello taneb, hello mroman" "(hello (\w+))*" =~ 19:04:57 {"hello taneb" "taneb"} 19:05:14 http://codepad.org/nJKmRiJ3 <- output 19:05:23 !blsq "hello taneb, hello mroman" "(hello (\w+),)*" =~ 19:05:23 {"hello taneb," "taneb"} 19:05:36 nice 19:05:42 how would you convert it to a string like 19:05:42 !blsq "hello taneb, hello mroman" "(hello (\w+)\,\s*)*" =~ 19:05:42 {"hello taneb, " "taneb"} 19:05:42 ... 19:05:43 .#. 19:05:44 .## 19:05:45 etc 19:06:14 i was stuck on this for a while yesterday, even though my solution itself didn't work yet 19:06:18 !blsq 3 3 #s 19:06:18 {3 3} 19:06:19 !blsq 1{'.'#}ch 19:06:19 '. 19:06:20 !blsq "hello taneb hello mroman" "(hello (\w+)\s*)*" =~ 19:06:20 {"hello mroman" "mroman"} 19:06:25 !blsq 0{'.'#}ch 19:06:25 '# 19:06:41 nooodl: Map {'.'#}ch over it 19:06:56 then i'd put everything into a list 19:07:11 !blsq { {1 0} {0 1} } { {1 0} {0 1} } mm 19:07:11 {{1 0} {0 1}} 19:07:17 Replace p^ with sp 19:07:23 burlesque has matrices? 19:07:26 !blsq {{1 0 0}{0 1 0}}sp 19:07:26 1 0 0 19:07:32 !blsq {{1 0 0}{0 1 0}}SP 19:07:33 "1 0 0\n0 1 0" 19:07:40 do you have a det command yet? 19:07:52 ^- SP converts two dimensional blocks to a string 19:07:59 (sp is SPsh) 19:08:06 AnotherTest: nope @det 19:08:06 !blsq { {1 0} {0 1} } { {1 0} {0 1} } {{{'.'#}ch}m[}m[SP 19:08:06 ". #\n# ." 19:08:13 !blsq { {1 0} {0 1} } { {2 2} {2 3} } mm 19:08:14 {{2 2} {2 3}} 19:08:45 !blsq {0 0 0 1}{{'#'.}ch}m[ 19:08:45 {'. '. '. '#} 19:08:50 !blsq {0 0 0 1}{{'#'.}ch}\m 19:08:51 "...#" 19:08:57 ^- that should do it. 19:09:25 !! would work too 19:09:41 !blsq {0 0 0 1}{".#"\/!!}\m 19:09:42 "...#" 19:10:06 AnotherTest: It has transpose and matrix multiplication though 19:10:32 mroman: conventient element access would be nice 19:10:40 *convenient 19:10:47 d! 19:10:51 does that 19:11:11 anyway, {{{'#'.}ch}\m}m[uN seems to work well 19:11:23 !blsq "Hello World"wd{1 1}d! 19:11:23 'o 19:11:30 AnotherTest: ^- 19:11:39 http://codepad.org/FeILiAKL 19:12:09 !blsq { {1 0} {0 1} } 1 d! 19:12:09 ERROR: Burlesque: (e!) Invalid arguments! 19:12:24 d! is for multi-dimensional 19:12:28 so it requires a list 19:12:33 like so?: 19:12:39 !blsq { {1 0} {0 1} } {1 1} d! 19:12:39 1 19:12:41 foobar[0][0][1] would be {0 0 1}d! 19:12:43 oh nice 19:13:06 well that allows you to calculate the determinant I guess 19:15:03 !blsq { {1 0} {0 1} } <- 19:15:03 {{0 1} {1 0}} 19:16:16 nooodl: Now run it for 12000 steps 19:16:24 it'll take three minutes or so :) 19:16:54 !blsq { {1 0} {0 1} } ^^ tp mm 19:16:54 {{1 0} {0 1}} 19:16:58 yeah, it's pretty slow 19:17:46 !blsq { 'a 'b} 'c im 19:17:47 ERROR: Burlesque: (r[) Invalid arguments! 19:18:07 oh blocks 19:18:18 !blsq { 'a 'b} { 'c } im 19:18:18 'c 19:18:30 !blsq { 'a 'b} { 'c 'd } im 19:18:31 ERROR: Burlesque: (++) Invalid arguments! 19:18:37 !blsq { 'a} { 'c 'd } im 19:18:37 ERROR: Burlesque: (++) Invalid arguments! 19:28:08 -!- DHeadshot has joined. 19:32:41 -!- KingOfKarlsruhe has joined. 19:38:17 -!- ogrom has joined. 19:39:56 -!- oerjan has joined. 19:44:13 Oh, I didn't know GHC used C-- 19:44:29 it's what C-- was for, isn't it 19:44:32 just about the only thing which does, isn't it 19:44:50 yeah 19:44:59 i think the GHC team invented C-- and then failed to get others to use it 19:45:17 also I think it's more correct to say that GHC uses "Cmm" which is a variant of the published documented C-- 19:45:21 if it had been today, perhaps they would have just used LLVM directly 19:45:38 but I think GHC may be the only actively developed tool that can compile any flavor of C-- 19:45:43 yes 19:46:17 i guess they are versions of the same idea? 19:46:18 C-- and LLVM have different syntactic styles and somewhat different goals, but probably they would have used LLVM today 19:46:51 is ghc still using C--? 19:46:54 yes 19:47:01 also doesn't ghc have an llvm backend nowdays? 19:47:03 yes 19:47:05 ah this time my laptop updated lens successfully 19:47:15 it compiles C-- to LLVM 19:47:20 haha 19:47:24 or "Cmm" to LLVM 19:47:35 part of the RTS is written in Cmm 19:47:48 I wonder why C++ searches fine on google but C-- doesn't work 19:47:55 I wonder if they hardcoded it? 19:48:22 Either they have hardcoded it or their machine learning has seen ”C++” as a ”word” on enough pages. 19:48:42 (c minus minus works) 19:49:27 one of the goals of C-- is that, without making garbage collection part of the language, you add the right hooks such that one could develop a garbage collector for C-- 19:49:53 -!- epicmonkey has joined. 19:49:57 er, develop a GC for language implementations targetting C--, which is independent of the details of those implementations 19:50:04 and same for other language features like exceptions 19:50:04 kmc, which sounds like something LLVM allows for too iirc 19:50:08 i don't know if LLVM has that 19:50:10 ok 19:50:28 i don't know how realistic this goal is anyway 19:50:42 good GCs tend to be tuned for the specific language 19:50:50 true 19:51:07 e.g. GHC's GC has to deal with a ton of mutation in the form of thunks getting evaluated, but less mutation of arrays than you might have in another language 19:51:40 kmc: I saw some code written directly in C-- before 19:51:40 kmc, well what about .NET? It is not tuned to a specific language, just to the general byte code, and it doesn't care if that byte code comes from C# or VB.NET 19:51:42 For KolibriOS 19:51:43 or F# 19:52:12 FreeFull: huh 19:52:15 and what do they compile it with 19:52:23 Vorpal: yeah, I don't know 19:52:31 I forget 19:52:46 night 19:53:08 http://www.cminusminus.org/ has an interpreter and compiler 19:53:27 Doesn't seem to have been updated since 2008 though 19:53:36 i'd guess that the CLR GC is suboptimal for languages that aren't so much like C# or VB 19:54:17 also F# is not that different from C# operationally, is it? 19:54:45 I hear it's more functional 19:55:36 not what i meant 19:55:57 i'm talking about whether the heap behaves differently at runtime 19:56:08 i would guess that it's not too different 19:56:23 http://websvn.kolibrios.org/listing.php?repname=Kolibri+OS&path=%2Fprograms%2Fcmm%2F&#abf1c4e809912c8e0dc9c47ab4528b257 19:58:21 -!- monqy has joined. 19:59:04 cool 20:02:01 kmc: It's all .net underneath 20:02:33 i know 20:05:54 it all compiles to CLI bytecode, but different languages will produce different patterns of heap access, which makes it difficult to write an efficient garbage collector for all of them at once 20:06:08 however I'm speculating that the heap access patterns of C# are a lot closer to F# than, say, Haskell 20:06:29 i also don't know all that much about GC or how much this is a problem 20:09:32 reminds me of discussions on how to integrate GC with an operating system, can each process have its own, can you not have memory protection, bla bla bla 20:09:54 I remember reading a thing about some proposed OSs with that 20:10:08 I think the idea was that everything was managed, and the kernel owned all the memory 20:10:14 of course you could do like Singularity and just make everything CLR 20:10:17 and memory protection is just enforced by the VM 20:10:19 ... yeah, like that 20:10:40 but i was thinking of speculation about each process being able to have its own things specified 20:10:56 so a compiled haskell process could have a different GC from a JVM 20:10:57 -!- KingOfKarlsruhe has quit (Quit: ChatZilla 0.9.90 [Firefox 19.0/20130215130331]). 20:11:04 or something like that. 20:11:08 maybe they could have different GCs, but written in the same language? 20:11:12 so you could load your own custom GC 20:11:21 like, the kernel provides hooks to allow the GC to perform operations 20:11:28 and you can writre a custom GC using those hooks 20:11:52 Hang on 20:11:56 Hang on hang on hang on 20:11:58 Hang on 20:12:00 Fiora's back 20:12:13 Yes, and the heavens cried out in joy. 20:12:21 um. bike kinda dragged me a bit 20:12:25 * kmc hangs on 20:12:26 did not! 20:12:32 Fiora's back... IS ON FIRE 20:12:32 you sorta did! 20:12:40 eeeeep 20:12:53 * Fiora puts it out with a blanket 20:12:54 Fiora: Well the problem was that part of the idea of something like that is that you can hopefully avoid memory protection if C-style operations aren't available 20:13:01 but if every process can do its own thing you don't have that 20:13:28 would there be something that bad about using a common intermediate language that's secure? 20:13:38 like, even something like google native code 20:13:55 I guess that'd get really tricky when you need to write a process that can implement a jit or something... >_< 20:13:59 I don't think anybody in this conversation had heard of NaCL if it even existed at the time `-` 20:15:20 maybe i should read those eros papers to see how capabilities-based stuff goes 20:16:00 i'm kind of irrationally skeptical of "write everything in a managed language" because relying on compilers to generate safe code seems like a bad plan, and that's what Oberon did 20:16:53 google native code almost seems safer than managed code on some level but I don't know if it's 'powerful enough' to do everything 20:17:20 how's it lack power? 20:17:43 hm actually was NaCL able to check for memory accesses only being in a certain range 20:17:44 like, I'm not sure you could write a JIT or VM in it 20:17:47 that's probably not even possible... 20:18:02 I think it used memory segmentation or something 20:18:13 hmm, cellular automata in the hyperbolic plane can supposedly solve NP-complete problems in polynomial time 20:18:18 the idea is to not have segmentation i guess 20:18:19 -!- ogrom has quit (Quit: Left). 20:18:23 olsner: continuous automata? 20:18:44 I'd have to go check the paper again >_< 20:18:48 no, it does say cellular auotmata 20:18:57 i mean, continuous cellular automata 20:19:10 (paper: http://t.co/RToPTfuEKH) 20:21:48 -!- DHeadshot has quit (Ping timeout: 264 seconds). 20:22:47 in truth, the language independent runtime of the future is an entire linux install and virtualized x86 chip 20:22:52 because the future is dumb 20:23:12 heh. 20:23:52 the linux, of course, is written in dalvik bytecode 20:24:33 which runs in an ARM emulator 20:24:46 that and/or sandboxing that skips the full virtualization part when possible 20:25:07 then there's the VM escape exploits though >_< 20:27:40 hmm, "The USS Voyager (NCC-74656) *was* an Intrepid-class Federation starship launched in 2371" ... 20:28:47 I kind of like the idea of memory-alpha being served from the future though 20:31:14 !blsq 13 2 bs 20:31:14 ERROR: Unknown command: (bs)! 20:31:37 -!- ais523 has joined. 20:31:57 -!- Arc_Koen has joined. 20:33:56 -!- Arc_Koen has quit (Client Quit). 20:34:14 -!- Arc_Koen has joined. 20:35:56 -!- SirCmpwn has quit (Read error: Operation timed out). 20:36:31 mroman: your language reference seems to contain many cases of () being used instead of {} ? 20:38:37 !blsq 1MO 20:38:37 ERROR: Unknown command: (MO)! 20:38:44 !blsq 1mo 20:38:44 Ain't nobody got time fo' dat! 20:40:47 oerjan: ? 20:41:15 !blsq 5 5 .+ 20:41:16 10 20:41:21 !blsq 5 5 (.+) 20:41:21 .+ 20:41:22 example: MapDup [m Defined as (^^)+]m[ 20:41:29 Yeah. 20:41:43 !blsq {+.}to 20:41:44 "Block" 20:41:49 ^- that's a block 20:41:52 !blsq (+.)to 20:41:53 "Ident" 20:41:57 ^- that's not a block 20:42:11 To push an identifier to the stack ( ) is used. 20:42:19 !blsq {+.} (^^) +] 20:42:19 {^^ +.} 20:42:54 oh 20:43:02 so it's for putting them inside blocks 20:43:09 with +] or the like 20:43:17 Yep. 20:43:21 also 20:43:26 yeah, i don't think they're useful outside of blocks 20:43:27 !blsq ((.+))to 20:43:27 "Quoted" 20:43:32 maybe e! should execute an Ident 20:44:22 !blsq {+.}-] 20:44:23 +. 20:44:26 !blsq {+.}-]to 20:44:26 "Ident" 20:44:30 -!- gs2bot has joined. 20:44:42 i haven't showed this language off in #esoteric thoroughly yet: https://dl.dropbox.com/u/15495351/gs2/gs2.htm 20:44:54 It's just a short way to push an identifier to the stack 20:45:25 !blsq {mu}p^ 20:45:25 !blsq "abcd"n! 20:45:25 'd 20:45:25 !blsq "bye!" 20:45:25 mu 20:45:26 "bye!" 20:45:29 -!- AnotherTest has left. 20:45:30 iiiiiit's also broken. 20:45:32 !blsq "abcda"n! 20:45:32 'a 20:45:37 !blsq "abacd"n! 20:45:37 'a 20:45:38 nooodl: i havent read yr spec yet but have you ever heard of "flogscript" 20:45:39 !gs2 "2 2+" 20:45:39 "" 20:45:44 ye 20:45:49 do you know flogscript 20:45:57 very little 20:46:05 zzo hasn't written any docs and it's really really weird 20:46:10 -!- SirCmpwn has joined. 20:46:13 ther'es "docs" 20:46:16 ?? 20:46:31 n! returns the element that appears the most often in a block/str 20:46:43 the only "docs" i know of are http://d.hatena.ne.jp/milieu/20100813 20:47:29 "No documentation yet, read the examples and source code to try to figure it out." cool 20:48:13 nooodl: theres http://esolangs.org/wiki/FlogScript which has some example programs to revers-eengineer, http://esolangs.org/wiki/Talk:FlogScript which “explains„ a program, and http://zzo38computer.org/esoteric/FlogScript/FlogScript.php.txt the “definitive ‘doc‚„ 20:48:30 Hmm 20:48:42 Thanks to Homestuck, I've actually heard of Dante Basco 20:48:48 uuuuugh why is gs2bot broken 20:49:03 `list 20:49:06 is the irc part broken or the gs2 part 20:49:06 THAT IS NOT A LIST 20:49:07 cuttlefish boily elliott Taneb HackEgo Sgeo monqy pikhq Sgeo_ tswett Phantom_Hoover nortti oklopol 20:49:10 UNDO 20:49:11 SORRY 20:49:12 SORRY 20:49:25 * Fiora patpats Taneb 20:49:26 the gs2 part 20:49:39 Fiora, `list now lists people who've used `list 20:50:01 `revert 20:50:02 nice command 20:50:03 Done. 20:50:09 It's possible to kill HackEgo with it 20:50:39 `run cat $(which list) 20:50:41 ​#!/bin/sh \ oldpwd=`pwd`; cd /var/irclogs/_esoteric; name=$(cat $(ls ????-??-??.txt | tail -1) | tail -1 | sed "s/[^<]*.*//; s/.*\* //; s/ .*//"); cd $oldpwd; fgrep -q "$name" bin/list || echo -n "$name " >> bin/list; echo cuttlefish boily elliott Taneb HackEgo Sgeo monqy pikhq Sgeo_ tswett Phantom_Hoover nortti oklopol 20:50:50 undo successful 20:50:53 -!- gs2bot has quit (Remote host closed the connection). 20:51:05 ??? 20:51:10 `list 20:51:11 `list 20:51:13 cuttlefish boily elliott Taneb HackEgo Sgeo monqy pikhq Sgeo_ tswett Phantom_Hoover nortti oklopol 20:51:14 cuttlefish boily elliott Taneb HackEgo Sgeo monqy pikhq Sgeo_ tswett Phantom_Hoover nortti oklopol 20:51:21 -!- Taneb has changed nick to Ngevd. 20:51:26 `list 20:51:27 `list 20:51:34 cuttlefish boily elliott Taneb HackEgo Sgeo monqy pikhq Sgeo_ tswett Phantom_Hoover nortti oklopol 20:51:35 `hatesgeo 20:51:37 cuttlefish boily elliott Taneb HackEgo Sgeo monqy pikhq Sgeo_ tswett Phantom_Hoover nortti oklopol Ngevd 20:51:43 -!- Ngevd has changed nick to Taneb. 20:51:45 Hmm 20:51:55 I wonder what it is I undid. 20:51:57 !blsq 1R@ 20:51:58 Ain't nobody got time fo' dat! 20:51:59 -!- gs2bot has joined. 20:52:01 !gs2 "2 2+" 20:52:02 "\"$lb<<$stack.size\"\n\"gpush Garray.new($stack.slice!(($lb.pop||0)..-1))\"\n\"a=gpop;gpush ~a\"\n\"a=gpop;gpush a.ginspect\"\n\"a=gpop;\"\n\"a=gpop;$stack< ... a*b\"\n\"b=gpop;a=gpop;a,b=b,a if a.class_idb\"\n\"a=gpop;gpush a.notop\"\n\"b=gpop;a=gpop;a,b=b,a if a.class_id ... ? $stack[~a.val] : a.sort)\"\n\"a=gpop;gpush case a\\n\\twhen Gint then Garray.new([*0...a.val].map{|i|Gint.new(i)})\\n\\twhen Gblock then a.select(gpop)\\n\\twhen Garray then Gint.new(a.val.size)\\n\\tend\"\n\"a=gpop;gpush a.rightparen\"\n\"a=gpop;gpush a.leftparen\"\n\"a=gpop;gpush Gint.new(rand([1,a.val].max))\"\n\"a=gpop;gpush Gint.new(a.val.abs)\"\n\"a=gpop;print a.to_gs\"\n\"b=gpop;a=gpop;$_19.go;(gpop.val==0?a:b).go\"\n\"a=gpop;loop{a.go; ... 20:52:02 ... $_19.go; break if gpop.val!=0}\"\n\"b=gpop;a=gpop;loop{a.go; $_19.go; break if gpop.val!=0; b.go}\"\n\"a=gpop;gpush a.zip\"\n\"b=gpop;a=gpop;gpush b.base(a)\"\n\"b=gpop;a=gpop;a=Garray.new([a]) if a.class != Garray;\\n gpush Gstring.new(sprintf b.to_s, *a.val.map { |x| qval x })\"\n\"b=gpop;a=gpop;c = a.to_s.scan Regexp.new b.to_s\\n gpush Garray.new(c.map do |i|\\n i.is_a?(Array) ? Garray.new(i.map { |j| Gstring.new(j) })\\n ... 20:52:03 ... : Gstring.new(i)\\n end)\"\n\"c=gpop;b=gpop;a=gpop;d = a.to_s.tr(b.to_s, c.to_s); gpush Gstring.new d\"\n\"a=gpop;ms = []; a.val.times{ms.unshift gpop}; gpush Garray.new ms\"\n\"a=gpop;gpush Gint.new(Math.sqrt(a.val).to_i)\"\n\"a=gpop;gpush Gint.new(Prime.prime? a.val)\"\n\"a=gpop;gpush Garray.new(Prime.each(a.val).map { |x| Gint.new x })\"\n\"a=gpop;gpush Garray.new(Prime.each.first(a.val).map { |x| Gint.new x })\"\n\"a=gpop;gpush ... 20:52:04 ... Garray.new(Prime.prime_division(a.val).map { |x| Garray.new(x.map { |y| Gint.new(y) })})\"\n\"a=gpop;gpush Gint.new(Prime.int_from_prime_division(a.val.map { |x| x.val.map { |y| y.val } }))\"\n\"b=gpop;a=gpop;gpush ... 20:52:06 ... b.scanfold(a)\"\n\"$_3.go\\n$_27.go\\n$_45.go\\n$_27.go\\n\"\n\"$_49.go\\n$_21.go\\n$_50.go\\n\"\n\"$_49.go\\n$_21.go\\n$_6.go\\n$_50.go\\n\"\n\"$_19.go\\n\"\n\"$_6.go\\n$_19.go\\n$_19.go\\n$stack<<$_55\\n$_13.go\\n\"\n\"$_8.go\\n\"\n\"$_58.go\\n$_6.go\\n$stack<<$_59\\n$_14.go\\n\"\n\"$_13.go\\n\"\n\"$_49.go\\n$_6.go\\n$stack<<$_62\\n$_14.go\\n\"\n\"$_65.go\\n$_32.go\\n\"\n\"$_13.go\\n\"\n\"$_23.go\\n$_22.go\\n$_24.go\\n$_4.go\\n$_49.go\\n$_8.go\\n$s ... 20:52:07 aaaaah 20:52:08 uh. 20:52:08 No output. 20:52:08 ... tack<<$_68\\n$_13.go\\n\"\n\"$_5.go\\n$_65.go\\n$_21.go\\n$_8.go\\n\"\n\"$_0.go\\n$_58.go\\n$_71.go\\n$_49.go\\n$_7.go\\n$stack<<$_72\\n$_13.go\\n$_1.go\\n$_73.go\\n$_17.go\\n\"\n\"$_5.go\\n$_7.go\\n$_6.go\\n\"\n\"$_77.go\\n$_2.go\\n\"\n\"$_86.go\\n$_14.go\\n\"\n\"$_86.go\\n$_13.go\\n\"\n\"$_45.go\\n$_14.go\\n\"\n\"$_45.go\\n$_13.go\\n\"\n\"$_6.go\\n$_45.go\\n$_14.go\\n$_6.go\\n$_15.go\\n$_45.go\\n$_13.go\\n\"\n\"$_2.go\\n\"\n\"$stack<<$_98\\n$_15.go ... 20:52:08 -!- gs2bot has quit (Remote host closed the connection). 20:52:11 noooooooooodl 20:52:13 what the fuck 20:52:14 -!- ChanServ has set channel mode: +o oerjan. 20:52:18 good bot 20:52:23 "thanks gs2bot" 20:52:25 Did better than Pietbot 20:52:27 whew 20:52:30 -!- oerjan has set channel mode: -o oerjan. 20:52:32 how much did it flood 20:52:35 i killed it asap 20:52:41 well you can check the logs 20:52:46 bout thirty lines 20:53:03 it didnt flood so many lines but they were big lines 20:53:05 the one time i test it outside /query and this happens....... 20:53:23 maybe you should make it not print its source code. maybe you should write it in not ruby(??) 20:53:39 blame flagitious 20:53:41 -!- gs2bot has joined. 20:53:43 ok 20:53:46 (this is golfscript "upgraded") 20:53:47 !gs2 "2 2+" 20:53:48 "4\n" 20:53:49 fuck you flagitious 20:53:51 thanks gs2bot 20:54:01 here's how gs2bot works: 20:54:18 !gs2 "o(\{1${\(@^}%+}/]" 20:54:19 "\n" 20:54:22 thanks gs2bot 20:54:49 !gs2 "['aaaa''bbbb''cccc']n*o(\{1${\(@^}%+}/]" 20:54:49 "" 20:55:13 oh right... 20:55:32 !gs2 "['aaaa''bbbb''cccc']n*n%(\{1${\(@^}%+}/]n*" 20:55:32 "\naaaa\n\x03\x03\x03\x03\n````\n" 20:56:06 btw nooodl have you noticed your table is messed up 20:56:10 at least it looks messed up to me 20:56:18 it's extremely big 20:56:22 zoom out a bit maybe? 20:56:32 oh, it's really 2 tables 20:56:42 and one of them was put on top of the other 20:56:43 a t m the documentation is really bad 20:56:47 yes 20:56:56 what does `hatesgeo do btw 20:57:02 i forget 20:57:08 `hatesgeo 20:57:10 i remember it has to do with pinging lots of people 20:57:13 but maybe it was neutered 20:57:22 `run cat $(which hatesgeo) 20:57:23 and i forget how to use it 20:57:24 ​#!/bin/sh \ perl -n -e '/:(.*?)!.*JOIN/; $j{$1}++; END {print "$_ $j{$_};" for sort {$j{$b} <=> $j{$a}} keys %j}' $@ 20:57:39 No output. 20:57:52 !gs2 "['12345678901234567890''[][][][][][][][][][]''ABCDEFGHIJKLMNOPQRST']n* n%(\{1${\(@^}%+}/]n*" 20:57:52 "\n12345678901234567890\njohinklebmjohinklebm\n+-+-+-+-+'!#%'!;=719\n" 20:57:57 compare to http://golf.shinh.org/p.rb?XOR+Lines+FIXED 20:58:11 can i not do that 20:58:30 undo successful <-- um you were trying to undo a command that didn't actually _change_ anything. i thought that would revert something earlier instead, but it seems it had no effect. 20:58:50 why not 20:59:09 hmm, roughly how many of the voyager episodes are about finding dilithium? that plot could become boring after a couple of episodes 21:02:32 wasn't half the problem with voyager that they didn't spend nearly enough time finding dilithium 21:02:33 !blsq 1 100r@ 21:02:33 {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 3 21:02:46 !blsq 1R@ 21:02:47 Ain't nobody got time fo' dat! 21:03:07 mroman: why does the latter time out when it should be about as fast as the former? 21:04:02 mroman: aren't you doing the take inside the timeout? 21:04:06 olsner: I remember there were a lot of episodes about mysterious space anomalies 21:04:35 -!- impomatic2 has joined. 21:04:55 also what is Take in burlesque, it's not listed where i expected it 21:05:17 !blsq 1 100r@ 1R@ .* 21:05:17 Ain't nobody got time fo' dat! 21:05:30 !blsq 1 100r@ 1 100r@ .* 21:05:30 ERROR: Burlesque: (.*) Invalid arguments! 21:05:36 hm ok 21:05:50 that's weird 21:06:02 !blsq 1 100r@ 1 R@ .* 21:06:03 Ain't nobody got time fo' dat! 21:07:01 -!- impomatic2 has quit (Read error: Connection reset by peer). 21:07:29 -!- impomatic2 has joined. 21:07:30 -!- impomatic2 has quit (Client Quit). 21:07:40 !blsq 1 100r@ 1 R@ {.*}z[ 21:07:40 {{1 .*}} 21:07:43 wat 21:07:50 -!- impomatic has quit (Ping timeout: 260 seconds). 21:08:08 !blsq 1 100r@ 1 100r@ {.*}z[ 21:08:08 {{1 .*}} 21:08:33 oh 21:08:37 !blsq 1 100r@ 1 R@ {.*}Z[ 21:08:38 Ain't nobody got time fo' dat! 21:08:44 !blsq 1 100r@ 1 100r@ {.*}Z[ 21:08:45 Ain't nobody got time fo' dat! 21:08:49 !blsq 1 100r@ 1 100r@ {.+}Z[ 21:08:50 Ain't nobody got time fo' dat! 21:09:01 !gs2 74 2C 7B 2E 33 86 5C 35 86 2B 7D 2C 55 21:09:01 -!- impomatic2 has joined. 21:09:01 "233168\n" 21:09:04 euler 1 21:09:15 !blsq 1 30r@ 1 30r@ {.+}Z[ 21:09:16 {ERROR: Burlesque: (.+) Invalid arguments! {1 1} ERROR: Burlesque: (.+) Invalid 21:09:33 wtf 21:09:38 !blsq 1 30r@ 1 30r@ 21:09:38 {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 3 21:10:21 !blsq {.+} 1 30r@ 1 30r@ Z[ 21:10:21 {30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 21:10:36 ...wat 21:10:43 -!- otro_viajero7 has joined. 21:11:04 Hi Otro_viajero7 :-) 21:11:12 !blsq 1 30r@ 1 30r@ z[ 21:11:12 {{1 1} {2 2} {3 3} {4 4} {5 5} {6 6} {7 7} {8 8} {9 9} {10 10} {11 11} {12 12} { 21:11:27 !blsq {.+} 1 30r@ 1 30r@ z[\/m[ 21:11:27 {ERROR: Burlesque: (.+) Invalid arguments! {1 1} ERROR: Burlesque: (.+) Invalid 21:11:36 oh 21:11:43 oerjan: what're you trying 21:11:43 ooh, ESR just committed to C-INTERCAL (and approved a pull request too) 21:11:53 !gs2 0F "." D4 5C "5%|U" 21:11:53 "233168\n" 21:12:00 8 bytes B) 21:12:19 Hi impomatic2 21:12:30 nooodl: burlesque zipWith is _very_ unintuitive for this haskell :( 21:12:33 *-er 21:12:47 http://www.reddit.com/r/programming/comments/9x15g/programming_thought_experiment_stuck_in_a_room/ 21:12:47 what's burleseq ziwpwith 21:13:04 burlesque zipwith takes a function on blocks, not on two things 21:13:25 http://www.reddit.com/r/programming/comments/9x15g/programming_thought_experiment_stuck_in_a_room/c0ewj2c 21:13:30 !blsq 1 30r@ ^^ (++)Z[ 21:13:30 You can haz errorz 21:13:42 actually, I thought about this few times 21:13:44 !blsq {.+} 1 30r@ 1 30r@ Z] 21:13:45 {30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 21:14:15 !blsq 1 30r@ 1 30r@ {.+} Z] 21:14:15 {2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 21:14:21 ah finally 21:14:28 oh Z] is "normal people zipwith" 21:14:31 !blsq 1 30r@ 1 R@ {.+} Z] 21:14:31 {2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 21:14:50 mroman: YOUR REFERENCE MANUAL NEEDS WORK 21:15:04 (i suggest forth-style in -- out descriptions) 21:15:20 well, the zipwith thing is pretty well explained 21:15:31 how about english descriptions 21:15:33 too 21:15:35 (see: my reorganizations of the glass page) 21:16:02 also it's wrong :') 21:16:06 nooodl: um it's well explained _if you are willing to trace the code it's explained as_. that's ... ridiculous, really. 21:16:09 i guess ther'es sort of english descriptions here 21:16:25 but yeah when it's like 21:16:25 for some of them 21:16:27 "Defined as ^^^^avbx(?-)[+m[2?^++\/L[-.?/" 21:16:28 it was pretty tame stuff, though, updating the autoconf input file to a later version of automake and changing some documentation 21:17:07 -!- impomatic2 has quit (Ping timeout: 260 seconds). 21:17:32 ais523: Still, he actually pays attention? Moderately surprising. 21:17:53 man, http://golf.shinh.org/p.rb?uniq+chars is 2 bytes in GS2 21:17:57 i should really tell shinh about it 21:18:00 not really, "maintaining open-source projects" is pretty much ESR's job 21:18:11 but teeeeechnically i'd need flagitious' permission 21:18:17 Yeah, but I thought he'd not done jack on C-INTERCAL in ages. 21:18:25 pikhq: yeah but neither had anyone else 21:18:33 Fair enough. 21:19:03 mroman: your webpage on burlesque is obnoxious 21:19:12 yeah i liked the old design more 21:19:18 @tell mroman I suspect blsqbot is not doing the take to limit output size inside the timeout, which makes it time out because of parts it would otherwise never evaluate 21:19:18 Consider it noted. 21:19:19 http://mroman.ch/burlesque/cookbook/lref.html 21:19:57 -!- DHeadshot has joined. 21:19:58 nooodl: imo you should make gs2 even better???? more distinguished from golf script??? in a good???way??? 21:20:13 i don't know how!!! 21:20:14 @tell mroman e.g. there's no reason why 1R@ should timeout 21:20:14 Consider it noted. 21:20:35 i've considered a change that would make it much less stack-y 21:20:55 would it make it like j 21:20:59 j is cool 21:21:02 nope 21:21:05 golfscript is already backwards j 21:21:21 uhh how about hm 21:21:30 in j you go "print (h (g (f input)))" 21:21:36 in golfscript it's just "input f g h" 21:22:00 but they're Short for the same reasons 21:22:08 anyway the change is 21:22:43 it automatically stores things that get pushed or popped on the stack into Buffers 21:22:55 kinda like registers in vim 21:23:20 is there some kind of documentation on burlesque? 21:23:41 so you don't have to mess around with the stack at all anymore. when you push or pop some thing, you know it got saved as a variable SOMEWHERE, so you don't have to apply Stack Magic to retrieve it 21:24:08 also: seriously expand on the Mode thingy. it's so good 21:26:47 the way i've developed gs2 for the past year was just 21:26:56 look at other things, why are they short, how do i improve on that 21:27:22 but maybe if i think of some Radical New thing... i can make things even shorter 21:31:04 google translate of golf script into other languages is very disappointing. i was hoping for some amazing new name htats not like golfscript but it just seems to be transliterating it??? a pity. 2 of the best are probably welsh "sgript golff" and esperanto "golfo skripto" and i guess lithuanian is ok too "golfo scenarijus" 21:31:22 golfo skripto 21:31:25 !rot13 golf script 21:31:26 tbys fpevcg 21:31:38 fpevcg dword ptr [eax] 21:31:38 "golfoskripto" is actually valid i think 21:32:11 it'd probably just be "Golfskripto" though!! jesus christ, that lithuanian 21:32:28 japanese is cute, Gorufusukuriputo 21:33:44 kòruhusukurihûto 21:34:08 dear god. is that a romanization system people use 21:34:15 nooodl: Me only. 21:34:34 ゴフスクリプト 21:34:34 it's cute 21:34:51 Gough script 21:34:53 ^ル 21:35:07 nooodl: On the one hand, it demonstrates how kana works. On the other, nobody actually knows it. :P 21:35:50 on the third hand, it doesn't help people who don't already know how kana works at all 21:35:56 Mostly though it just looks arbitrarily exotic. 21:36:14 "ro'hîȳaku" is funny looking. 21:36:34 -!- Nisstyre has quit (Quit: Leaving). 21:36:37 last time I checked, (mount) fuji is spelled huzi on google earth 21:36:39 is that 六百? 21:36:48 Yup. 21:37:02 perfect 21:37:20 olsner: Which is perfectly valid Kunrei-shiki romanization. 21:37:33 yes, it was enlightening 21:37:55 Just weird looking because almost everyone uses Hepburn, which is the one that uninformed people can kinda-sorta pronounce right. 21:38:35 "hu" and "fu" are just different romanizations 21:38:44 yeah, hepburn vs kunrei 21:38:51 is there some kind of documentation on burlesque? <-- http://mroman.ch/burlesque/index.html 21:38:53 Yup. "hu" being Kunrei or Nihon. 21:40:12 -!- SirCmpwn has quit (Excess Flood). 21:40:55 -!- DHeadshot has quit (Ping timeout: 260 seconds). 21:42:07 pikhq: does ん become something funny in your system 21:42:12 "nn"? 21:42:17 nooodl: "nn", yes. 21:42:39 -!- SirCmpwn has joined. 21:42:41 I just tend to type the way I type into a computer all the time 21:43:17 Just in case some bastard wants to write んい or some such. :P 21:46:05 ...which is perfectly normal 21:46:47 The idea is kinda to be able to encode arbitrary sequences of kana, so. 21:47:51 You could just encode them in like, Unicode 21:48:02 Bah. 21:48:29 At least some people would understand it! 21:48:38 !blsq 1 100r@ 2B! 21:48:39 {"1" "10" "11" "100" "101" "110" "111" "1000" "1001" "1010" "1011" "1100" "1101" 21:48:39 変なローマ字が楽しかったの。 21:48:42 monqy: in greek "small code" is "mikrokodika" 21:48:49 +WQkwajDtMPww3ltXMExpfTBXMEswYzBfMG4wAg 21:49:07 there's your romanization 21:49:37 looks like romanization is more compact than utf-8 (at least for gofusukuriputo vs ゴフスクリプト) 21:49:57 nooodl: good 21:49:58 shift-jis, though! 21:50:19 ... is hell 21:50:32 olsner: Which makes a difference if... er, your computer is an 8-bit microcontroller? 21:50:45 -!- nooodl has left ("Leaving"). 21:50:47 gzip? 21:50:55 -!- nooodl has joined. 21:50:56 BOCU! 21:50:58 wow oops 21:50:59 my 4GB of ram is running out, so please use ascii 21:50:59 hi nooodl 21:51:01 hi 21:51:23 do you all know the cute trick for finding memory leaks 21:51:33 !blsq 1 100r@ 2B!{'1==fl2.%}m[ 21:51:33 Ain't nobody got time fo' dat! 21:51:38 !blsq 1 10r@ 2B!{'1==fl2.%}m[ 21:51:38 {ERROR: Burlesque: (.%) Invalid arguments! 2 ERROR: Burlesque: (L[) Invalid argu 21:51:50 oops 21:51:51 run the leaky program in a debugger and just look at randomly chosen pages of memory 21:51:59 by hypothesis, most of the memory is leaked objects 21:52:08 !blsq 1 10r@ 2B!{{'1==}fl2.%}m[ 21:52:09 {1 1 0 1 0 0 1 1 0 0} 21:52:18 !blsq 0 100r@ 2B!{{'1==}fl2.%}m[ 21:52:18 Ain't nobody got time fo' dat! 21:52:22 !blsq 0 130r@ 2B!{{'1==}fl2.%}m[ 21:52:23 Ain't nobody got time fo' dat! 21:52:27 my trick is 21:52:27 !blsq 0 30r@ 2B!{{'1==}fl2.%}m[ 21:52:27 {0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0} 21:52:29 stare at source code 21:52:31 argh 21:52:35 kmc: cute indeed v_v 21:52:38 kmc: you mean look at an arbitrary piece of memory and assume that whatever you're looking at is a memory leak? 21:52:40 (yay) 21:53:07 yes 21:53:18 that is, assume it's a leaked object 21:53:35 you still need to figure out what's leaking that kind of object 21:54:02 but you don't need any heap profiler or whatever 21:54:12 !blsq 0 30r@ 2B!{{'1==}fl2.%}m[1SH 21:54:12 "[0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0]" 21:54:14 you can do it on a running production system or a coredump after the fact 21:54:16 darn 21:54:29 -!- zzo38 has joined. 21:56:28 !blsq 0 30r@ 2B!{{'1==}fl2.%}m[0SH 21:56:29 "[0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 21:59:28 wtf 21:59:35 i can't load any websites except google... 22:03:52 can you google things 22:03:56 ye 22:03:57 s 22:04:05 but i can't actually load any of the results... 22:04:09 use google cache forever 22:05:00 !blsq 0 30r@ 2B!{{'1==}fl2.%}m[""+]{_+}r[ 22:05:00 Ain't nobody got time fo' dat! 22:05:11 !blsq 0 30r@ 2B!{{'1==}fl2.%}m[""+] 22:05:11 {"" 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0} 22:05:29 !blsq ("yay") 22:05:30 "yay" 22:07:09 !blsq 0 10r@ 2B!{{'1==}fl2.%}m[""+]{_+}r[ 22:07:09 "01101001100" 22:07:20 -!- epicmonkey has quit (Ping timeout: 260 seconds). 22:07:25 -!- Taneb has quit (Remote host closed the connection). 22:07:51 -!- Nisstyre has joined. 22:07:59 ok so basically that works but gets really short because blsqbot has a low timeout. 22:13:12 !blsq 0 30r@ 2B!{{'1==}fl2.%}m[XX 22:13:12 {0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0} 22:14:58 oh 22:15:13 !blsq 0 30r@ 2B!{{'1==}fl2.%}m[""+]\[ 22:15:13 Ain't nobody got time fo' dat! 22:15:18 !blsq 0 10r@ 2B!{{'1==}fl2.%}m[""+]\[ 22:15:18 "01101001100" 22:15:45 oerjan: what is that? 22:15:56 thue-morse sequence 22:16:30 ah 22:16:34 -!- gs2bot has quit (Remote host closed the connection). 22:18:02 !blsq 0{#s<-)n!^p}8E!#s 22:18:02 Ain't nobody got time fo' dat! 22:18:05 !blsq 0{#s<-)n!^p}4E!#s 22:18:05 {0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0} 22:18:13 !blsq 0{#s<-)n!^p}5E!#s 22:18:13 {1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0} 22:18:24 wat 22:18:55 {}5E! is "execute 5 times" 22:19:20 #s<- pushes the entire stack, )n! negates all of it, ^p adds it to the current stack 22:19:38 !blsq {1 1 1 1 0 0} #s<-)n!^p #s 22:19:38 {1 {1 1 1 1 0 0}} 22:19:45 !blsq 1 1 1 1 0 0 #s<-)n!^p #s 22:19:45 {1 1 0 0 0 0 0 0 1 1 1 1} 22:20:20 oh it also reverses it because stacks in burlesque are kinda backwards 22:20:34 -!- carado has quit (Ping timeout: 246 seconds). 22:31:22 :-D http://www.sewingandembroiderywarehouse.com/embtrb.htm 22:31:52 funnily enough that website works correctly on IE XD 22:31:59 I'm guessing they never tried viewing it on anything else 22:32:24 this doesn't seem like very good advice anyway 22:32:32 "Needle to small " "You may have to change to a larger needle" 22:32:51 THE FOUR-CORNER SEWING MACHINE CUBE 22:33:45 gregor: :-D 22:33:51 ion: I guess that site had you 22:33:53 in stitches 22:33:59 zing 22:34:07 !blsq 0{#s<-)n!^p}4E!#sim 22:34:07 110100110010110 22:34:07 ouch 22:34:19 darn initial 0 22:36:58 hmm, I wonder if that's a bug on my side or theirs, the text gets bigger and bigger for every paragraph 22:40:58 !blsq "a"sh 22:40:59 a 22:41:04 !blsq "a"sh"b"sh++ 22:41:05 ERROR: Burlesque: (++) Invalid arguments! 22:41:17 !blsq "a"sh"b"sh.+ 22:41:17 ERROR: Burlesque: (.+) Invalid arguments! 22:41:19 !blsq "a"sh"b"sh_+ 22:41:19 ERROR: Burlesque: (_+) Invalid arguments! 22:42:43 !blsq {0}{{n!}[m\[}e! 22:42:44 {1 0} 22:42:44 ion: this is so great 22:43:39 oh iv'e seen this before 22:43:43 yeah it's amazing 22:44:21 !blsq {0}{{n!}[m\[}8E! 22:44:21 Ain't nobody got time fo' dat! 22:44:24 !blsq {0}{{n!}[m\[}4E! 22:44:24 {0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0} 22:45:39 1 char shorter :P 22:47:46 !blsq {0}{{n!}[m\[}4E!)Sh++ 22:47:46 "0110100110010110" 22:50:50 !blsq {0}{{n!^^n!}[m\[}4E!)Sh++ 22:50:50 Ain't nobody got time fo' dat! 22:50:58 !blsq {0}{{n!^^n!}[m\[}e!)Sh++ 22:50:58 "010" 22:51:00 -!- nada0 has joined. 22:51:29 !blsq {0}{{n!^^^^n!}[m\[}e!)Sh++ 22:51:29 "0110" 22:51:34 !blsq {0}{{n!^^^^n!}[m\[}2E!)Sh++ 22:51:34 "0110100110010110" 22:51:40 !blsq {0}{{n!^^^^n!}[m\[}3E!)Sh++ 22:51:40 Ain't nobody got time fo' dat! 22:52:04 hi blsqbot 22:52:36 what language do you speak? 22:53:50 burlesque 22:54:58 is it a hard language to speak 22:55:32 http://mroman.ch/burlesque/lref.html 22:55:39 it is somewhat annoying 22:55:42 i recognize how that sequence is formed. is it thue-morse? 22:55:46 yes 22:56:07 although some of the annoyance is because the bot has a 0.1 millisecond timeout 22:56:20 that is short 22:56:51 why not a queue of 1sec executions that can't exceed five in length 22:56:54 that would be better right 22:57:00 -!- nada0 has quit (Quit: Leaving). 22:57:01 !blsq {0}{{{{0 1}{1 0}}\/!!}\m}e! 22:57:01 {0 1} 22:57:06 !blsq {0}{{{{0 1}{1 0}}\/!!}\m}8E! 22:57:06 Ain't nobody got time fo' dat! 22:57:08 !blsq {0}{{{{0 1}{1 0}}\/!!}\m}4E! 22:57:08 {0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0} 22:57:15 !blsq {0}{{{{0 1}{1 0}}\/!!}\m}6E! 22:57:15 {0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 22:57:26 !blsq {0}{{{{0 1 1 0}{1 0 0 1}}\/!!}\m}6E! 22:57:26 Ain't nobody got time fo' dat! 22:57:29 !blsq {0}{{{{0 1 1 0}{1 0 0 1}}\/!!}\m}4E! 22:57:29 Ain't nobody got time fo' dat! 22:57:31 !blsq {0}{{{{0 1 1 0}{1 0 0 1}}\/!!}\m}3E! 22:57:31 {0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 22:57:49 !blsq {0}{{{{0 1 1 0}{1 0 0 1}}\/!!}\m}3E!)Sh++ 22:57:49 Ain't nobody got time fo' dat! 22:57:53 !blsq {0}{{{{0 1 1 0}{1 0 0 1}}\/!!}\m}2E!)Sh++ 22:57:53 "0110100110010110" 22:58:06 it seems bloody impossible to get a longer sequence 22:58:39 quintopia: yes 23:03:53 Is this that infinite sequence that never repeats? 23:03:55 -!- impomatic2 has joined. 23:04:07 Well, not very specific 23:06:49 -!- impomatic2 has changed nick to impomatic. 23:09:01 it never repeats yes 23:09:41 it's expanding ever 1=>10 and every 0 =>01 ? 23:09:48 yet every substring is found within bounded intervals 23:09:55 doesthiswork: that's one formulation yes 23:10:10 -!- yhojeyisaac has joined. 23:10:17 (it's "uniformly recurrent") 23:10:47 -!- yhojeyisaac has left. 23:10:57 he keeps coming back 23:11:10 who's he? 23:11:19 oh nevermind 23:11:39 i don't know but he came here and wanted to chat in spanish 23:11:51 and has said very little otherwise 23:11:54 afaik 23:12:09 is spanish an esoteric language? 23:12:15 maybe 23:15:10 are there names to all the variations like 0=>01, 1=>00 ? 23:16:17 most of them aren't very interesting i think? 23:16:46 actually, that one is pretty interesting. 23:17:36 doesthiswork: automatic sequence, i think. 23:17:40 -!- fungot has quit (Ping timeout: 248 seconds). 23:18:56 > let f 0 = [0,1]; f 1 = [0,0] in map (".#"!!) $ iterate (concatMap f) [0] !! 5 23:18:57 ".#...#.#.#...#...#...#.#.#...#.#" 23:19:03 thanks 23:30:35 -!- tswett has quit (Changing host). 23:30:35 -!- tswett has joined. 23:49:53 -!- sirdancealot7 has quit (Ping timeout: 255 seconds). 23:52:46 -!- sirdancealot7 has joined. 23:53:34 -!- DHeadshot has joined.