00:00:03 well dependents kinda irrelevnat there 00:00:06 nooodl: there are better ones but i'm not going to bother 00:00:07 poo 00:00:08 So in addition to having combinators representing functions, we'll also have to have combinators representing types. 00:00:14 tswett, are you making a knotty language 00:00:17 http://nl.wikipedia.org/wiki/Lisp_(Lier) lispcon 2013 location 00:00:18 Bike: you know lisp-N+1s are shit 00:00:20 Phantom_Hoover: yes. 00:00:20 don't even try to lie 00:00:27 tswett, ooh how does it work 00:00:35 lisp-0+1, um 00:00:35 lisp-N+1s? 00:00:35 N=0? 00:00:37 elliott, er N includes 0 00:00:41 um no i'm using 00:00:46 shitty mathematicians definition of the naturals 00:00:51 when did you become ms flannagan 00:00:57 isnt it amazing how there are mathematicians who ACTUALLY BELIEVE THE NATURALS START WITH ONE 00:01:03 probably they don't even KNOW who PEANO is?? 00:01:06 Important issues, here. 00:01:07 :( 00:01:12 Phantom_Hoover: well, there's a finite state machine operating on a pointed directed unknot diagram. 00:01:19 Can't you have Z be 1? 00:01:28 erm, as in, starting point of Peanos 00:01:35 yes 00:01:39 but it's ugly and dumb 00:01:42 :-) 00:01:59 i mean for fuck's sake what sort of addition doesn't even have an additive identity 00:02:05 tswett, go on 00:02:30 nooodl, how's the Trustfuck impl going? 00:02:31 Phantom_Hoover: i see your radical tendencies peeking out :-) 00:02:36 Phantom_Hoover: how have you been feeling about the real nubmers lately 00:02:39 or should i say 00:02:40 Phantom_Hoover: the finite state machine is capable of moving the point around the diagram (but only forwards and backwards), as well as performing Reidemeister moves on the part of the diagram ahead of it. 00:02:41 the unreal numbers? 00:02:45 i kinda gave up on it 00:02:47 because almost all of them don't exist 00:02:48 Oh :( 00:02:54 i didn't know how much of my code was still correct 00:03:00 is Phantom_Hoover a finitist 00:03:05 but i also didn't feel like rewriting a new impl from scratch juuust yet 00:03:10 maybe i'll make a new one later though 00:03:12 MONQY constructivism isnt finitism 00:03:13 elliott, hey half the reasons i maintain 0 \in N are normal maths 00:03:17 Help design Trustfuck 2? 00:03:17 dont be SILLY 00:03:30 i mean starting at 1 is just dumb 00:03:43 so anyway nother silly haskell question, how's show-ing of things that have only a quantified type work? like 17 since i fucked saying things 00:03:44 * Sgeo_ hides Smalltalk and Lua from Phantom_Hoover 00:03:46 Phantom_Hoover: keep trying to convince urself chaitins constant existing is `normal' 00:03:52 does monqy believe 0 isn't \in N 00:03:54 there are perfectly fine ways to "construct" the "reals" 00:04:04 > show 17 00:04:05 nooodl: 0 \in N for reasonable values of N 00:04:05 that's my latex ineuqality sign 00:04:06 "17" 00:04:12 monqy: the computable reals are countable tho 00:04:12 Bike: I think Haskell picks a default instance. 00:04:13 nooodl: if you're talking to shit mathematicians though you have to be careful 00:04:17 Which I think is Integer in this case. 00:04:18 and all you can `construct' in eg coq 00:04:20 w/o axioms 00:04:25 tswett: Really? Boring. 00:04:26 thanks 00:04:36 (countable `externally') 00:04:39 (not ,,internally'') 00:04:40 :t 17+18 00:04:41 Num a => a 00:04:43 hm 00:04:45 istr my foundations course was absolutely terrible with 0 00:04:49 (but eg you have the thing where you can't write non-continuous functions w/o LEM) 00:04:52 sometimes it was in N, sometimes it wasn't 00:04:59 hm. what's an example of a noncomputable real 00:05:02 (b/c you cant case analysis on the reals) 00:05:05 nooodl: chaitins constant 00:05:05 nooodl: chaitin's 00:05:05 probably they don't even KNOW who PEANO is?? <-- the joke is that Peano started with 1, right? 00:05:25 Phantom_Hoover: that's pretty usual, sometimes they use Ñ and stuff and it's hilariously dumb 00:05:40 nooodl, (chaitin is a shitty example) 00:05:51 what's wrong with chaitin :( 00:05:53 oerjan: i never joke 00:05:55 i mean besides that he's crazy but 00:06:00 Phantom_Hoover: um chaitins is th ebest example 00:06:02 Here's an example: A real which cannot be described even with an infinite amount of symbols. 00:06:03 it sthe maximally hurty 00:06:05 Set a = 0 and b = 1, and then let R be a sequence containing all computable real numbers. 00:06:10 Sgeo_: ??? 00:06:11 chaitin's looks like a good example. i expected something halting problem-y 00:06:17 theres a bijection between reals and potentially infinite streams of bits 00:06:31 specker sequences are much better 00:06:34 * Sgeo_ is a derp 00:06:40 Pop values x from R until a < x < b, then set a := x. Pop values y from R until a < y < b, then set b := y. Repeat forever. 00:07:00 Correct example: A real which cannot be described with any finite amount of symbols 00:07:01 Both a and b will approach the same uncomputable number. 00:07:12 Sgeo_: That's undefinable, not uncomputable. 00:07:29 If it's undefinable, it's uncomputable 00:07:37 Yes, but not the converse. 00:07:50 "Undefinable" has the unfortunate property of being undefinable. 00:07:50 Sgeo_, that is several times shittier than chaitin 00:08:04 nooodl, also there are functions which grow faster than any computable function 00:08:05 i thought making a sequence of all real numbers was impossible! computable or not 00:08:23 if by "a sequence" you mean "a bijection with the naturals" then yes 00:08:29 the computable reals are a subset of turing machines, or whatever other tc system you want 00:08:43 nooodl: there is indeed no sequence that contains all real numbers. However, there is a sequence that contains all computable real numbers. 00:08:51 so you can count them, plus a bunch of TMs which aren't computable reals 00:09:08 but you can't actually tell if a given element is a CR without the halting problem 00:09:39 Bike: haskell has a default declaration which is used to pick default instances for things, the default default is default (Integer, Double) hth. also ghc has an extension to make it apply in more cases, and also prepends () to the default types. 00:09:58 wait that actually does help? what the fuck what is this 00:10:07 -!- sebbu has joined. 00:10:10 (a, b, c) really ought to be syntactic sugar for (a, (b, c)). 00:10:24 nooodl: you can well-order the rael numbers :-) 00:10:25 -!- sebbu has quit (Changing host). 00:10:25 -!- sebbu has joined. 00:10:42 tswett, tell that to elliott, who disagrees 00:11:10 yes make me into the absolute hub for not thinking that specific kind of hlist desugaring is a bad idea 00:11:13 ill never live it down 00:11:16 "the computable reals are a subset of turing machines" hmmm 00:11:43 nooodl: how about this: "the set of all Turing machines that output real numbers is a subset of the set of all Turing machines." 00:11:57 nooodl, a cr is basically a TM implementing a function N -> Q that converges 00:12:14 And given a Turing machine that outputs a real number, there is an obvious real number corresponding to it. 00:13:23 All right. So my language, as I'm currently imagining it, currently only has "if" statements for flow control. 00:13:28 yikes now i'm thinking about things 00:13:32 00:08:05 i thought making a sequence of all real numbers was impossible! computable or not 00:13:40 note that the computable reals are a subset of the reals like the naturals are a subset of the reals 00:13:45 and i'm sure you believe you can make a sequence of rationals 00:13:50 (the set of computable reals is countable) 00:13:59 I can make a sequence of all real numbers that are either two or pi 00:14:23 2, pi, pi, 2, pi, 2, 2, pi, pi, 2, 2, pi, 2, pi, pi, 2, pi, 2, 2, pi, 2, pi, pi, 2, 2, pi, pi, 2, pi, 2, 2, pi, ... 00:15:18 Let's condense that sequence. It alternates between 2 and pi, using each one the following number of times: 1, 2, 1, 1, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 1, 2, 2, 2, 1, 1, 2, 1, ... 00:15:22 No actually it's just 2 and pi, repeating is silly 00:15:42 Which, in turn, alternates between 1 and 2, using each one the following number of times: 1, 1, 2, 3, 2, 1, 2, 1, 2, 3, 2, 1, ... 00:15:46 nooodl: you can well-order the rael numbers :-) <-- unidentified well-founded ordering 00:16:10 oerjan: yes. but only with extensional choice 00:16:10 Which, if you ignore the beginning 1 and drop all the 2s (since every other number, apart from the beginning 1, is a 2), you get this: 1, 3, 1, 1, 3, 1, ... 00:16:14 "[...] implementing a function N -> Q that converges" i still don't see how that represents a computable real :( 00:16:20 wait 00:16:21 (i.e., the choice that is a theorem (not axiom) of type theory does not give it) 00:16:27 o.O at parsers parsing things other than strings 00:16:38 nooodl, it's a sequence that approaches that real 00:16:39 (and extensional choice implies LEM, iirc) 00:16:39 the real value is just f(0) + f(1) + f(2) + ...? 00:16:42 oh 00:17:02 gotcha 00:17:16 the upshot is, almost all the reals are impossible to define in any meaningful way 00:17:17 And that, in turn, alternates between 1 and 3, using each one the following number of times: 1, 1, 2, 1, ... 00:17:37 and indeed this is true even if you're being nonconstructive 00:18:01 oerjan: yes. but only with extensional choice <-- you missed the pun on your misspelling hth 00:18:13 All right. So my language, as I'm currently imagining it, currently only has "if" statements for flow control. This makes the language definitely not Turing-complete; you can, in O(n) time, look at a program and place an upper bound on the length of time for which it will run. 00:18:30 is this still the knot one 00:18:34 Assuming you can perform arithmetic in O(1) time. 00:18:35 Phantom_Hoover: yup. 00:18:59 :t (<+>) 00:19:01 Ambiguous occurrence `<+>' 00:19:01 It could refer to either `Control.Arrow.<+>', 00:19:01 imported from `Control.Arrow' at State/L.hs:5:1-20 00:19:04 oerjan: oh that was rly stupid 00:19:06 you suck imo 00:19:38 So I need some way to go back and loop. 00:20:08 tswett: btw why didn't you use the kolakoski sequence above hth 00:20:10 augh 00:20:29 tswett, why did you have to say all the stuff about it while like 2 other discussions were going on 00:20:32 cocacola sequence 00:20:51 Phantom_Hoover: nobody told me not to. 00:21:35 elliott: thx 00:22:07 ^ul (12)S(*a(~:)~*^~):((1)S)~*~((2)S:*)~*:(~:()~)~*^(a(:^)*~a(*()~)~*^~^):^ 00:22:09 122112122122112112212112122112112122122112122121121122122112122122112112122121122122112122122112112212112122122112112122112112212112112212211212212112212212112112212211212212112112212112122112112122121122122112122122112112122112112212212112122112112212112112212212112122112112122122112122121121122122121122122112122122112112 ...too much output! 00:22:42 tswett, so wait, what controls the states for the fsm 00:22:53 the structure of the knot ahead? 00:25:25 > let kola = [1] ++ concat $ zipWith replicate kola $ cycle [2,1] in take 20 kola 00:25:27 Phantom_Hoover: yes. 00:25:27 Couldn't match expected type `[t0]' 00:25:27 with actual type `[[a0]] -... 00:25:36 > let kola = [1] ++ (concat $ zipWith replicate kola $ cycle [2,1]) in take 20 kola 00:25:38 [1,2,1,1,2,1,2,2,1,2,2,1,1,2,1,1,2,2,1,2] 00:25:54 nooodl: you don't need to use take in lambdabot 00:26:03 boo. it gets the start wrong somehow 00:26:03 it cuts off by itself 00:26:11 nooodl: you're not removing the initial 1. 00:26:22 i "realized" while out that it might be more interesting that constructivists would deny the existence of say the set of subsets of the naturals rather than reals but this is probably because i don't yet truly know how fucked up computable analysis is 00:26:30 > let kola = [1,2] ++ (concat $ zipWith replicate (drop 2 kola) $ cycle [2,1]) in take 20 kola 00:26:34 mueval-core: Time limit exceeded 00:26:35 Mmmm. 00:26:42 Maybe that's not the problem. 00:26:48 Bike: have you noticed that powersets are scary 00:27:00 well they only drove cantor insane 00:27:17 power sets are terrifying 00:27:28 * Bike was thinking about the set of all subsets of a set not containing an element of the set earlier, and it got tied up with this 00:27:40 i read a paper once on "power types" 00:27:41 > let kola@(_:ks) = [1] ++ (concat $ zipWith replicate kola $ cycle [2,1]) in 1:2:ks 00:27:43 [1,2,2,1,1,2,1,2,2,1,2,2,1,1,2,1,1,2,2,1,2,1,1,2,1,2,2,1,1,2,1,1,2,1,2,2,1,... 00:27:46 now that was some good shit 00:27:49 how unsatisfying 00:29:10 * Bike was thinking about the set of all subsets of a set not containing an element of the set earlier, and it got tied up with this 00:29:19 hi 00:29:20 isn't that just... P(S\x) 00:29:25 yes 00:29:40 Oh. Not containing a *given* element of the set. 00:29:43 oh huh kolakoski is A000002 00:29:47 As opposed to not containing *any* element of the set. 00:29:58 wouldn't that just be empty 00:30:07 It's like A000001, except posterior. 00:30:11 Bike: it would be {{}}, yeah. 00:30:17 > fix(([1,2]++).drop 2.concat.zipWith(flip replicate)(cycle[1,2])) 00:30:19 [1,2,2,1,1,2,1,2,2,1,2,2,1,1,2,1,1,2,2,1,2,1,1,2,1,2,2,1,1,2,1,1,2,1,2,2,1,... 00:31:15 Trivia: "sword" is not a subword of "subword". 00:31:26 Do people use Parsec when making stuff for QQ stuff in Haskell? 00:31:47 Q: why are you doing QQ stuff 00:32:02 just making sure you're not hopped up on macros again 00:32:07 Q: ¿q s qq? 00:32:16 tswett: good q 00:32:28 Yesod uses it, right? 00:32:39 ugh. Q: how do math people write that a function returns, for example, a set of reals 00:32:49 powerset 00:33:11 i think ive also seen subset 00:33:11 thanks 00:33:12 but 00:33:15 thats weird 00:33:29 powerset is what i see most of the time 00:34:05 wow crazy people use ℙ for powerset according to wikipedia 00:34:33 solely to piss off kmc no doubt 00:34:40 ℙ(ℝ) 00:34:47 lol. 00:35:08 dont use blackbord bold for powerset.... 00:35:08 ℙ(ℙ) "power set of prime set" 00:35:12 then there's the weirstrass P function 00:35:31 then there's the weirstrass function 00:35:40 math's notation is such a fucking trainwreck at times 00:35:41 i think mathcal is the proper font to use? i'm fairly certain i've seen mathsf and mathscr though 00:36:20 fortunately there's not much confusion with the latter because the weirstrass function is never actually used as a function 00:36:45 nooodl: at times/most of the time really 00:36:49 "at times" 00:37:08 well sometimes it's really good & clever 00:37:13 What does the "sf" in mathsf stand for? 00:37:19 sans serif 00:37:27 nooodl, it helps if you remember that it's still mostly written by hand 00:37:30 nooodl: like.... 00:37:39 numbers 00:37:49 "This combinator is provided for compatibility with Parsec. Attoparsec parsers always backtrack on failure." 00:37:51 * Sgeo_ likes that 00:38:01 have you ever looked at a 9 00:38:05 and there are a load of ways to write any given symbols 00:38:05 like really looked at a 9 00:38:20 its a gargoyle 00:38:22 9 is pretty heck but i love 7 so it makes up for it 00:38:22 Like, an actual 9, or a numeral 9? 00:38:25 4 is p.good too 00:38:34 7's a good numeral 00:38:35 2 is my favourite 00:38:41 2 is p.good too 00:38:43 surely someone out there has had the zany idea to reinvent the notation for Everything 00:38:44 except you have to dash the 7 00:38:47 for ambiguity reasons 00:38:49 and then it looks not so good 00:38:52 i always dash my 7s 00:38:52 because those times when you nail it and it has an elegant curl in the tail are the best things ever 00:38:55 i love dashes on 7s 00:38:57 i hate 1 because you need to make it all fancy to avoid ambiguity 00:39:00 nooodl: you have no idea 00:39:01 i also give my 7s cute little hooks 00:39:05 and its also the caues of the 7 Ambiguity Problem 00:39:12 2 is pgood imo 00:39:16 sometimes my 7s look like my ts, or maybe it's more that my ts look like my 7s 00:39:17 5 is quite nice too 00:39:20 also i wrote out a 4 the other day and one of my coworkers stopped me for two minutes to ask me about how i wrote it 00:39:25 "i've never seen someone write a 4 like that" 00:39:26 monqy: whats your handwriting look like 00:39:26 jesus. i write my 2s like a normal person and it makes them look a lot like Zs or zs 00:39:38 elliott: hm 00:39:41 i like how the variable x looks but im so bad at writing it 00:39:44 so i lovehate it?? 00:39:53 x is christian propaganda 00:39:57 i came up with the perfect way of writing x 00:40:01 i was so proud 00:40:05 my x is literally an x 00:40:08 two lines 00:40:15 gross nooodl 00:40:16 real gross 00:40:17 it's like )/( 00:40:18 maximal gross 00:40:24 you're disgusting, rectify yourself 00:40:41 but once you get the hang of it the / runs together and it looks great 00:41:19 this is the only picture of my math handwriting i've got https://dl.dropbox.com/u/15495351/snow/IMAG0043.jpg 00:41:38 which is probably 1 more picture than the average person 00:42:06 elliott already knows what my "math handwriting" looks like 00:42:22 elliott: i have a few copeies of me trying to handwrite on my tablet from a while ago...there's an aspect ratio problem which messes up my hand-eye coordination so it's kind of eugh 00:42:37 dumb question again, how do i write "numLongChains long max = length $ longChains long max" in that fancyass pointless style 00:42:42 i have this thing too which is normal writing and it's very real 00:42:45 https://dl.dropbox.com/u/15495351/snow/IMAG0046.jpg 00:42:47 my handwriting is an abomination 00:42:55 but it looks quite nice locally 00:43:07 Bike, you can ask lambdabot 00:43:08 -!- Nisstyre-laptop has joined. 00:43:17 @pl numLongChains long max = length $ longChains long max 00:43:17 nvm figured it out 00:43:17 numLongChains = (length .) . longChains 00:43:19 Bike: numLongChains = length .: longChains 00:43:24 love you dots 00:43:25 note how nooodl double-spaces his work and sets it all out neatly 00:43:34 this is wasteful and capitalist 00:43:37 i use latex for math 00:43:45 writing is for losers 00:43:59 monqy: i can't do that at school!!! 00:44:17 wait is this linguistics 00:44:21 elliott: gosh i have 6 pictures of me trying to handwrite and they're all sorta different 00:44:35 elliott: i forget what i did differently each time except for handwriting6.png 00:44:37 i want to see monqys trying to handwrite 00:44:43 i want to use latex but why does it have to have all that madness with \doctype and headings and everything 00:44:52 btw i have worse handwriting than any of you 00:44:59 latex is literally the worst thing 00:45:04 that i've ever used 00:45:12 nooodl: dont use (.:) 00:45:13 https://dl.dropbox.com/u/13786158/handwriting.png 00:45:14 https://dl.dropbox.com/u/13786158/handwriting2.png 00:45:15 https://dl.dropbox.com/u/13786158/handwriting23.png 00:45:16 dont tell people to use (.:) 00:45:16 er 00:45:19 https://dl.dropbox.com/u/13786158/handwriting3.png 00:45:20 cry instead........... 00:45:21 https://dl.dropbox.com/u/13786158/handwriting4.png 00:45:24 https://dl.dropbox.com/u/13786158/handwriting5.png 00:45:26 https://dl.dropbox.com/u/13786158/handwriting6.png 00:45:29 there thats all of them 00:45:30 are you going to tell me to use (.).(.) 00:45:31 enjoy 00:45:33 if so i'm going to cry 00:45:34 (handwriting23 does not exist) 00:45:40 im going to tell you to add a fuckn point 00:45:43 dont use (.).(.)............................... 00:45:52 what the heck is .: 00:45:53 -!- md_5 has quit (Ping timeout: 248 seconds). 00:45:58 Bike: it doesnt exist 00:46:00 sry 00:46:02 holy shit. monqy's handwriting 00:46:02 monqy: shit your handwriting is nice 00:46:02 k 00:46:03 can i rent it out 00:46:03 is so good 00:46:07 @src (.:) 00:46:07 Source not found. Do you think like you type? 00:46:16 monqy 00:46:20 Bike, it exists, but may be considered to be an excessive use of pointfree style 00:46:21 monqy 00:46:22 you dot your j 00:46:24 with a circle 00:46:26 go fuck yourself 00:46:27 well i dont like the unfilled dots 00:46:29 but apart from that 00:46:36 imo dijkstra has the best handwriting 00:46:40 imo monqy should dot his js with a heart 00:46:41 so you might as well give up now 00:46:42 when im writing with a real pen i think i use normal dots 00:46:48 here's a little "latex gem" 00:46:48 Although "exists" as in, "well-known", not "standard" 00:46:49 \chemname{\chemfig{C([2]-\lewis{024,Cl})([6]-\lewis{046,Cl})([:-150]-\lewis{357,Cl})([:-30]-\lewis{157,Cl})}}{Koolstoftetrachloride} 00:46:50 but with tablets i cant resist 00:46:54 @hoogle (.:) 00:46:54 No results found 00:47:14 U+24A38 COMBINING HEART ABOVE 00:47:27 Oh hey Aeson uses .: for something else 00:47:36 nooodl, well be fair 00:47:40 my hand writing is worse than nooodls by far tho 00:47:55 that's for a diagram, however you represent that textually it's going to be awkward 00:48:09 elliott, do you even need to write??? 00:48:20 i can write really neatly if i try 00:48:21 like my handwriting is honestly a 6 year olds 00:48:24 but i don't ever 00:48:30 its an awful scrawl 00:48:31 elliott: my handwriting is a 3 years olds?? 00:48:48 Cl 00:48:49 shachaf: do you even have any proof all i see is you syaing your handwriting is so much worse than everyone else's!! 00:48:53 >C-Cl 00:48:54 Cl 00:48:58 elliott: do you have proof!! 00:49:01 what now Phantom_Hoover!!!!! 00:49:25 I can write in cursive, but only words that only contain the letters a, e, h, i, n, o, s, and t. 00:49:40 There are a bunch of such words. 00:49:45 nooodl, good luck writing a transparent parser for that 00:49:55 transparser 00:50:08 I have a little sheet of paper on which I've written "anaesthesia antiatheist assassination ensheathe hastiness heathenishness hesitation honestness ..." 00:50:15 Sgeo_: you know, I think any function can be thought of as a parser. 00:50:18 "you don't need to parse pure beauty any further" 00:50:18 im going to try handwriting again 00:50:29 the entire point of latex is that you give it a general representation and leave the typesetting details to it 00:50:45 i think dijkstras handwriting is still a bit better than monqys 00:50:45 PArrows is unmaintained :( 00:50:48 mostly since its smaller 00:50:57 my handwriting is smaller than that irl 00:51:00 Phantom_Hoover: fsvo all of that 00:51:03 -!- md_5 has joined. 00:51:04 but my tablet setup is miserable 00:51:09 and i dont have a scanner or anything 00:51:10 Help what is handwriting 00:51:19 monqy: by smaller i mean... less fussy mainly??? as in less ... "area" 00:51:22 i stole my f's from dijkstra 00:51:22 > " 00:51:22 " 00:51:24 :1:2: 00:51:24 lexical error in string/character literal at end of input 00:51:25 i dont know how to express the meaning 00:51:27 ah 00:51:28 Hmm. 00:51:30 but they don't look like dijkstra f's anymore... 00:51:33 yeah my handwriting is pretty fussy 00:51:46 > "\ 00:51:47 \" 00:51:48 is there a good nooodl f in that image 00:51:48 :1:3: 00:51:48 unexpected end-of-file in string/character literal at end ... 00:52:04 > "\ \" 00:52:06 "" 00:52:22 yeah https://dl.dropbox.com/u/15495351/snow/IMAG0046.jpg there's "koffie" near the bottom right corner 00:52:31 > ":\ \-\&)" 00:52:32 ":-)" 00:52:41 elliott: if you come to america ill show you my handwriting 00:52:43 nooodl: all these words are spelled wrong 00:52:49 > "ele\ \phant" 00:52:51 and they don't mean anything? 00:52:51 "elephant" 00:52:59 you must get awful grades in english 00:53:07 whats your favorite word on this page elliott 00:53:19 is that one "misbrain" 00:53:26 i like "ziet" 00:53:28 or maybe the one that looks like "groudshroffen" 00:53:30 it's "misbruik" :( 00:53:40 "holouie"? 00:53:44 ziet is good too yes 00:53:45 what does ziet mean 00:53:46 "grondstoffen", "kolonie" 00:53:51 "ziet" means "sees" 00:54:00 "Suiher"? 00:54:06 ziet seems like the kind of word that always wants to have a ! after it 00:54:07 Ziet! 00:54:10 that's "suiker" (sugar) 00:54:26 "aanshelling"? 00:54:31 elliott: that's actually some kind of old-fashioned imperative 00:54:52 "aanstelling" i don't even know how to translate that 00:54:56 is it like 00:54:58 "Observe!!!" 00:55:14 That's not a "t", though, that's an "h". 00:55:16 Observereth Thee 00:55:17 Aanshelling. 00:55:39 that's just because i'm bad at writing letters :( 00:56:22 i can see what happened, though. wanted to write a 't', and then i had to lower my pen a bit to start writing the 'e', but i didn't lift it from the paper, whoops 00:57:06 ziettttttttttttttttttttttttttt!!!! 00:57:39 > fix(concat.(zipWith.flip.sequence$sequence[const pure,(tail.).replicate])(cycle[1,2])) 00:57:40 Couldn't match expected type `a0 -> c0' with actual type `[a1]' 00:57:50 i wrote "longChains long max = filter ((> long) . length) (map chain [1..max])". is my "style" an insult to all that is holy or 00:57:50 no way that would work on first try 00:57:51 monqy: i just thought of a really awful pun 00:57:51 aanstelling is "appointment, commission, nomination" 00:57:53 do you want to hear it 00:57:57 elliott: can i hear it 00:58:00 no 00:58:04 oh 00:58:11 can i; did i inspire it 00:58:13 i like awful puns..... 00:58:15 :t sequence$sequence[const pure,(tail.).replicate] 00:58:17 Couldn't match expected type `[a0]' with actual type `b0 -> a1' 00:58:17 In the return type of a call of `const' 00:58:17 Probable cause: `const' is applied to too few arguments 00:58:32 :t sequence$sequence[const pure] 00:58:33 Couldn't match expected type `[a0]' with actual type `b0 -> a1' 00:58:33 In the return type of a call of `const' 00:58:33 Probable cause: `const' is applied to too few arguments 00:58:36 ooh http://nl.wiktionary.org/wiki/ziet this page actually has "Ziet!" on it 00:58:39 that's great 00:58:39 hmph 00:59:05 :t sequence$sequence[] 00:59:07 [[a]] 00:59:21 nooodl: you probably want en.wiktionary 00:59:26 foo.wiktionary.org means entries are in language foo 00:59:29 they all cover all languages 00:59:37 whats the pun 00:59:38 tho en.wiktionary's ziet doesn't have ziet! 00:59:40 so never mind??? 00:59:43 monqy: ok here it is 00:59:46 q: what did the great film written by a mathematician have? 00:59:49 a: a super script 00:59:52 en.wiktionary.org covers less dutch stuff :( 00:59:53 :| 00:59:53 : D 01:00:01 @hoogle (Functor f) => (a -> b -> a) -> a -> f b -> a 01:00:02 Data.Foldable foldl :: Foldable t => (a -> b -> a) -> a -> t b -> a 01:00:02 Data.Foldable foldl' :: Foldable t => (a -> b -> a) -> a -> t b -> a 01:00:03 Data.IntMap foldl :: (a -> b -> a) -> a -> IntMap b -> a 01:00:07 you know you love it 01:00:10 oh 01:00:12 i'm smiling pretty hard at elliott's pun 01:01:01 Bike: how would "that work" exactly 01:01:37 how would ""what work"" 01:01:39 guess it wouldn't 01:01:50 folds over functors 01:02:01 oh 01:02:06 Bike: but Functor f? 01:02:14 what? 01:02:21 well did you mean Foldable 01:02:29 Functor only provides (a -> b) -> f a -> f b 01:02:33 so i'm not sure what your operation is meant to do 01:02:34 yes i see 01:02:45 it is meant to go "huh [] is a functor isn't it!!" because 01:03:51 https://dl.dropbox.com/u/13786158/handwriting-hell.png i tried a few takes 01:03:59 just now 01:04:01 100% modern 01:04:09 good lord 01:04:09 monqy's handwriting is graffiti 01:04:13 it's so amazing 01:04:46 if i'm trying to make it particularly legible it gets boring 01:05:02 that's the handwriting dilemma! 01:05:55 hm, i have to specify Prelude.foldl or Data.Foldable.foldl even if i'm just folding a list so it's the same 01:06:37 > fix(concat.zipWith(\x n -> x:replicate(n-1)x)(cycle[1,2])) 01:06:40 mueval-core: Time limit exceeded 01:06:44 > fix(concat.zipWith(\x n -> x:replicate(n-1)x)(cycle[1,2])) 01:06:48 mueval-core: Time limit exceeded 01:06:52 > "hi" 01:06:53 "hi" 01:07:09 possibly something is wrong here 01:07:14 where's fix again, i want fix 01:07:16 oh right 01:07:23 @hoogle fix 01:07:23 Control.Monad.Fix module Control.Monad.Fix 01:07:23 Data.Fixed module Data.Fixed 01:07:23 Data.Function fix :: (a -> a) -> a 01:07:28 rad 01:09:30 hm, i have to specify Prelude.foldl or Data.Foldable.foldl even if i'm just folding a list so it's the same 01:09:39 you're meant to import Foldable qualified, or hide the functions from Prelude 01:09:58 i'm sure, i was just wondering if it would subsume the prelude definition 01:10:11 monqy: your handwriting got smudgier 01:10:14 did you leave it out in the rain 01:10:34 * tswett ponders Tweeling. 01:10:41 elliott: gimp update =/ 01:10:50 That type II Reidemeister move thing is going to be difficult to realize. 01:10:53 it got a new pen tool interface 01:11:13 or do you mean the shapes of the letters 01:11:16 it might have gotten smudgier 01:11:33 i mean the shading 01:11:39 oh yeah that's gimp 01:11:53 -!- augur has joined. 01:24:32 `log *forcefield* 01:24:35 grep: nothing to repeat 01:24:52 `log .*forcefield.*{{ 01:25:17 you don't need the first .* 01:25:24 No output. 01:25:28 hm 01:25:33 k nevermind 01:25:49 `log forcefield 01:25:57 2009-10-11.txt:06:42:55: * ehird erects anti-swatting forcefield around himself 01:26:15 `pastelog forcefield 01:26:32 http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.5952 01:26:36 * oerjan gives elliott a very delayed swat -----### 01:26:49 hehe 01:27:42 is elliott a fly 01:27:47 wait, maybe it is not right to punish elliott for that terrible 2009 person 01:27:47 actually i'm looking for the cats with the heart shaped eyes^^ 01:28:01 nooodl: not to my knowledge. 01:28:02 (char) 01:29:18 punishing cannot be elliott 01:29:28 punishing elliott cannot be wrong 01:29:30 this way 01:29:32 "impomatic, why would the switch to the forcefield be inside the asylum?" good lo 01:29:46 " ⌇⌇forcefields⌇⌇" definitely a good log 01:30:01 that must my cats :( 01:30:08 _someone_ hasn't set up their charset properly. 01:30:09 they didn't make it 01:30:11 what's a cat 01:31:02 http://esolangs.org/wiki/CAT 01:31:11 it's just an object in the something of small somethings 01:32:20 `? monoid 01:32:22 Monoids are just categories with a single object. 01:32:37 `? category 01:32:39 Categories are just a special case of bicategories. 01:32:51 `? object 01:32:53 An object is just something in a category. 01:34:18 -!- madbr has joined. 01:37:26 ^ord ⌇⌇forcefields⌇⌇ 01:37:26 195 162 197 146 226 128 161 195 162 197 146 226 128 161 102 111 114 99 101 102 105 101 108 100 115 195 162 197 146 226 128 161 195 162 197 146 226 128 161 01:39:58 how can do boolean bitwise comparison on two integers in haskell ..bytes for example 01:40:41 ^ord A 01:40:41 65 01:41:11 ^ord (B && A) 01:41:11 40 66 32 38 38 32 65 41 01:41:21 ^ord (B & A) 01:41:21 40 66 32 38 32 65 41 01:41:32 ^ord (B|A) 01:41:33 40 66 124 65 41 01:41:49 ^ord ("B"|"A") 01:41:50 40 34 66 34 124 34 65 34 41 01:42:03 ^ord (65|64) 01:42:03 40 54 53 124 54 52 41 01:42:26 > 65||64 01:42:28 No instance for (GHC.Num.Num GHC.Types.Bool) 01:42:28 arising from the literal `6... 01:42:43 > 65 .|. 64 01:42:44 @let a = ( 65||64 ) 01:42:45 65 01:42:45 :2:7: 01:42:45 No instance for (Num Bool) 01:42:45 arising from the literal... 01:42:56 > 65 .&. 64 01:42:58 64 01:43:03 k 01:44:21 ^help 01:44:22 ^ ; ^def ; ^show [command]; lang=bf/ul, code=text/str:N; ^str 0-9 get/set/add [text]; ^style [style]; ^bool 01:44:41 ^bool 8 01:44:49 ^help bool 01:44:49 ^ ; ^def ; ^show [command]; lang=bf/ul, code=text/str:N; ^str 0-9 get/set/add [text]; ^style [style]; ^bool 01:44:55 ^str 0 get 01:44:55 +++++++++++++++[>++++++++>++++>+++++++>+++++++<<<<-]>>++++++.>++++++.<<----.>----------------------------------.<----.>>+++.<<-----------.+.>>>.<++++++.<<-.>>-----.<++++++++++++++++++++++++++.--------------------------.<+.>>++.>+++++.<<<+.>>>+.<-.<.>----------------------.<++++++++++++.------------.>----------------------.<<------.>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.>>----.<---.<++++.++++++++.>- 01:45:11 v. elegant 01:45:57 ^str 1 get 01:45:57 >,[>,]<[<]>[<++++[>--------<-]+>-[-------[--[<+++[>----<-]+>[< 01:46:04 wow 01:46:38 ^bf str:0 01:49:02 ^show prefixes 01:49:02 +15[>+8>+4>+7>+7<4-]>2+6.>+6.<2-4.>-34.<-4.>2+3.<2-11.+.>3.<+6.<2-.>2-5.<+26.-26.<+.>2+2.>+5.<3+.>3+.<-.<.>-22.<+12.-12.>-22.<2-6.>+67.>2-4.<-3.<+4.+8.>-37.<2-.>2+12.-12.<2-27.>3-4.<2.<-3.>.+5.>.+.+11.-12.>+5.-11.+12.-11.+2.-3.+.+13.<2.>.<2-2.>2.>.<2-2.>.>-48.-19.<.<+2.<+40.>+.-.+.<-6.+13.>-.>.>-.+.<.<2-2.-8.>.<-4.>-.<+4.+11.>-10.-8.>.<2+14.>3.<.<+9.>+67.<+5.-..>2-12.+9.+3.-12.<-.<-2.<-11.-2.>2.+13.<2+3.>3.+. 01:49:30 str:0 contains the code for prefixes 01:50:57 it is possible the str:n syntax only works in ^def, not plain ^bf 01:51:23 @hoogle & 01:51:24 Prelude (&&) :: Bool -> Bool -> Bool 01:51:24 Data.Bool (&&) :: Bool -> Bool -> Bool 01:51:24 Control.Arrow (&&&) :: Arrow a => a b c -> a b c' -> a b (c, c') 01:51:34 huh, why no & anywhere? 01:51:44 it's in Data.Lens now :) 01:51:49 er, *Control.Lens 01:52:02 it's just flip ($), anyway 01:52:29 i just meant the identifier. i would have expected & instead of .&., that sort of thing 01:52:46 i don't know why no one used it before 01:52:51 oh wait 01:53:07 it's probably because they couldn't use | as that's syntax 01:53:18 so they made it .&. by analogy with .|. 01:53:30 && || 01:53:42 would be familiar at least 01:53:49 yes 01:54:00 oh, right 01:54:06 hagb4rd: those are the booleans. 01:54:12 haskell is basically just glorified C right 01:54:23 BASICALLY 01:54:35 :t (<&>) 01:54:36 -!- nooodl has quit (Ping timeout: 272 seconds). 01:54:36 Functor f => f a -> (a -> b) -> f b 01:54:45 wat 01:54:48 cool 01:54:51 > (0$0<&>) 01:54:52 > 64>>1 01:54:53 The operator `Control.Lens.Combinators.<&>' [infixl 1] of a section 01:54:53 mu... 01:54:54 can't find file: L.hs 01:55:01 > A>>1 01:55:04 Not in scope: data constructor `A' 01:55:04 > 64 `shiftL` 1 01:55:06 128 01:55:11 have you considered: documentation 01:55:32 no 01:55:57 behold http://hackage.haskell.org/packages/archive/base/4.2.0.1/doc/html/Data-Bits.html 01:55:59 i'm not really out for sth 01:56:39 maybe for some conversation 01:56:43 MAYBE 01:57:12 -!- carado has quit (Ping timeout: 256 seconds). 01:57:15 what's sth 01:57:29 conversation is such a dirty word 01:57:32 btw 01:57:42 :t ($$) 01:57:43 Doc -> Doc -> Doc 01:57:50 doc 01:58:14 oh right 01:58:31 stupid operator, does some silly vertical merging 01:58:47 unlike the intuitive $+$ version 01:59:27 > text "like" $$ nest 4 (text "this") -- maybe 01:59:29 like 01:59:29 this 01:59:34 hmph 01:59:39 > text "like" $$ nest 5 (text "this") -- maybe 01:59:39 deep 01:59:40 like this 01:59:51 seems it wants at least a space 01:59:56 > text "like" $+$ nest 5 (text "this") -- maybe 01:59:57 like 01:59:57 this 02:00:22 (lambdabot has an extra space on the first line) 02:03:16 -!- carado has joined. 02:08:26 i can understand that they might want $$ for haskell do blocks and the like, but not making it the default vertical combiner. 02:09:40 -!- carado has quit (Ping timeout: 256 seconds). 02:39:51 -!- copumpkin has quit (Ping timeout: 276 seconds). 02:40:22 -!- copumpkin has joined. 02:50:27 > 2^31 02:50:29 2147483648 02:50:39 > 2^32 `div` 3 02:50:41 1431655765 02:52:04 > length . filter (< 2^30) . take 1000 . randomRS (0,1431655765) $ mkStdGen 42 02:52:06 Not in scope: `randomRS' 02:52:06 Perhaps you meant one of these: 02:52:06 `randomR' (imp... 02:52:12 > length . filter (< 2^30) . take 1000 . randomRs (0,1431655765) $ mkStdGen 42 02:52:15 662 02:52:41 > 2^30/1431655766 * 1000 02:52:42 749.999999650754 02:52:52 * oerjan whistles innocently 02:53:26 oh wait 02:53:48 > length . filter (< 1431655765 `div` 2) . take 1000 . randomRs (0,1431655765) $ mkStdGen 42 02:53:50 332 02:55:08 > genRange (undefined :: StdGen) 02:55:10 (0,2147483562) 02:56:02 > 2 * genRange (undefined :: StdGen) `div` 3 02:56:04 No instance for (GHC.Real.Integral (GHC.Types.Int, GHC.Types.Int)) 02:56:04 arisi... 02:56:06 oops 02:56:16 > 2 * snd (genRange (undefined :: StdGen)) `div` 3 02:56:18 1431655708 02:57:09 :t genRange 02:57:10 RandomGen g => g -> (Int, Int) 02:58:44 > length . filter (< 1431655708 `div` 2) . take 1000 . randomRs (0,1431655708) $ mkStdGen 42 02:58:46 332 02:59:22 hm i thought the discrepancy would be the other way around... 03:06:07 it's pretty bad, anyway :P 03:07:17 (basically System.Random uses mod to generate random integrals.) 03:08:34 System.Random is kind of awful 03:08:39 it's also too lazy 03:17:40 -!- hagb4rd has quit (Ping timeout: 250 seconds). 03:17:49 Just using mod is not good enough by itself though 03:18:15 isn't that the point 03:18:17 no, it makes it potentially awful, as i demonstrated. 03:18:24 There are ways to improve it, though. 03:18:30 half the range is twice as likely as the other 03:18:53 although i don't understand why it's _that_ half and not the other :P 03:19:25 Yes, and I thought of that when programming TeXnicard, and other programs, too. 03:19:46 Notice that the Pokemon card named DIGGER also makes probabilities such as 2/3 with coins, is another way. 03:19:59 You also need good quality random number generators. Is ARCFOUR good enough? 03:20:41 Is ARCFOUR+delay+microphone good enough? (This is what Famicom Hangman uses) 03:20:46 i have no idea about that bit :P 03:20:50 -!- Phantom_Hoover has quit (Read error: Connection reset by peer). 03:21:10 i just had a look in System.Random's code, noticed the ominous `mod`, and wanted to test it 03:21:49 (i originally wanted to see how well it deals with unusual genRanges. the answer to that is: not at all. 03:21:53 ) 03:22:20 it simply assumes genRange is the same as for stdGen. 03:22:32 and _still_ manages to do things badly for that. 03:22:44 *StdGen 03:23:49 presumably it's still ok as long as the range is tiny, and for floats. 03:34:51 http://hackage.haskell.org/trac/ghc/ticket/5280 03:44:28 -!- impomatic has quit (Quit: http://corewar.co.uk). 04:05:12 -!- Arc_Koen has quit (Quit: Arc_Koen). 04:31:06 Time to try to break my brain thinking about a language based off Trustfuck 04:31:13 Let's call it Trustfuck-- 04:31:36 As though it were a prior version of Trustfuck. 04:32:26 All I'm going to say for now, while I go to make food and think 04:39:22 dont just leave us hanging 04:43:17 Maybe ! should just do trustfuck primitives, rather than "current language" primitives, and a primitive be added for quines, and some other features to make converting ! to mean "current language" a relatively simple task 04:44:47 Although now I'm wondering if something vaguely inspired by Feather might be a good idea 04:45:01 Would ais523 be mad if I called a language "Featherfuck"? 04:45:37 does the vague inspiration involve time travel? if not you're fine 04:47:26 Either reruning code or doing some fixed-point thingamabob 04:48:23 Haven't thought through the fixed-point thing well enough to know if it's even a coherent thought, although probably not 05:03:50 In disadvantages of ropes, the Wikipedia article says "Increased complexity of source code; greater risk for bugs" 05:03:54 zzo38: your Famicom Hangman game uses RC4 as a random number generator? 05:04:08 Isn't that what code reuse is for? Does any non-library actually re-implement ropes? 05:05:27 in the real world code reuse is not so much a thing 05:06:04 :( 05:09:54 kmc: Yes it does use RC4 as a random number generator, and it runs several times per frame. It also uses the microphone, if there is one. 05:15:48 Is it good enough? 05:39:03 -!- ogrom has joined. 05:43:10 -!- hagb4rd has joined. 05:56:27 -!- hagb4rd has quit (Read error: Operation timed out). 06:00:17 -!- oerjan has quit (Quit: leaving). 06:13:13 `smlist 06:13:18 smlist: shachaf monqy elliott 06:13:33 “a responsibility„ 06:21:51 With great power comes great utility bills 06:23:04 yes 06:29:47 -!- sirdancealo2 has joined. 06:31:20 -!- ogrom has quit (Quit: Left). 06:43:36 28.8 kilobonghits per second 06:44:34 I dunno, "kibibonghit" flows better. 06:44:53 Are those imperial or nautical bonghits 06:45:30 Avoirdupois. 07:44:03 What would you use if *you* are making Famicom Hangman? 08:02:49 monqy: thonqy 08:06:01 -!- impomatic has joined. 08:16:52 -!- azaq23 has joined. 08:18:59 -!- aloril has quit (Ping timeout: 276 seconds). 08:31:05 -!- aloril has joined. 08:46:14 -!- Bike has quit (Quit: leaving). 08:47:38 -!- Taneb has joined. 08:52:19 -!- Jafet has quit (Quit: Leaving.). 08:55:15 > let i = (:+) 0 in 4 + i 2 08:55:18 4.0 :+ 2.0 09:10:22 -!- nooga has joined. 09:10:42 -!- nooodl has joined. 09:11:02 -!- Taneb has quit (Quit: Leaving). 09:32:42 could someone explain me why n-cycle clears with n > 1 is any better than 1-cycled in bf joust? 09:35:11 i.e. i don't see the advantage of [-.] over [-]. 09:45:01 -!- carado has joined. 09:56:55 -!- epicmonkey has joined. 09:59:24 -!- zzo38 has quit (Remote host closed the connection). 10:02:26 -!- hagb4rd has joined. 10:02:31 -!- nooga has quit (Ping timeout: 245 seconds). 10:09:42 -!- madbr has quit (Quit: Radiateur). 10:10:21 -!- nooga has joined. 10:14:47 -!- Frooxius has joined. 10:54:55 -!- cookienugget has quit. 10:56:35 -!- cookienugget has joined. 11:01:55 -!- monqy has quit (Quit: hello). 11:02:36 -!- Frooxius has quit (Ping timeout: 264 seconds). 11:04:34 -!- Phantom_Hoover has joined. 11:25:08 -!- nooga has quit (Ping timeout: 248 seconds). 11:25:25 -!- epicmonkey has quit (Ping timeout: 260 seconds). 11:32:32 -!- Sgeo_ has quit (Ping timeout: 250 seconds). 11:33:44 -!- hagb4rd has quit (Quit: hagb4rd). 11:52:48 -!- hagb4rd has joined. 11:56:14 -!- nooga has joined. 12:12:08 -!- cookienugget has quit (Ping timeout: 245 seconds). 12:17:00 -!- mroman_ has quit (Ping timeout: 264 seconds). 12:17:14 -!- mroman has joined. 12:27:10 -!- carado has quit (Quit: Leaving). 12:28:21 -!- carado has joined. 12:45:26 -!- nooga has quit (Ping timeout: 252 seconds). 12:45:40 -!- wareya_ has joined. 12:46:27 -!- cookienugget has joined. 12:47:58 -!- wareya has quit (Read error: Operation timed out). 12:51:14 -!- Arc_Koen has joined. 13:12:08 -!- Jafet has joined. 13:38:10 -!- Taneb has joined. 13:49:57 -!- DHeadshot has joined. 14:19:12 A fully functional in-browser clone of SimCity. http://tholman.com/playable-simcity-2013/ 14:19:38 Not fully functional enough! 14:19:40 Or too full... 14:19:44 Server's busy 14:20:53 ion, but it's online-only! 14:21:06 it seems folks demand it 14:21:14 (Please tell me it has local saves.) 14:22:43 game saving is for wimps 14:23:12 nightmare mode(tm) forever! 14:23:49 -!- epicmonkey has joined. 14:47:52 -!- carado has quit (Ping timeout: 256 seconds). 15:36:11 -!- nooga has joined. 15:53:10 -!- Taneb has quit (Ping timeout: 260 seconds). 15:54:31 -!- Taneb has joined. 16:05:51 -!- nooga has quit (Ping timeout: 245 seconds). 16:19:45 Taneb: :( 16:20:13 Is that :( at my Arrow explanation or my Applicative explanation 16:20:26 I'm presuming my Arrow explanation although my Applicative explanation did suck 16:23:50 it was at "(<*>) takes a thing full of functions, and a thing full of inputs to the function, and applies the functions and the inputs in some way, then combines the rest of the things together 16:23:54 " 16:26:39 How is that inaccurate or misleading 16:28:30 well "thing full of" and the plural........... 16:28:48 you can have stuff where the "functions" branch on an undetermined amount of input etc. where the container analogy kinda breaks down 16:30:03 Analogies break down eventually 16:30:05 -!- Bike has joined. 16:30:55 well imo it's a bad idea to give people things that will confuse them when they get to stuff like that because they've been given preconceptions...... especially when there's a lot of bad tutorials they can read if they really want analogies 16:31:00 but it wasn't a really big frown 16:36:59 On another note, ekmett added me to another repo 16:37:00 Help 16:37:51 -!- Sgeo has joined. 16:41:31 @hoogle [a] -> ([a],a,[a]) 16:41:32 No results found 16:42:39 i just sigh whenever i get another email about that now 16:43:13 -!- nooga has joined. 16:44:01 :t \pivot:xs -> (filter (pivot <=) xs,pivot,filter (> pivot) xs) 16:44:02 parse error on input `:' 16:44:08 :t \(pivot:xs) -> (filter (pivot <=) xs,pivot,filter (> pivot) xs) 16:44:10 Ord a => [a] -> ([a], a, [a]) 16:44:18 I have a feeling that I'm the only person who's been added to tables 16:45:05 :t \(x:xs) -> (xs,x,xs) -- boring 16:45:07 [t] -> ([t], t, [t]) 16:45:39 :t \(x:xs) -> ([],x,xs) -- maybe what nooodl wants 16:45:40 [t] -> ([a], t, [t]) 16:46:29 hmm, i just realized i actually want 16:46:29 @hoogle Int -> [a] -> ([a],a,[a]) 16:46:30 No results found 16:46:56 but splitAt is close enough 16:47:28 f = (\(a,b:c) -> (a,b,c)) . splitAt 16:50:00 -!- epicmonkey has quit (Ping timeout: 264 seconds). 16:52:39 nooodl: dont do that 16:52:51 also that f is wrong but mainly dont do that 16:53:19 i need (.).(.) don't i 16:53:31 also what's wrong, i might not actually be doing the wrong thing anymore 16:54:08 well using indices into lists is generally a bad idea 16:55:03 are you essentially saying "don't use (!!)" here 16:55:11 Yes he is 16:55:14 I agree with elliott 16:55:31 well.... i'm fairly sure i do need indices sorry 16:55:41 Then use a structure other than lists 16:55:54 I think that's the point 16:56:08 this is from that lyah exercise thingy 16:56:11 naw O(n) access is the shit bro 16:56:27 it's asking me to write a binary search function on list that also logs using Writer 16:56:36 i know it's not something you'd actually do... 16:57:33 well if the lyah exercises want you to do bad things then imho they're bad exercises! 16:57:44 but i doubt you need indices to do binary search on [] 16:57:49 also from the example it's apparent that the guy who made the exercise solved it wrong himself 16:58:13 how're you going to find the center without indices 16:58:44 imo these exercises sound shit and you should stop doing them? 16:59:19 they're better than the alternative of "no exercises" 16:59:25 Do them better 16:59:41 Figure out how to use arrays and implement binary search with them 17:00:36 this solution probably wouldn't require a lot of changes to work with Array! i might do that 17:01:04 too bad Array sucks too :( 17:01:35 what should i use then 17:01:49 so what do you use if you want arrays, in haskell 17:01:53 man, this type signature is growing to be pretty large 17:01:55 binarySearch :: (Show a, Ord a, Eq a, Monoid b) => (a -> a -> b) -> a -> Array Int a -> Writer b Bool 17:02:04 Vectors unless something new's come up since 17:02:22 why does it even say Ord a, Eq a 17:02:24 nooodl: Ord includes Eq 17:02:27 instead of just Ord a 17:02:27 yes 17:02:51 How do arrays suck? 17:02:54 Too many of them? 17:03:43 Bike: vector or maybe repa or something but sometimes array is the only non-annoying option 17:03:47 but then it's annoying because it's array 17:03:48 http://u.arboreus.com/2011/03/how-to-choose-haskell-array-library.html has some stuff 17:04:06 wow a table 17:04:18 sorry "feature matrix" 17:04:40 wait, why does it not have access time for Data.Array. 17:04:56 hmm i'll use Vector 17:05:00 that sounds interesting 17:05:14 do they just suck that much 17:05:30 import qualified Data.Vector as V 17:05:36 is this evil, it feels evil 17:06:41 Bike: Possibly because the Ix class can be arbitrarily slow? 17:06:45 Not sure 17:07:51 holy shit 17:07:54 O(1) take? 17:08:33 Since it's immutable it doesn't have to copy anything, so of course 17:08:39 -!- epicmonkey has joined. 17:08:47 ugh who thought "snoc" was a good name for snoc 17:10:47 snoc is fine 17:11:03 Deewiant: (bad GC properties :( ) 17:12:11 elliott: Yeah GCs kinda suck like that 17:12:39 i crashed winghci 17:12:53 Congrats 17:13:00 there should be a way to do the copying of the "take"d elements when the original array gets freed 17:13:03 like copying GC style 17:13:30 Hey, anyone here know the best way to get a C++11 into Haskell 17:13:46 give up 17:13:47 Vector should be able to tell the GC that a given reference only needs a certain slice of the data 17:13:53 more generally give up on binding C++ to haskell 17:15:09 -!- carado has joined. 17:16:02 yeah, "V.enumFromN 1 1000000000" is crashing ghci but i don't know what i expected 17:16:10 i mean. that's a pretty big vector 17:16:37 do you need a billion element vector for something 17:16:48 That's N gigabytes where N is the type's size (so probably Int's size) 17:17:07 testing this binary search function!! 17:17:35 don't you think four gigabytes is a bit much for testing 17:18:19 ghc thinks so at least 17:18:44 nooodl: "maxBound :: Int" 17:19:28 nooodl : maxBound : Int 17:19:47 -!- AnotherTest has joined. 17:19:56 Hello 17:20:42 what is love 17:20:56 yes 17:21:20 > (maxBound - minBound) :: Int 17:21:22 -1 17:21:24 cool 17:21:24 oh 17:21:42 Bike: why is love 17:22:27 red queen hth 17:22:44 HTH hth. 17:23:07 Hi everyone hth. How's it going hth? 17:23:30 pretty well 17:23:55 Good to hear hth. 17:24:49 Yesterday was the eighth hth. 17:26:07 Now, to which URL should speaking post. Should it post to character/n/speak/? Seems like as good a URL as any. 17:36:35 -!- Frooxius has joined. 17:41:00 -!- carado has quit (Read error: Connection timed out). 17:41:50 -!- carado has joined. 17:46:56 -!- cookienugget has left. 17:47:17 -!- Taneb has quit (Ping timeout: 255 seconds). 17:48:43 -!- Taneb has joined. 18:12:49 -!- nooodl has quit (Ping timeout: 248 seconds). 18:26:42 -!- azaq23 has quit (Quit: Leaving.). 18:29:06 -!- FreeFull has quit (Quit: bbl). 19:05:26 Trivia: the first track of every single album I've bought on its release day opened at number 2 in the UK singles chart 19:08:23 Hexham? More like MAX HEH 19:09:01 it's always a barrel of laughs up in hexham 19:10:25 good triviopodes 19:10:57 are those octopodes who won't shut up about star trek 19:11:44 yes 19:12:28 By the way, those two messages from me were completely unrelated 19:13:28 How can I search the esoteric logs? 19:15:09 you need to rsync them + grep 19:15:20 ¬_¬ 19:15:20 type !logs for the info 19:22:30 -!- Phantom_Hoover has quit (Ping timeout: 245 seconds). 19:25:03 !logs 19:27:35 -!- FreeFull has joined. 19:38:25 Hmmm... thanks. I only wondered the size of the Brainfuck Hello World I posted here... 19:41:44 ^ord ¬ 19:41:44 194 172 19:42:34 -!- Phantom_Hoover has joined. 19:43:49 -!- nooodl has joined. 19:51:16 -!- Taneb has quit (Ping timeout: 245 seconds). 19:57:06 -!- epicmonkey has quit (Ping timeout: 264 seconds). 20:01:05 -!- Taneb has joined. 20:10:40 -!- oerjan has joined. 20:24:25 -!- sebbu has quit (Ping timeout: 260 seconds). 20:41:15 -!- AnotherTest has quit (Read error: Connection reset by peer). 20:41:26 -!- AnotherTest has joined. 20:41:27 -!- AnotherTest has quit (Client Quit). 20:51:32 hm it seems impossible with haskell types to generalize Control.Lens.Iso.mapping to take a Setter instead of just a Functor instance 20:52:34 because the setter needs to be used at two different types 20:53:38 rank-2? 20:53:53 :t mapping 20:53:55 (Functor f1, Functor f, Profunctor p) => AnIso s t a b -> p (f a) (f1 (f b)) -> p (f s) (f1 (f t)) 20:53:58 oh right 20:54:09 ...if those two types have a common rank-2 expression you are halfway to Functor already :( 20:54:49 it could take two setters :P 20:55:31 yeah but that would ruin the point of my investigation, which was why wasn't mapping defined as mappingOf mapped in the first place 20:55:48 mappingOfOf mapped mapped 20:55:50 with great generalization possibilities 20:55:58 Clearly the way to go 20:56:47 oerjan: it doesn't have to be all the way to Functor because it only has to work with f/f1, right? 20:56:52 you could make it work with GADTs and stuff 20:57:31 elliott: f is the functor in question, f1 is the usual lens choosable one 20:57:44 er, right 20:58:02 -!- Phantom_Hoover has quit (Ping timeout: 256 seconds). 20:58:13 it needs to map f a -> f s and f t -> f s 20:58:50 oops 20:59:11 * (a -> s) -> (f a -> f s) and (t -> b) -> (f t -> f b) 20:59:26 right 20:59:35 the definition of mapping is essentially mapping (iso sa bt) = iso (fmap sa) (fmap bt) 21:01:15 and you want to replace fmap by setter %~ 21:03:24 :t mapped %~ view swapped 21:03:25 (Functor f, Swapped p) => f (p a b) -> f (p b a) 21:04:25 wait what 21:04:40 oh right 21:04:50 rhyming with lenses 21:04:51 that gives you a Getter only 21:04:59 afaict 21:05:01 -!- Phantom_Hoover has joined. 21:05:45 :t review 21:05:46 MonadReader b m => AReview s t a b -> m t 21:05:57 :t re 21:05:59 Gettable f => AReview s t a b -> (t -> f t) -> b -> f b 21:07:03 > review _Just 10 >>= \x -> lift [x] 21:07:05 Couldn't match expected type `Data.Maybe.Maybe b0' 21:07:05 with actual... 21:07:47 :t review _Just 10 21:07:49 Num a => Maybe a 21:08:05 THAT WILL BE WHY 21:08:12 :t review _Just >>= \x -> lift [x] 21:08:14 (MonadTrans t, MonadReader b (t [])) => t [] (Maybe b) 21:08:24 > runReaderT (review _Just >>= \x -> lift [x]) 10 21:08:26 [Just 10] 21:09:18 -!- sebbu has joined. 21:09:18 -!- sebbu has quit (Changing host). 21:09:18 -!- sebbu has joined. 21:09:41 :t review 21:09:42 MonadReader b m => AReview s t a b -> m t 21:11:36 01:32:54 could someone explain me why n-cycle clears with n > 1 is any better than 1-cycled in bf joust? 21:11:39 01:35:24 i.e. i don't see the advantage of [-.] over [-]. 21:12:24 it's because to win, you have to make the flag 0 for _two_ consecutive turns 21:12:39 oerjan: you do with [-]. 21:13:21 the opponent may be changing the flag during the ] step 21:13:40 so he may in [-.] 21:13:56 But in [-], if he does you just exit the loop 21:13:57 not unless he _also_ did it in the . step 21:14:06 In [-.], you start decrementing it again 21:14:57 in [-.], if you reach the ] you _know_ your last - didn't succeed, so you just start again. 21:15:09 well, i'd test something like [[-].] then 21:16:12 i'm not a bfjoust expert, but i expect all of which works best depends on the opponent's defence strategy 21:16:20 Does this statement help? 21:16:22 "If L is a language, f is a function L->Trustfuck, and g is the inverse of f (that is, a function Trustfuck->L), then g(",+[-:,+]!") is a compiler for L, not a compiler for Trustfuck." 21:17:09 Have I ever said that Trustfuck is ridiculous? 21:17:14 Taneb, how so? 21:17:22 Sgeo: it makes no mathematical sense to call that an inverse 21:17:50 Sgeo, really, it's your offhand comments about the consequences of Trustfuck that are ridiculous rather than the language itself 21:17:56 Which I don't understand due to lack of effort 21:18:12 oerjan, hmm 21:18:14 Taneb: dito 21:18:36 it does not give f(g(x)) the same semantics as x, obviously, which is the point of the statement of course 21:19:01 Why do you need to mention f at all 21:19:04 or well, neither is semantics-preserving. 21:20:18 If the semantics of ",+[-:,+]!" is "be a compiler for the current language" not "be a compiler for Trustfuck" 21:20:25 Does that... make it work? 21:20:34 I think that's what I'm trying to get at 21:20:52 no, because the current language doesn't use those characters at all, potentially :P 21:26:00 Hm. 21:26:16 and there my brain ran out of energy again. 21:26:41 I don't know if I know an accurate description 21:26:47 I should think about Trustfuck-- a bit 21:28:14 Hmm, this is a thought: 21:28:55 A compiler written in Trustfuck for a language L does not compile to Trustfuck before doing !, the way I've described 21:29:09 It compiles to... something else 21:29:48 A language similar to Trustfuck except a different meaning for ! 21:30:01 i would suggest trying to give a semantics of each language that makes no reference to more fundamental languages existing. 21:31:22 Hm? 21:31:30 -!- Taneb has quit (Ping timeout: 276 seconds). 21:32:13 or maybe not more than two neighboring levels 21:32:16 -!- Taneb has joined. 21:32:58 If L is a language, let L' be a language that is identical to Trustfuck except that ! accepts and compiles L code instead of Trustfuck code. 21:33:17 Wait, I think ! should never be stated to compile Trustfuck code. 21:34:00 Except along the same vein, L''s ! doesn't really take L code, does it? Because if L has an equvalent to !, then ... 21:41:12 -!- zzo38 has joined. 21:52:00 -!- monqy has joined. 22:00:07 @hoogle runMaybeT 22:00:07 Control.Monad.Trans.Maybe runMaybeT :: MaybeT m a -> m (Maybe a) 22:00:47 erp, I wrote my code a bit backwards I think 22:01:10 Ending up with a Maybe (IO ()) 22:01:16 -!- kallisti_ has joined. 22:01:34 @hoogle a (b c) -> b (a c) 22:01:35 Data.Traversable sequenceA :: (Traversable t, Applicative f) => t (f a) -> f (t a) 22:01:35 Data.Traversable sequence :: (Traversable t, Monad m) => t (m a) -> m (t a) 22:01:35 Test.QuickCheck.Gen promote :: Monad m => m (Gen a) -> Gen (m a) 22:01:37 -!- kallisti1 has joined. 22:03:24 -!- kallisti_ has quit (Client Quit). 22:03:25 -!- kallisti has quit (Quit: Lost terminal). 22:04:40 @hoogle sequenceM 22:04:41 No results found 22:04:49 :t sequence 22:04:51 Monad m => [m a] -> m [a] 22:04:53 Is Maybe traversable? 22:05:05 > sequence $ Just "hello" 22:05:07 Couldn't match expected type `[m0 a0]' 22:05:08 with actual type `Data.... 22:05:13 > Data.Traversable.sequence $ Just "hello" 22:05:15 [Just 'h',Just 'e',Just 'l',Just 'l',Just 'o'] 22:05:17 Yes 22:06:38 Doesn't quite seem to be working for me 22:06:54 oh, I see why 22:07:29 () <$ T.sequence mSendIt 22:07:36 I think I have just gone overboard 22:07:44 Doing that instead of putting a return () at the end 22:07:48 I may be the first person to ever have compared Order of the Stick to the University of Birmingham 22:08:36 Sgeo: that's Control.Monad.void 22:08:38 (yes, Monad, not Functor) 22:08:49 @hoogle void 22:08:50 Foreign.Marshal.Error void :: IO a -> IO () 22:08:50 Control.Monad void :: Functor f => f a -> f () 22:08:50 package void 22:08:56 Ah, ty 22:09:03 > void $ Just 2 22:09:06 Just () 22:09:11 > void "hello" 22:09:13 [(),(),(),(),()] 22:09:21 > void ("one", 2) 22:09:23 ("one",()) 22:09:32 Pairs are a functor? 22:09:38 Tuples are 22:09:41 Yes 22:09:54 instance Functor ((,) a) where fmap f (a, b) = (a, f b) 22:10:11 If the first argument is a monoid I think they're a monad 22:10:43 instance Monoid a => Monad ((,) a) where return = (,) mempty; (a, b) >>= f = let (a', c) = f b in (a `mappend` a', c) 22:11:05 (that's just Writer) 22:11:14 Sgeo: there are lots of instances. sorta wack to say pairs "are" a functor.............. especially since in some cases it's partially applied pairs 22:11:18 and in other cases 22:11:23 it's certain sortsa pairs 22:11:24 special pairs 22:11:30 pairs with only one sorta thing in them 22:11:37 data Pair a = Pair a a 22:12:14 instance Functor Pair where fmap f (Pair a a) = Pair (f a) (f a) 22:12:39 Modulo stupid names that overlap 22:16:13 Sgeo, how's that IRC thingy you're doing going 22:16:28 Taneb, did it 22:16:39 Some ugly parts 22:16:53 And config stuff is hard-coded 22:16:58 But it's meant to be a simple bot 22:17:31 Might make a bot that evaluates Piet 22:17:40 Rather than one written in piet 22:18:18 http://hpaste.org/83768 22:22:15 Err 22:22:23 Just realized that there's some unneeded code there 22:22:28 Sgeo: are you making an irc bot in piet? 22:22:35 Just pretrend lines 25-26 don't exist 22:22:46 And line 24 22:32:01 -!- sebbu has quit (Ping timeout: 248 seconds). 22:42:11 -!- ais523 has joined. 22:49:44 -!- TeruFSX has joined. 22:53:00 -!- Taneb has quit (Ping timeout: 252 seconds). 22:53:34 -!- Taneb has joined. 22:53:40 question of the day: what kind of sane person uses lowercase xi 22:54:40 xi? 22:54:40 i see lowercase xi every so often 22:54:49 but uppercase xi, now that's crazy 22:56:34 uppercase xi is ok as long as it's not sans serif 22:56:48 uppercase sans serif xi is the abomination unto nature 22:56:57 but lowercase xi is so damn hard to write! 22:57:02 same for zeta 22:57:20 except it's slightly less fiddly 22:57:34 well thankfully the greeks are fucking dead 22:57:37 so you don't have to write greek any more 22:57:39 8-) 22:59:30 you realise that in that case everyone will just write the normal alphabet in weird ways 22:59:32 you have to think of it in steps. ς → ζ → ξ 23:00:05 The greeks aren't dead, just economically oh no'd 23:00:12 ah, you meant xi the greek letter? reminds me of an old calculus lecturer who used the same squiggle for every greek letter, ln and cos 23:00:29 olsner, sound awful 23:01:18 not all bad though, the unreadable formulas does sort of force you to pay attention to what's being written and what it means 23:01:21 ς is just an s. ζ is just ς with a line above it. ξ is just ζ with a dent in it 23:01:49 one of my lecturers is greek 23:02:04 he writes beta as what is for all intents and purposes an ordinary b 23:03:23 i.e. he uses the ordinary b instead of the latin b? 23:04:21 Is return being in Monad rather than Functor a quirk? 23:04:29 No 23:04:37 It should be in Applicative if anywhere 23:04:42 Functors do NOT have return 23:04:48 (necessarily) 23:04:59 Bike, typeclass organisation is a mess, iirc 23:05:06 Monad is detached from the rest of the hierarchy for historical reasons 23:05:11 Yes, but I want to know if this is a mess or something I'm misunderstanding. 23:05:20 "pure" in Applicative is what return should be 23:05:30 -!- TeruFSX has quit (Ping timeout: 264 seconds). 23:05:35 Since I thought mathematical functors mapped objects in addition to morphisms. 23:05:39 Bike, not all functors have an equivalent to return 23:05:41 Bike: "f" maps the object 23:05:48 an object in Hask is a *type* 23:05:54 and Functor models endofunctors (functors Hask -> Hask) 23:05:56 What's return :: a -> (Void, a)? 23:06:07 so if you have a Functor instance f 23:06:15 then f Int is mapping the object Int 23:06:21 and fmap maps morphisms (functions) 23:06:35 and fmap (Int -> Int) maps the morphism. 23:06:51 i.e. a functor takes the morphism f : A -> B to F(f) : F(A) -> F(B), where F(X) is mapping the object X 23:07:00 Bike: erm, that's not valid syntax, but sure 23:07:14 ...in this case, a functor takes the morphism f :: Int -> String to fmap f :: F Int -> F String 23:07:16 psh syntax 23:07:35 ok, that makes sense. 23:08:08 (actually Functor models something ridiculous like functors mapping Hask to the subcategory of Hask where only types of the form (f a) are objects or such) 23:08:12 (but that doesn't really matter) 23:08:24 Sounds elegant. 23:10:08 ^list 23:10:08 Taneb atriq Ngevd Fiora nortti Sgeo ThatOtherPerson alot 23:10:19 Thanks 23:10:23 erm, false alarm possibly 23:10:26 No 23:10:30 what is ^list for 23:10:39 you dont want to know 23:10:43 nooodl, notifying about Homestuck updates 23:10:45 annoying s h a c h a f mostly? 23:11:03 -!- sebbu has joined. 23:11:03 -!- sebbu has quit (Changing host). 23:11:03 -!- sebbu has joined. 23:11:18 the new homestuck updates look really boring 23:11:19 * Fiora cherub time? 23:11:24 Bike, nah, he's not on the ^list 23:11:47 by new i mean anything that happened in the past 1-2 years 23:11:59 it sort of amazes me that people read homestuck 23:12:18 Although cf his HackEgo wisdom 23:12:55 the past 1-2 years have been pretty wonderful 23:13:07 though I guess still not the wonderfulness of act 5 and karkat arguing with himself 23:14:05 you are like almost the exact opposite of me 23:14:24 the best of homestuck for me was when it was about the original 4 23:14:35 shit on your desk 23:14:56 hivebent was jut a chore for me since i really wanted to know e.g. where jade was going to land 23:15:08 I really do like the original 4 humans, yeah. I never really got into the alpha kids much 23:15:20 I quite like the Alpha kids 23:15:22 and jade is still my favorite is and john is still the most adorable dork and dave is still awesome 23:15:33 Jake's my favourite now 23:15:52 nooodl: what have you started 23:16:01 hi monqy 23:16:01 but hivebent had such wonderful characters too. like karkat 23:25:21 -!- sebbu has quit (Ping timeout: 248 seconds). 23:41:55 wtf http://perl8.org/ 23:42:05 (Someone has perl8.org pointing to Scala) 23:42:21 programming language jokes! 23:53:43 better than www.perl5.org 23:54:19 How much cheating would be acceptable in a Feather-like language? 23:54:49 -2% 23:55:11 not only may you not cheat but you must do community service to make up for all the stupid time travel jokes you're causing 23:58:22 Compiled languages often have a bootstrap process, in which, say, a compiler for L written in L is compiled using a compiler for L written in another language. Can this process be made a part of the language somehow? 23:59:29 just write the compiler in L, like all those C compilers written in C 23:59:34 what kind of self-respecting language acknowledges other languages' existence? that sounds like step one down a path to interoperability son