←2012-10-06 2012-10-07 2012-10-08→ ↑2012 ↑all
00:06:46 <Sgeo> What is "Undoing Dynamic Typing"?
00:08:46 <oerjan> it's a euphemism for correcting really bad spellers hth
00:09:49 <oerjan> ->
00:10:02 <elliott> oerjan: q
00:12:44 <Sgeo> The paper uses "untyped" too m.. oh
00:12:56 <Sgeo> I guessed untagged wouldn't be strongly typed
00:13:04 <Sgeo> Hrm
00:34:07 -!- augur has quit (Remote host closed the connection).
00:39:10 -!- augur has joined.
00:43:55 -!- jiella_ has quit (Quit: Leaving.).
00:45:09 <oerjan> elliott: a
00:45:52 <elliott> oerjan: q :)
00:46:17 <oerjan> elliott: n
00:46:35 <elliott> r
00:46:45 <oerjan> yw
00:53:04 <elliott> pikhq_: Is it true that Windows 8 only supports GPT?
01:00:53 <Sgeo> It turns out delimc sucks
01:01:17 <Sgeo> As in, it breaks if you don't use all the vars in the namespace where you want to use the stuff
01:02:10 <Sgeo> As in, if import Data.Maybe worked but import qualified Data.Maybe as M didn't
01:03:46 -!- elliott has quit (Remote host closed the connection).
01:05:18 -!- elliott has joined.
01:07:43 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
01:20:09 <shachaf> elliott: Why because of me?
01:20:22 <elliott> I forget.
01:24:11 * Sgeo is slightly unsure how to fix the issue
01:24:17 <Sgeo> But I see what's causing it
01:27:16 <Sgeo> I know how to fix it.
01:34:57 -!- hagb4rd has quit (Quit: hagb4rd).
01:39:50 -!- hagb4rd has joined.
02:30:31 * oerjan adds Gemooy to his TC belt
02:32:25 <elliott> oerjan: congrats :)
02:32:28 -!- elliott has quit (Remote host closed the connection).
02:33:13 <shachaf> oerjan: Is that the belt of things you've type checked?
02:33:16 <shachaf> Or type checkers?
02:33:23 <shachaf> elliott: 19:28 <shachaf> Is there a reason that "a newtype constructor cannot have an existential context" in GHC?
02:33:32 <oerjan> no, it's the belt of things i've proved Turing complete
02:38:23 -!- elliott has joined.
02:39:20 <Sgeo> Has oerjan been proved Turing Complete?
02:39:53 <oerjan> sounds dangerous
02:44:01 <coppro> oerjan: your proof of 3-cell BF worked out, right?
02:45:06 <oerjan> yes
02:45:18 <coppro> nice
02:45:22 <coppro> ... wtf
02:45:23 <oerjan> http://esolangs.org/wiki/Collatz_function
02:45:32 <coppro> I am now saddened
02:45:48 <coppro> apparently the fact that the cartesian product of nonempty sets is nonempty is a consequence of the axiom of choice
02:45:52 <coppro> :(
02:46:05 <coppro> s/a consequence of/equivalent to/
02:46:06 <oerjan> coppro: of _infinitely_ many, mind you
02:46:16 <elliott> coppro: why would that make you sad
02:46:32 <oerjan> also, that's really sort of obvious.
02:46:58 <coppro> oerjan: yeah, it is
02:47:05 <coppro> elliott: I don't know
02:47:56 -!- elliott has quit (Remote host closed the connection).
02:58:08 <Sgeo> Blah.
02:58:48 <Sgeo> Major things such as Clojure vars being very much like Common Lisp symbols in some crucial ways should probably be documented in a place showing differences between Clojure and other lisps
03:03:03 -!- elliott has joined.
03:13:14 <elliott> oerjan: hi
03:13:35 <oerjan> g'day
03:15:20 <elliott> oerjan: should i convert my partitions to gpt
03:15:52 <oerjan> YES!
03:16:07 <elliott> oerjan: help
03:16:21 <oerjan> general protection taunts, right?
03:16:50 <elliott> yes.
03:25:00 -!- elliott has quit (Quit: Leaving).
03:25:13 -!- elliott has joined.
03:27:50 -!- elliott has quit (Remote host closed the connection).
03:32:49 -!- Frooxius has quit (Ping timeout: 246 seconds).
03:42:31 -!- elliott has joined.
03:46:26 -!- elliott has quit (Remote host closed the connection).
03:48:29 -!- baki^ has joined.
03:49:03 -!- baki^ has left ("dumplings you do, dumplings you don't").
03:50:47 <Arc_Koen> so I hear two stacks is enough to be tc
03:50:59 <oerjan> yep
03:51:14 <Arc_Koen> let's try to build something out of two stacks that's not tc
03:51:22 <Arc_Koen> actually I was thinking of using a deque
03:51:33 <oerjan> a deque alone is enough to be tc
03:51:54 <Arc_Koen> with functions like "pop" and "push", and an instruction "toggle" to specify to which end of the deque those functions apply
03:52:52 <Arc_Koen> with two stacks if you can do something like push2(pop1()) it is easy to emulate a tape; but here you can't
03:52:59 -!- elliott has joined.
03:53:27 <Arc_Koen> (because you need to toggle before you can push to the other end; so you can't be pushing one side and popping the other at the same time)
03:54:31 <oerjan> if you are going to prevent the information from getting across some other way, you need to limit branching
03:55:41 <Sgeo> I'm starting to see why Clojure exceptions suck so much
03:55:42 <Sgeo> :<
03:55:44 <Arc_Koen> to prevent stuff like "if pop() = 0, then toggle and push(0)"?
03:56:04 <oerjan> yeah
03:58:17 <oerjan> you may end up with essentially two coroutines that cannot do anything with each other other than yielding...
03:58:46 <oerjan> with no data passing
03:59:07 <Arc_Koen> yep I was writing it down and it felt kind of lame
03:59:46 <kmc> well there are boring ways to make something not turing complete
03:59:54 <kmc> like putting a bound on space or time usage
04:00:08 <kmc> which also includes any real system
04:07:22 -!- oerjan has quit (Quit: Good night).
04:07:58 <Arc_Koen> http://sprunge.us/died
04:13:54 <elliott> died
04:15:01 <Arc_Koen> well sprunge just found a name for that language
04:24:11 <pikhq_> elliott: I honestly don't know.
04:24:25 <elliott> yaey
04:25:01 <Arc_Koen> hmmmm actually I could just consider Super Stack! deprived from its cycle/rcycle instructions
04:25:15 <Arc_Koen> it still has rev to reverse the entire stack
04:26:34 -!- elliott has quit (Remote host closed the connection).
04:31:04 <Arc_Koen> anyway gnight
04:31:12 -!- Arc_Koen has quit (Quit: Arc_Koen).
04:31:41 -!- copumpkin has quit (Ping timeout: 255 seconds).
04:32:19 -!- copumpkin has joined.
04:34:41 -!- hogeyui has quit (Ping timeout: 244 seconds).
04:36:05 -!- zzo38 has joined.
04:47:49 -!- hogeyui has joined.
04:50:23 <zzo38> If you think the note about not moving the article about FurryScript to the main namespace is wrong, you can remove it, like you would remove other wrong things on wiki.
05:10:08 -!- ogrom has joined.
05:23:49 -!- hagb4rd has quit (Ping timeout: 260 seconds).
05:44:12 -!- Nisstyre-laptop has quit (Remote host closed the connection).
05:53:35 <kmc> every time flash plugin crashes, take a drink
06:02:49 -!- Nisstyre-laptop has joined.
06:07:30 <kmc> i'll just fondle myself in this leftover panel
06:08:14 <kmc> just watched an ad for internet explorer featuring dubstep
06:08:35 <coppro> kmc: every time pulseaudio causes a problem, take a drink
06:11:43 <kmc> now i have two problems :(
06:17:43 <zzo38> I wrote on a paper once how to make double negation elimination in (Kleisli (Cont r)) and yes I can see easily how to work. I wrote: ((x->(0->r)->r)->(0->r)->r)->(x->r)->r I think this is the way, isn't it?
06:18:17 <zzo38> (I figure out pretty easily how to write such a function of such a type since we have 0 is initial object here.
06:27:28 -!- copumpkin has quit (Ping timeout: 246 seconds).
06:28:03 -!- copumpkin has joined.
06:39:39 -!- copumpkin has quit (Ping timeout: 256 seconds).
06:40:15 -!- copumpkin has joined.
06:51:53 -!- zzo38 has quit (Remote host closed the connection).
06:58:09 -!- Nisstyre-laptop has quit (Read error: Connection reset by peer).
07:01:38 <shachaf> kmc: I don't think I get the film.
07:01:46 <shachaf> (Were you the one who recommended it to me?)
07:37:54 <kallisti> is there any language with a brainfuck-style tape and : a) a mov instruction b) a goto instruction c) the ability to copy the location of the instruction pointer into the current tape pointer
07:39:34 <shachaf> x86
07:44:52 -!- atriq has joined.
07:46:08 <Sgeo> (comp bind-cont bind-cont)
07:46:14 <atriq> Hello!
07:46:17 <atriq> Aaaargh!
07:46:18 <Sgeo> That should be join in my syntax
07:46:18 <atriq> Oh no!
07:46:19 <Sgeo> I think
07:47:08 <Sgeo> atriq, hmm?
07:47:13 <atriq> I said "Hello"
07:47:42 <Sgeo> Hi
08:03:09 <atriq> You know, I'm actually really surprised that Fueue is Turing-Complete
08:11:38 -!- ais523 has quit.
08:14:19 -!- MoALTz__ has joined.
08:17:30 -!- MoALTz_ has quit (Ping timeout: 264 seconds).
08:19:28 <coppro> atriq: why?
08:20:00 <atriq> When I made it, I looked at it and thought "This is impossible to do anything with"
08:20:02 <coppro> $ obviously gives rise to flow control
08:20:07 <atriq> "It's an utterly ridiculous language"
08:44:05 -!- MoALTz_ has joined.
08:47:24 -!- MoALTz__ has quit (Ping timeout: 260 seconds).
08:54:22 -!- MoALTz__ has joined.
08:57:19 -!- MoALTz_ has quit (Ping timeout: 245 seconds).
09:02:30 -!- atriq has quit (Ping timeout: 264 seconds).
09:30:26 -!- atriq has joined.
09:48:30 -!- kinoSi has quit (Read error: Connection reset by peer).
09:49:18 <atriq> Anyone know where I can get help with MuseScore?
09:49:28 -!- kinoSi has joined.
10:06:24 -!- Vorpal has joined.
10:24:49 -!- ogrom has quit (Quit: Left).
10:32:49 -!- Arc_Koen has joined.
10:33:05 <Arc_Koen> hello
10:34:04 <atriq> Hey
10:37:10 -!- MoALTz__ has quit (Quit: brb).
10:37:27 <Arc_Koen> has someone done some work about equivalency between programming languages in terms of complexity?
10:38:21 -!- MoALTz has joined.
10:38:27 <Arc_Koen> I feel stupid everytime I try to prove something TC by emulating brainfuck, when that something looks much more powerful than brainfuck
10:39:11 -!- Phantom_Hoover has joined.
10:42:31 <atriq> Prove it TC by emulating Underload
10:42:46 <atriq> Or Eodermdrone
10:42:57 <FreeFull> Or a turing machine
10:43:08 <atriq> If you write an Eodermdrone interpreter you are officially esolanger of the year
10:43:19 <atriq> Of 2008, anyway
10:44:27 -!- Frooxius has joined.
10:53:10 <Arc_Koen> yeay, 2008 was the best year
10:54:29 <Arc_Koen> hey, do you have a translation for "suite presque nulle" into english? it means "an (infinite) sequence (x0, x1,...) for which there exists N such that for every n > N, xn = 0"
10:54:40 <Arc_Koen> (so basically it's an infinite sequence that's not so infinite after all)
10:55:11 <Arc_Koen> literally, "suite presque nulle" means "almost zero sequence"
11:08:59 -!- barts has joined.
11:10:11 -!- Jafet has quit (Quit: Leaving.).
11:12:13 -!- barts_ has quit (Ping timeout: 256 seconds).
11:19:35 <fizzie> The term "almost all zero" seems to be used in the context of sequences sometimes.
11:24:35 <FreeFull> Could it be a geometric sequence with a ratio between -1 and 1 (exclusive), or is it something else?
11:25:20 <atriq> > [1,2,3,4] ++ repeat 0
11:25:22 <lambdabot> [1,2,3,4,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,...
11:25:40 <atriq> Something like that?
11:31:16 <FreeFull> > map x [1..] where x n = 2^(n-1)
11:31:18 <lambdabot> <no location info>: parse error on input `where'
11:31:36 <FreeFull> > let x n = 2^(n-1) in map x [1..]
11:31:37 <lambdabot> [1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536,131072,...
11:31:43 <FreeFull> Woops
11:31:51 <FreeFull> > let x n = (1/2)^(n-1) in map x [1..]
11:31:53 <lambdabot> [1.0,0.5,0.25,0.125,6.25e-2,3.125e-2,1.5625e-2,7.8125e-3,3.90625e-3,1.95312...
11:31:59 <FreeFull> Something like this
11:37:15 <barts> no it means a sequence where a finite sequence contains all non-zero elements of the sequence
11:37:34 <FreeFull> So something like what atriq did then
11:38:06 <barts> not necessarily, the non-zero elements could be interspersed with many zeros as well
11:38:33 <atriq> > [1,2,0,3,0,4] ++ repeat 0
11:38:35 <lambdabot> [1,2,0,3,0,4,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,...
11:39:32 <FreeFull> > repeat 0 ++ [1,5,4,0,2]
11:39:32 -!- atehwa has quit (Ping timeout: 248 seconds).
11:39:34 <lambdabot> [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,...
11:40:20 -!- atehwa has joined.
11:40:59 <fizzie> If there's a finite number of zeros, though, then one of them is the last zero, and that n > N, xn = 0 holds.
11:41:50 <olsner> hmm, did you mean non-zero?
11:41:59 -!- Frooxius has quit (Quit: ChatZilla 0.9.89-rdmsoft [XULRunner 1.9.0.17/2009122204]).
11:56:44 <ion> 【MMD】みんなのリズム天国 霊夢のレスラー会見 パーフェクトプレイ http://youtu.be/k9wt5TrI7II
11:56:46 -!- Frooxius has joined.
11:57:48 <fizzie> olsner: Yes.
12:01:35 <ion> http://i.imgur.com/tRUUT.jpg
12:02:01 <fizzie> The tRUUT is out there.
12:17:49 <barts> ion: i agree.
12:30:20 <Arc_Koen> yes, what barts said
12:30:28 <Arc_Koen> so you can say "almost all zero"?
12:30:41 <Arc_Koen> like, "an almost all zero sequence" or something?
12:31:19 <Arc_Koen> or "that sequence is almost all zero"
12:38:19 <fizzie> Or the members/elements of this sequence are almost all zero".
12:39:59 <fizzie> "-- let R = (r1,r2,...) range over all sequences of non-negative integers which are almost all zero." -- from a random paper.
12:45:59 -!- jiella has joined.
12:46:01 -!- jiella has left.
12:46:15 -!- jiella has joined.
12:48:09 -!- Jafet has joined.
13:12:07 -!- Phantom_Hoover has quit (Ping timeout: 246 seconds).
13:26:18 -!- mig22 has quit (Quit: mig22).
13:30:16 -!- ogrom has joined.
13:42:36 -!- atriq has quit (Quit: Leaving).
13:50:50 -!- MoALTz has quit (Read error: Connection timed out).
13:51:47 -!- MoALTz has joined.
14:10:13 -!- MoALTz has quit (Read error: Connection timed out).
14:15:16 -!- jiella has quit (Quit: Leaving.).
14:16:23 -!- atriq has joined.
14:16:51 -!- MoALTz has joined.
14:16:54 <atriq> I don't recall seeing itidus20 in a whie
14:19:39 -!- MoALTz has quit (Client Quit).
14:19:57 <atriq> I hope he's okay
14:22:18 -!- atriq has quit (Quit: Leaving).
14:24:42 -!- MoALTz has joined.
14:25:55 -!- Ginto8 has quit (Ping timeout: 246 seconds).
14:38:45 -!- MoALTz_ has joined.
14:41:14 -!- MoALTz has quit (Ping timeout: 240 seconds).
14:51:22 <FreeFull> Apparently Icaros comes with a lolcode interpreter
14:52:00 -!- Phantom_Hoover has joined.
14:56:27 <barts> fizzie: that would be an error, you cannot enumerate all such sequences with natural numbers.
14:56:35 <barts> fizzie: you should inform the author about this.
14:58:16 <Phantom_Hoover> FreeFull, what is icaros and how can i kill the people involved
15:01:07 <FreeFull> Phantom_Hoover: Why kill the people involved?
15:01:13 <FreeFull> It's a distribution of Aros
15:01:21 <Phantom_Hoover> lolcode is an abomination
15:01:26 <FreeFull> http://www.icarosdesktop.org/
15:10:14 <Arc_Koen> anyone knows where the names "qdeql" and "sceql" came from?
15:19:50 <fizzie> barts: I don't think it was saying that it could; just that R ranges over all such sequences, and r1, r2, ... are the elements of R.
15:26:05 -!- elliott has joined.
15:45:08 <kmc> shachaf: which film?
15:46:15 <elliott> Why did my client join this channel?
15:46:15 <lambdabot> elliott: You have 1 new message. '/msg lambdabot @messages' to read it.
15:46:22 <elliott> I don't think I have it on autojoin...
15:53:07 -!- atriq has joined.
15:58:08 <atriq> @messages?
15:58:09 <lambdabot> Sorry, no messages today.
16:10:55 <kmc> so really nobody has implemented eodermdrome?
16:11:11 <kmc> it seems like it should not be that hard to produce a slow implementation
16:11:11 <atriq> No
16:11:25 <atriq> oklopol began, according to the lore of #esoteric
16:11:30 <atriq> But never finished
16:11:32 <elliott> kmc: i think the problem is that the slow implementation is way too slow
16:11:48 <elliott> kmc: or maybe just that everyone who is the kind of person who would implement it is the kind of person who wants to use the fancy algorithms to make it fast
16:12:07 <kmc> well my fancy algorithm would be "someone else's SAT solver"
16:12:17 <elliott> that is so cheating
16:13:11 <kmc> well ;P
16:14:13 <atriq> elliott, what makes reify 6 (\p -> reflect p + reflect p) better than (\p -> p + p) 6?
16:14:39 <elliott> atriq: they're not the same thing
16:14:44 <elliott> the "p" value is irrelevant
16:14:54 <elliott> it is its *type* that matters
16:14:57 <elliott> p there is just Proxy
16:15:03 <elliott> it's just Proxy of the right type
16:15:09 <elliott> let me get an example i hpasted ages ago
16:15:27 <elliott> atriq: http://hpaste.org/66715
16:16:07 <elliott> atriq: basically in this example, you can think of the p in "forall p. (Reifies p MyConfig) => ..." as a *value* of type MyConfig
16:16:14 <elliott> just it exists at the type level
16:16:16 <elliott> lifted there by reify
16:16:20 <elliott> and brought back down by reflect
16:18:10 <atriq> I'm not really understanding this
16:19:12 <elliott> that's ok, I didn't either :p
16:19:25 <elliott> atriq: basically, think of reify as turning a value into a type, and reflect as turning a type into a value
16:19:41 <elliott> when you do reify 6 (\p -> ...), p :: Proxy s (for some s we *don't know*)
16:19:49 <elliott> you can think of that s as an Integer at the type level
16:19:51 <elliott> so p :: Proxy 6
16:20:10 <atriq> Okay
16:20:10 <elliott> and since you have (Reifies s Integer), you can do reflect p :: Integer
16:20:15 <elliott> but the value p doesn't matter
16:20:21 <elliott> you only get passed the value p so you have a way to get at the type
16:20:25 <elliott> meanwhile: * voidf (befd1cd9@gateway/web/freenode/ip.190.253.28.217) has joined #haskell <voidf> how to return the type in a function?
16:20:31 <elliott> atriq: imagine if the proxy wasn't there
16:20:34 <elliott> you'd have
16:20:38 <elliott> reify :: a -> (forall s. Reifies s a => r) -> r
16:20:44 <elliott> but of course that's invalid, because you don't reference "s" anywhere
16:21:20 <elliott> atriq: anyway a compelling example is modular arithmetic
16:21:47 <elliott> atriq: with reflection, we can have a type (Mod p Integer)
16:21:51 <elliott> atriq: which represents integers, mod p
16:21:57 <atriq> Okay
16:22:01 <elliott> atriq: and it can be an instance of Num
16:22:05 <atriq> Oh, I see
16:22:12 <elliott> because we use reflection to reify the p being used into the type parameter p there
16:22:23 <elliott> I think I hpasted that too, let me find it
16:22:50 <elliott> atriq: http://hpaste.org/66565
16:23:00 <elliott> actually it's (Mod Integer p) there
16:23:04 <atriq> Actually, I was wondering how you could do that the other day
16:23:07 <elliott> which is slightly inferior: you can't give it a Functor instance
16:23:11 <elliott> but whatever
16:23:11 <atriq> Wow
16:23:38 <elliott> atriq: note that although "modular n = r where r = Modular (n `mod` modulus r)" appears to be circular, it is actually just a silly trick
16:23:45 <elliott> atriq: modulus doesn't examine its value, it only cares about the type
16:24:02 <elliott> so we just use that circularity because Modular (n `mod` modulus ...) happens to have the type we want to give modulus (i.e. n `Mod` p)
16:24:05 <elliott> to get the modulus value
16:24:13 <elliott> anyway look at the commented-out modulo definition instead
16:24:22 <elliott> it does more or less the same thing but without the hack
16:24:30 <elliott> oh!
16:24:31 <elliott> i lie
16:24:37 <elliott> modular turns an integer into the mod form
16:24:42 <elliott> modulo' takes it out
16:25:00 <elliott> modulo is just modulo' but less general
16:25:05 <elliott> but modulo is the actual useful one, so look at it instead
16:25:07 <elliott> atriq: anyway basically you can do:
16:25:34 <elliott> atriq: ((4 + 4) * 2) `modulo` 8 :: Integer
16:25:44 <elliott> atriq: and get 0
16:25:56 <elliott> but it's not just mod, because the mod is done at each step, of course, like regular modular arithmetic
16:26:12 <elliott> atriq: and, as a bonus, the "4" and "2" inside actually have a type that encodes the 8
16:26:21 <elliott> so you can't mix them with regular Integers or so on without conversion
16:26:41 <elliott> anyway reflection is sort of confusing but once you get the hang of it, it is very cool
16:26:47 <elliott> I think the original Oleg paper also did the modular arithmetic thing
16:31:13 <atriq> I think I understand it
16:31:14 <atriq> now
16:31:26 <elliott> kmc: you might enjoy this GHC dark magic: http://hpaste.org/66699
16:31:30 <elliott> (oleg's reimplementation of reflection)
16:32:06 <elliott> atriq: (you may also find the simpler modular arithmetic definition it comes with helpful for understanding it)
17:12:34 -!- atriq has quit (Ping timeout: 260 seconds).
17:18:45 -!- atriq has joined.
17:21:39 -!- jiella has joined.
17:29:19 -!- zzo38 has joined.
17:31:15 -!- oerjan has joined.
17:40:01 -!- Phantom_Hoover has quit (Ping timeout: 245 seconds).
17:41:45 <oklopol> no, i finished eodermdrome
17:42:07 <oklopol> it's just graph rewriting, it's not hard to do. but also what elliott said.
17:42:51 -!- ogrom has quit (Quit: Left).
17:44:10 <oklopol> "<Arc_Koen> has someone done some work about equivalency between programming languages in terms of complexity?" at least between different models of computation
17:44:50 <oklopol> at least iirc i finished it, it's definitely gone in any case.
17:46:02 <olsner> oh, you finnished it?
17:47:05 <oklopol> yes
17:47:08 <fizzie> Does "finnishing" mean the same as finishing and subsequently misplacing the finished thing?
17:47:14 <olsner> yes
17:47:20 <olsner> or finishing and violently deleting
17:47:24 <oklopol> gave it some koskenkorva and didn't speak a word to it for years.
17:47:31 <oklopol> hmm
17:47:34 <oklopol> that's a nice definition
17:47:44 <oklopol> fizzie's that is
17:54:59 <olsner> yes, I think it's funnier if you imagine a more violent end than just misplacing it though
18:00:10 <fizzie> olsner: What are you implying there! Finns aren't violent.
18:02:18 <olsner> oh, of course not
18:03:15 <fizzie> RARRR I HIT YOU WITH AN AXE FOR IMPINGING ON MY HONOR
18:03:31 <fizzie> Sorry, in retrospect that's more of a Norwegian thing to do.
18:03:40 <olsner> yeah, everyone knows the finn's weapon of choice is the knife
18:04:26 <fizzie> I suppose. Though we do have a certain amount of ax-related crime too, I believe.
18:04:44 <fizzie> It's like, the people living in cities knife each other, while the people living in the countryside use axes.
18:04:50 <fizzie> But we're not a violent people.
18:05:18 <fizzie> Back when I quoted from Finnish songs a while ago there was an axe involved.
18:05:22 <fizzie> In the lyrics, I mean.
18:07:21 <Sgeo> Maybe I should learn how a complicated library works before trying to fix it.
18:10:25 <jiella> fizzie: There was the one axing incident in the metro in Helsinki though.
18:13:10 -!- Phantom_Hoover has joined.
18:13:46 <shachaf> kmc: _The Big Lebowski_
18:13:51 <oerjan> axe and you shall receive
18:14:12 <fizzie> jiella: Well, I'm sure. It was a sort of a generalization.
18:14:26 <fizzie> There's probably been a large number of stabbings in the countryside, too.
18:14:29 <oerjan> axe not for whom the bell tolls
18:15:05 <oerjan> it's natural to use an axe when you're out chopping down trees anyhow
18:16:02 <Phantom_Hoover> i never heard of any incidents with axes in uk undergrounds
18:16:26 <fizzie> oerjan: Don't put all your eggs in one baxet.
18:16:29 <elliott> fizzie: are finns ever happy
18:16:43 <Phantom_Hoover> 17:41:45: <oklopol> no, i finished eodermdrome
18:16:48 <Phantom_Hoover> wasn't your interpreter crazy slow
18:16:51 <oerjan> Olen metsuri ja olen kunnossa! Nukun koko yön, ja työskentelen koko päivän!
18:17:45 <fizzie> elliott: I'm a Finn and I am sometimes.
18:18:53 <olsner> amazingly, google translate seemed to have no problem at all with that sentence
18:19:30 <fizzie> It's reasonable cogent. Though the translation of the "I'm okay" part is maybe not the best one for that context.
18:19:48 <jiella> fizzie: Tja, mainly I find it funny that the only axe killing I can remember was done in a Helsinki metro... You can't really get any more urban than that in Finland.
18:20:02 <oerjan> fizzie: when i used "OK" it gave OK in the answer, so i changed it.
18:20:24 <oerjan> *translation
18:20:46 <fizzie> oerjan: "And have buttered scones for tea" => "Ja on voideltuun teeleipiä teen" -- "And has buttered scones for tea" => "Ja on buttered teeleipiä teen".
18:20:55 <fizzie> oerjan: I have no idea why it doesn't know about "buttered" in the second case.
18:21:51 <oerjan> it's because a single person cannot have buttered scones
18:22:07 <fizzie> But it's in the first person in the first case.
18:22:09 <oerjan> you need to be at least two to share the joy
18:22:15 <oerjan> oh.
18:22:21 <fizzie> First person singular, I mean.
18:22:33 <fizzie> On Wednesdays I go shoppin' / And have buttered scones for tea.
18:22:55 <coppro> oerjan: certainly a single person can
18:23:01 <oerjan> it's not _entirely_ unlikely someone put that exact text into google translate before.
18:23:10 <oerjan> coppro: shush, you
18:23:21 <fizzie> "I cut down trees. I wear high heels." => "Olen kaataa puita. En käytä korkokenkiä."
18:23:26 <fizzie> Sometimes it inverts the meaning.
18:23:43 <coppro> this conversation would be more interesting if I knew finnish
18:25:01 <olsner> you don't know finnish?
18:25:43 <oerjan> fizzie: it reinverts it in the other direction too...
18:26:44 <fizzie> "En käytä korkokenkiä. Käytän korkokenkiä." => "I wear high heels. I use high heels."
18:26:54 <fizzie> Machine learning in action.
18:28:10 <oerjan> Älä ammu, tulemme rauhassa!
18:28:27 <oerjan> if it were an _evil_ machine, it would invert that. did it?
18:28:38 <fizzie> No.
18:28:46 <oerjan> hm, fiendish.
18:29:04 <olsner> finndish
18:29:05 <fizzie> "We come in peace, we shoot to kill" also goes through moderately right. Though the latter part is just atrocious grammar.
18:29:18 <fizzie> ("Tulemme rauhassa, me ampua tappaa.")
18:30:42 <fizzie> oerjan: But "I wear shoes" turns into "I don't wear shoes".
18:31:01 <fizzie> oerjan: And "I wear hats" to "I don't wear hats".
18:31:17 <fizzie> But "I wear cloths" is approximately "I clothes".
18:31:26 <fizzie> With the e in the source, too.
18:31:41 <fizzie> "I wear pants" => "I don't wear pants". Well, it's reasonably consistent.
18:31:50 -!- monqy has joined.
18:31:58 <oerjan> so it has some trouble with finns wearing things. probably because of all the sauna.
18:32:30 <fizzie> Plain "I wear" turns (understandably) into "I don't wear/use". (The word has both meanings.)
18:33:01 <olsner> so that you can reuse the same sentence to say what you're wearing inside and outside the sauna?
18:33:27 <oerjan> nah you need to use the saunative case
18:33:34 <fizzie> Maybe I should fix some of those translations and see if it takes.
18:34:27 <fizzie> Well, it remembered it for me.
18:34:55 <fizzie> Aw, no longer when I cleared the whole input text.
18:37:42 <oerjan> <Arc_Koen> hey, do you have a translation for "suite presque nulle" into english? it means "an (infinite) sequence (x0, x1,...) for which there exists N such that for every n > N, xn = 0"
18:37:48 <oerjan> eventually zero, i think
18:38:08 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
18:39:00 <FreeFull> > 1:2:3:(repeat 0)
18:39:01 <lambdabot> [1,2,3,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:39:26 <oerjan> @tell Arc_Koen "eventually zero sequence"
18:39:27 <lambdabot> Consider it noted.
18:39:34 <FreeFull> > seq ([1..]++[0,0..])
18:39:35 <lambdabot> Overlapping instances for GHC.Show.Show (t -> t)
18:39:36 <lambdabot> arising from a use of `...
18:39:51 <FreeFull> :t seq
18:39:52 <lambdabot> forall a t. a -> t -> t
18:40:06 <FreeFull> :t ([1..] ++ [0,0..])
18:40:07 <lambdabot> forall t. (Num t, Enum t) => [t]
18:40:12 <oerjan> seq is the strictness forcing primitive
18:40:19 <FreeFull> Oh, wrong thing
18:40:28 <oerjan> also, the parentheses around repeat 0 are redundant
18:40:33 <FreeFull> > subsequences [1,2,3]
18:40:34 <lambdabot> [[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]
18:40:45 <fizzie> oerjan: But what are all the instances of Show (t -> t) that lambdabot has?
18:41:11 <FreeFull> > subsequences ([1..]++ repeat 0)
18:41:13 <oerjan> > print "a"
18:41:13 <lambdabot> can't find file: L.hs
18:41:16 <oerjan> argh
18:41:17 <lambdabot> <IO ()>
18:41:22 <FreeFull> L.hs?
18:41:33 <oerjan> FreeFull: race condition, i think
18:41:42 <olsner> race with someone doing @let?
18:41:55 <oerjan> or with me, i dunno
18:42:05 <shachaf> hi oerjan
18:42:07 <fizzie> My query got this at about the same time: 21:41 <lambdabot> Plugin `more' failed with: thread killed
18:42:14 <shachaf>
18:42:23 <oerjan> fizzie: it has one instance that is like that IO one, and which used to be used. but then a conflicting one got accidentally imported from some other module.
18:42:49 <oerjan> and it's impossible to fix that without removing one of the imports completely
18:43:02 <FreeFull> > subsequences ([1..]++ repeat 0)
18:43:02 <oerjan> not that everything in lambdabot that _could_ be fixed, has been.
18:43:04 <lambdabot> [[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3],[4],[1,4],[2,4],[1,2,4],[3,4],[1,...
18:43:16 <fizzie> oerjan: Apparently there's something from smallcheck-0.4:Test.SmallCheck according to that @more.
18:43:19 <oerjan> FreeFull: [1..]++ repeat 0 = [1..], it never gets to the second part
18:43:21 <FreeFull> Of course it's never going to get to the zeroes, but you get the point
18:43:53 <oerjan> if you use a bounded number instance, it might, though
18:44:03 <oerjan> Int, in theory, although it'll take a while
18:44:56 <fizzie> > (reverse . take 10 . reverse) [(1::Int8)..]
18:44:58 <lambdabot> [118,119,120,121,122,123,124,125,126,127]
18:45:00 <fizzie> Fancy.
18:45:56 <coppro> blah.
18:46:00 <coppro> fuck intervals
18:46:03 <oerjan> bleh?
18:46:05 <coppro> singing is hard
18:46:14 <oerjan> oh not intervals in math...
18:46:17 <elliott> does anyone know whether Windows 8 will actually require GPT or not
18:46:24 <coppro> elliott: gpt?
18:46:28 * oerjan was thinking coppro was really struggling there
18:46:29 <elliott> gpt
18:46:44 <elliott> http://en.wikipedia.org/wiki/GUID_Partition_Table
18:46:49 <oerjan> coppro: listening to someone failing at singing is even harder, hth
18:47:29 <coppro> oerjan: well that's precisely what I'm doing
18:47:31 <coppro> failing at singing, I mean
18:48:15 <oerjan> so i hope for humanities sake that you're out of earshot.
18:48:22 <oerjan> *humanity's
18:48:27 <coppro> i want a game to play
18:48:28 <fizzie> elliott: Hasn't that Consumer Preview version been out a while now? You'd think someone would have mentioned this in the interwebs.
18:49:06 <zzo38> Does it depend whehter you are also, singing just intonation or equal temperament or whatever, and also what range you sing (soprano, alto, tenor, bass, and whatever else)?
18:49:08 <elliott> well i googled
18:49:11 <elliott> but the results weren't so useful
18:49:39 <oerjan> zzo38: i am _pretty_ sure it depends on range.
18:50:05 <oerjan> like, i wouldn't recommend anyone listening to my soprano.
18:50:11 <oerjan> *listen
18:50:35 <coppro> zzo38: I am a baritone
18:50:53 <zzo38> It is why I play piano, I can play the soprano, alto, tenor, and bass, all at the same time.
18:51:04 <coppro> indeed
18:51:07 <zzo38> coppro: O, OK, yes I forgot that one.
18:51:27 <oerjan> barely tones
18:52:55 <zzo38> I knew someone who sing all ranges
18:53:06 <coppro> all?
18:53:10 <coppro> *unlikely*
18:54:00 <zzo38> Up to the highest soprano and down to the lowest bass. Her chorus was best one and always won any contests they were in at singing good.
18:54:29 <zzo38> It is because they sing all range.
18:54:55 <coppro> *unlikely*
18:55:13 <oerjan> i read that Ivan Rebroff had an enormous range
18:55:13 <coppro> I could believer, perhaps, that she could sing down to the bottom of a contralto range
18:55:25 <coppro> but that's a good octave above a bass
18:56:51 <elliott> oerjan: 4.5 octaves apparently
18:57:16 <oerjan> "Ivan Rebroff (31 July 1931 – 27 February 2008) was a German singer, allegedly of Russian ancestry, with an extraordinary vocal range of four and a half octaves, ranging from the soprano to bass registers.[1]"
18:58:03 <coppro> I find it particularly hard to believe for a woman because you can extend your range upwards with falsetto
18:58:24 <coppro> but you can't significantly extend it downward in the same fashion
18:58:34 <coppro> ... falsetto hurts
19:03:22 <oerjan> @tell Arc_Koen "almost all zero" is ambiguous since it might mean some kind of zero density, but still infinite number of indices.
19:03:22 <lambdabot> Consider it noted.
19:04:44 <oerjan> @tell Arc_Koen for the non-zeroes, i mean.
19:04:44 <lambdabot> Consider it noted.
19:04:55 <fizzie> oerjan: It might be ambiguous, but it was being used in the "finite nonzeros" sense in the webtubes.
19:05:25 <oerjan> ...it's the kind of ambiguity that might differ between field.
19:05:52 <fizzie> "eventually zero" does seem perhaps slightly more popular, though.
19:06:29 <oerjan> http://en.wikipedia.org/wiki/Almost_all lists both meanings.
19:06:33 -!- monqy has quit (Read error: Operation timed out).
19:06:46 <oerjan> (as well as some for non-sequences)
19:08:00 <fizzie> oerjan: I don't see it mentioning sequences at all.
19:08:55 <oerjan> well, the subset of natural numbers ones
19:09:07 <oerjan> which is isomorphic to speaking about sequences >:)
19:09:26 <oerjan> "A simple example is that almost all prime numbers are odd. (Two is a prime number.)"
19:09:36 <oerjan> "Thus, almost all positive integers are composite (not prime), however there are still an infinite number of primes."
19:09:39 -!- Phantom_Hoover has joined.
19:10:03 <fizzie> oerjan: Hokay.
19:10:07 -!- monqy has joined.
19:10:22 <elliott> monqy: special occasion?
19:10:30 <elliott> oh you timed out before
19:10:32 <monqy> what
19:10:37 <monqy> yes
19:10:50 <monqy> elliott: special occasion for you tho?
19:11:03 <elliott> monqy: apparently I put #esoteric on autojoin by mistake
19:11:12 <monqy> happens to everyone
19:11:33 <elliott> monqy: well before like yesterday I joined eight channels by hand every time I opened xchat
19:11:36 <elliott> so
19:11:49 <oerjan> happy happenings
19:17:30 -!- Nisstyre-laptop has joined.
19:19:44 -!- atriq has quit (Ping timeout: 260 seconds).
19:25:43 <zzo38> Then make a macro for each group of channels you want to join, perhaps?
19:26:05 <zzo38> I think xchat must support macros, isn't it?
19:26:26 <oerjan> /alias dontdothiseveragain join #esoteric
20:14:12 -!- Vorpal has quit (Ping timeout: 248 seconds).
20:19:53 -!- Nisstyre-laptop has quit (Read error: Connection reset by peer).
20:22:15 -!- ais523 has joined.
20:35:46 -!- Phantom__Hoover has joined.
20:39:16 -!- Phantom_Hoover has quit (Ping timeout: 248 seconds).
20:51:34 -!- atriq has joined.
20:54:14 <atriq> How can I alter the volume of my computer using ssh?
20:54:25 <atriq> Volume as in loudness
20:54:31 <atriq> Not as in length cubed
20:54:49 <oerjan> ssh SPEAK LOUDER
20:55:02 <atriq> Oh, that's helpful
20:55:07 <oerjan> i know
20:55:30 <atriq> It could not resolve hostname
20:56:30 <oerjan> how incompetent
21:00:12 -!- Nisstyre-laptop has joined.
21:02:31 <atriq> I've ssh'd to my other computer
21:02:45 <atriq> Is it possible to get files from it over here?
21:03:19 <zzo38> I think there is "scp" command to copy files between computers using SSH?
21:03:58 -!- aloril_ has quit (Read error: Operation timed out).
21:04:43 <atriq> Actually, all I really want to do is make my computer an alarm clock
21:05:09 <atriq> I was thinking a cron thingy to start rhythmbox
21:06:15 -!- nortti has quit (Read error: Operation timed out).
21:10:16 <zzo38> I found a mistake in line 154, 155, 164, 165 of one of the files included with FurryScript; it says <HAIR-STYLE-LEN> instead of <HAIR-LEN> so results in wrong output. I will fix it now.
21:10:57 <FreeFull> Copy-paste error?
21:11:26 <zzo38> I don't know why; but I fixed it now.
21:12:27 -!- nortti has joined.
21:12:48 <atriq> Why am I using ssh to access the computer in my bedroom to mess with GHCi?
21:13:03 <atriq> :t flip flip (repeat ()) . scanl . (const .)
21:13:05 <lambdabot> forall a. (a -> a) -> a -> [a]
21:13:06 <zzo38> Actually, I figured it out: It was <HAIR-STYLE-LEN> in the original file, but I renamed it to <HAIR-LEN> for some reason (I fail to remember) and did not correct all of the references to it.
21:13:18 <atriq> iterate in terms of scanl
21:13:33 <atriq> And flip and repeat and const
21:13:38 <atriq> and (.) and ()
21:13:41 <atriq> But mostly scanl
21:14:03 <zzo38> atriq: Are you at home? If so shouldn't you just go into your bedroom to access the computer directly?
21:14:08 <oerjan> <atriq> Why am I using ssh to access the computer in my bedroom to mess with GHCi? <-- you're probably distantly related to Rube Goldberg somehow
21:14:17 -!- aloril_ has joined.
21:14:27 <atriq> zzo38, I don't exactly own a screen.
21:14:39 <oerjan> :t flip flip
21:14:40 <lambdabot> forall (f :: * -> *) a b. (Functor f) => a -> f (a -> b) -> f b
21:14:40 <atriq> I borrow the family computer's screen sometimes, but my mum's using it
21:14:58 <atriq> b -> (a -> b -> c) -> a -> c
21:15:10 <atriq> :t flip
21:15:11 <lambdabot> forall (f :: * -> *) a b. (Functor f) => f (a -> b) -> a -> f b
21:15:28 <atriq> I suppose that's one way of doing flip
21:15:58 <oerjan> caleskell is _slightly_ generalized....
21:16:07 <zzo38> atriq: Yes it is one thing I thought might have been, if that computer lacks a console for any reason you need to access it remotely.
21:16:12 <atriq> So... you need Functor for C and B, Applicative for K and S, and Monad for W
21:16:12 <oerjan> that flip is sometimes useful
21:16:32 <atriq> What's I in this sence
21:16:34 <atriq> :t id
21:16:36 <lambdabot> forall a. a -> a
21:16:46 <elliott> iirc i prefer to call that flip strong
21:16:47 <oerjan> ask from Reader
21:16:49 <zzo38> You can make up I using S and K
21:16:52 <elliott> since I think it's equivalent to a proof that all Functors are strong?
21:16:56 <atriq> :t undefined :: Functor f => f a
21:16:57 <lambdabot> forall (f :: * -> *) a. (Functor f) => f a
21:17:05 <atriq> Wait
21:17:12 <atriq> Is that empty?
21:17:16 <atriq> No.
21:17:19 <atriq> Can't be.
21:17:20 <elliott> no, that's undefined
21:17:30 <atriq> Yes.
21:17:34 <FreeFull> > undefined
21:17:35 <lambdabot> *Exception: Prelude.undefined
21:17:35 <elliott> it isn't anything
21:17:41 <atriq> I meant
21:17:42 <atriq> :t empty
21:17:43 <lambdabot> Ambiguous occurrence `empty'
21:17:43 <lambdabot> It could refer to either `Control.Applicative.empty', imported from Control.Applicative
21:17:43 <lambdabot> or `Text.Regex.Posix.empty', imported from Text.Regex.Posix at State/L.hs:55:0-22
21:17:51 <atriq> :t empty :: Alternative f => f a
21:17:52 <lambdabot> Ambiguous occurrence `empty'
21:17:52 <lambdabot> It could refer to either `Control.Applicative.empty', imported from Control.Applicative
21:17:52 <lambdabot> or `Text.Regex.Posix.empty', imported from Text.Regex.Posix at State/L.hs:55:0-22
21:18:03 <atriq> :t Control.Applicative.empty
21:18:04 <lambdabot> forall (f :: * -> *) a. (Alternative f) => f a
21:18:34 <atriq> :t ap return return
21:18:35 <lambdabot> Ambiguous type variable `m' in the constraint:
21:18:35 <lambdabot> `Monad m' arising from a use of `return' at <interactive>:1:10-15
21:18:36 <lambdabot> Probable fix: add a type signature that fixes these type variable(s)
21:19:02 <oerjan> :t scanl
21:19:03 <lambdabot> forall a b. (a -> b -> a) -> a -> [b] -> [a]
21:20:45 <oerjan> :t (scanl . (const .)) `flip` repeat ()
21:20:46 <lambdabot> forall b. ([()] -> [()]) -> [b] -> [[()]]
21:20:49 <oerjan> oops
21:24:47 <oerjan> :t scanl . (const .)
21:24:48 <lambdabot> forall b a. (a -> a) -> a -> [b] -> [a]
21:25:15 <oerjan> :t (fix .) . scanl . (const .)
21:25:16 <lambdabot> forall a. (a -> a) -> a -> [a]
21:25:31 <oerjan> > ((fix .) . scanl . (const .)) (+1) 0
21:25:33 <lambdabot> [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,...
21:26:19 <atriq> :t unfoldr . (.) Just . ap (ap . ((,) .)) id
21:26:20 <lambdabot> forall a. (a -> a) -> a -> [a]
21:26:31 <atriq> iterate in terms of unfoldr
21:26:53 <atriq> @unpl unfoldr . (.) Just . ap (ap . ((,) .)) id
21:26:54 <lambdabot> (\ h -> unfoldr (\ c -> Just (((\ t y -> (\ ac -> ((,)) (t ac)) >>= \ v -> y >>= \ u -> return (v u)) >>= \ m -> (\ e -> e) >>= \ l -> return (m l)) h c)))
21:26:59 <atriq> Yes
21:27:04 <atriq> I meant...
21:27:19 <atriq> :t \f -> unfoldr (\a -> Just (f a, f a))
21:27:20 <lambdabot> forall a. (a -> a) -> a -> [a]
21:28:34 -!- augur has quit (Remote host closed the connection).
21:29:47 <oerjan> :t \f -> unfoldr (Just . join (&&&) . f)
21:29:48 <lambdabot> No instance for (Arrow (,))
21:29:48 <lambdabot> arising from a use of `&&&' at <interactive>:1:27-31
21:29:48 <lambdabot> Possible fix: add an instance declaration for (Arrow (,))
21:29:52 <oerjan> argh
21:30:14 <atriq> :t join (&&&)
21:30:15 <lambdabot> forall (a :: * -> * -> *) b c. (Arrow a) => a b c -> a b (c, c)
21:30:33 <atriq> :t \f -> unfoldr (Just . join (&&&) f)
21:30:34 <lambdabot> forall b. (b -> b) -> b -> [b]
21:30:49 <oerjan> oh right
21:31:16 <oerjan> :t unfoldr . (Just .) . join (&&&)
21:31:17 <lambdabot> forall b. (b -> b) -> b -> [b]
21:31:34 <atriq> Doing it in terms of foldr...
21:31:37 <atriq> Tricky
21:31:59 <oerjan> foldr is like breaking up lists, not building them
21:32:16 <atriq> I have a feeling it's possible
21:32:20 <zzo38> Does (,) form a semigroupoid (category except identity)?
21:33:10 <atriq> zzo38, so you want (.) :: (b, c) -> (a, b) -> (a, c)
21:33:28 <elliott> what is id :: (a, a)
21:33:33 <zzo38> atriq: Yes and associative
21:33:37 <elliott> oh
21:33:40 <zzo38> elliott: Nothing, which is why it is not a category
21:33:41 <elliott> i didn't read what zzo38 said
21:33:52 <oerjan> elliott: barely avoiding a swat there
21:34:04 <elliott> it's not an instance of http://hackage.haskell.org/packages/archive/semigroupoids/3.0/doc/html/Data-Semigroupoid.html
21:34:05 <elliott> so I bet no
21:34:19 <elliott> thanks science
21:34:24 <atriq> Let's go with the simple (_, c) . (a, _) = (a, c)
21:34:35 <elliott> well that is literally the only way you can define that type
21:34:47 <atriq> For associativity, we need (a . b) . c = a . (b . c)
21:34:52 <zzo38> atriq: Yes that is what I thought.
21:34:56 <oerjan> looks pretty associative to me :P
21:35:19 <atriq> let a = (1, 2), b = (3, 4), c = (5, 6)
21:35:37 <atriq> a . b = (3, 2)
21:35:46 <atriq> (a . b) . c = (5, 2)
21:36:08 <atriq> b . c = (5, 4)
21:36:22 <atriq> a . (b . c) = (5, 2)
21:36:24 <atriq> Associative
21:36:29 <atriq> Hurrah
21:36:39 <oerjan> @check let (_, c) . (a, _) = (a, c); (.) :: (Int, Int) -> (Int, Int) -> (Int, Int) in \x y z -> x . (y . z) == (x . y) . z
21:36:40 <lambdabot> "OK, passed 500 tests."
21:36:55 <atriq> So it's a semigroupoid
21:37:00 <elliott> oerjan: you realise atriq's proof was fully rigorous right :P
21:37:04 <elliott> since 1, 2, 3, 4, 5, 6 are just variables there
21:37:29 <oerjan> elliott: well i would if i had been looking at it while constructing the quickcheck
21:37:45 <elliott> imo type faster
21:37:46 <zzo38> What is this semigroupoid normally called in mathematics?
21:38:02 <oerjan> @scheck let (_, c) . (a, _) = (a, c); (.) :: (Bool, Bool) -> (Bool, Bool) -> (Bool, Bool) in \x y z -> x . (y . z) == (x . y) . z
21:38:03 <lambdabot> "OK, passed 500 tests."
21:38:11 <oerjan> @list scheck
21:38:11 <lambdabot> No module "scheck" loaded
21:38:13 <elliott> isn't scheck just check
21:38:14 <oerjan> @list check
21:38:15 <lambdabot> check provides: check
21:38:17 <elliott> @smallcheck
21:38:17 <lambdabot> Unknown command, try @list
21:38:20 <oerjan> i realized
21:38:29 <zzo38> You could make it into a category by adding an identity, like newtype X a b = X (Maybe (a, b));
21:38:45 <zzo38> Just like you can make a semigroup into a monoid like that too
21:38:58 <oerjan> heh
21:39:28 <oerjan> zzo38: you'd have an identity between non-neighboring elements too, then
21:39:31 <elliott> Maybe (a, b) is the weirdest category I ever heard of
21:39:37 <elliott> is it useful for anything
21:39:41 <oerjan> *non-equal
21:39:42 <atriq> Probably not!
21:40:22 <zzo38> oerjan: Yes I know it allows it, unless you make a GADT to make such thing prohibited
21:40:22 <oerjan> zzo38: oh that doesn't work when a is not b
21:40:51 <oerjan> how would you compose a Nothing in X a b with a Just in X b c
21:41:18 <zzo38> I can see how it won't work now, which is why it has to be a GADT instead.
21:41:22 -!- FreeFull has quit (Quit: Sleeptime).
21:41:24 <oerjan> you need a GADT for this to work, yeah
21:41:27 <elliott> oerjan: data X a b where X :: Maybe (a, a) -> X a a
21:41:29 <elliott> "p e r f e c t"
21:41:40 <atriq> Is it one of these thingies? http://hackage.haskell.org/packages/archive/data-lens/2.10.2/doc/html/Control-Category-Product.html
21:41:49 <oerjan> elliott: ERRR...
21:41:54 <zzo38> data X :: * -> * -> * where { Id :: X a a; Pair :: a -> b -> X a b; };
21:41:57 <atriq> No, it isn't
21:42:01 <atriq> Mystery solved
21:43:05 <elliott> oerjan: what
21:43:20 <elliott> oerjan: it's a category!
21:43:26 <oerjan> O KAY
21:44:00 <atriq> If anyone can find a use for this, I'll be amazed
21:44:05 <zzo38> Yes I see elliott's code is a category, but it is the wrong one.
21:44:54 <elliott> monqy: http://hpaste.org/75855#a75927
21:44:57 <atriq> Goodnight
21:44:59 -!- atriq has quit (Quit: Leaving).
21:45:07 <monqy>
21:47:15 <monqy> ⅋ is pretty crazy too
21:47:24 <elliott> monqy: standard linear logic symbols!!
21:47:26 <elliott> THE JOKE IS: linear logic is crazy
21:50:43 <monqy> do you k now how this thing works im too lazy to figure it out
21:51:08 <monqy> and im guessing overture is an alternative to prelude??
21:51:18 <elliott> ye but you can just ignore the overture thing I don't think it uses anything special from it
21:51:33 <elliott> it's stream processing except it's done w/ linear logic!!
21:51:55 <monqy> i forget whatever i knew about linear logic
21:54:37 <zzo38> What is this category that I wrote about, is called, in a mathematics?
21:59:48 <oerjan> zzo38: i'm not sure but it's also the product of two simpler ones: one with Hom(A, B) = A and one with Hom(A, B) = B
22:02:30 -!- Frooxius has quit (Ping timeout: 264 seconds).
22:04:46 <oerjan> the former is Const, is it not? although it isn't listed as an instance in that semigroupoid package
22:05:05 <zzo38> OK
22:12:36 <coppro> I love the Internet Standard Content Rating System
22:12:42 <coppro> it has two categories: SFW and NSFW
22:14:15 <monqy> standard eh
22:14:45 <monqy> can I give a five star and two thumbs up rating
22:18:24 -!- sirdancealot7 has quit (Read error: Connection reset by peer).
22:23:30 -!- augur has joined.
22:25:02 <oerjan> you _may_, but you cannot.
22:28:51 <Arc_Koen> oops, did I forgot to sign
22:28:51 <lambdabot> Arc_Koen: You have 3 new messages. '/msg lambdabot @messages' to read them.
22:28:56 <Arc_Koen> woooooouh people love me
22:29:07 <Arc_Koen> my guess: three of those people are Oerjan
22:29:07 <elliott> they might all be "fuck you"
22:29:15 <oerjan> _might be_.
22:29:15 <Arc_Koen> @messages
22:29:16 <lambdabot> oerjan said 3h 49m 49s ago: "eventually zero sequence"
22:29:16 <lambdabot> oerjan said 3h 25m 53s ago: "almost all zero" is ambiguous since it might mean some kind of zero density, but still infinite number of indices.
22:29:16 <lambdabot> oerjan said 3h 24m 31s ago: for the non-zeroes, i mean.
22:29:46 <oerjan> @tell elliott fuck you
22:29:47 <lambdabot> Consider it noted.
22:29:50 <Arc_Koen> hmmm right
22:30:36 <elliott> @ask oerjan <3
22:30:37 <lambdabot> Consider it noted.
22:30:42 <oerjan> i wouldn't want elliott to be disappointed
22:30:42 <lambdabot> oerjan: You have 1 new message. '/msg lambdabot @messages' to read it.
22:30:48 <oerjan> @messages
22:30:48 <lambdabot> elliott asked 12s ago: <3
22:30:53 <oerjan> ooh
22:31:09 <Arc_Koen> I think in france we have a consensus that subsets of a countable set cannot have a measure zero if they are themselves infinite
22:31:58 <oerjan> Arc_Koen: "measure" is a technical term which does not work well with the whole space being countable. if you want any uniformity.
22:31:59 <Arc_Koen> or maybe we just assume that something more complicated than "a sequence with a finite number of non-zeroes" deserves a more complicated name than "suite presque-nulle"
22:32:56 <Arc_Koen> though I guess the sequence (1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, ...) could be considered to have not many non-zeroes as well
22:33:02 <oerjan> Arc_Koen: the wikipedia article on "Almost all" mentions as an example that Almost all integers are composite
22:33:14 <oerjan> for one of the meanings.
22:33:25 <oerjan> er, all natural numbers, i guess.
22:33:49 <Arc_Koen> "Almost all" is sometimes used synonymously with "all but [except] http://en.wikipedia.org/wiki/Finite_set many" (formally, a http://en.wikipedia.org/wiki/Cofinite set) or "all but a http://en.wikipedia.org/wiki/Countable_set" (formally, a http://en.wikipedia.org/wiki/Cocountable set); see http://en.wikipedia.org/wiki/Almost.
22:33:56 <Arc_Koen> errh, pardon my horrible pasting
22:34:22 <oerjan> yep, sometimes. and sometimes it's used completely differently.
22:34:30 <Arc_Koen> but yeah that sentence at the beginning of the article basically means "what 'almost all' means depend on the context" so it's not very helpful
22:35:06 <oerjan> it _is_ very helpful, it tells you it's ambiguous :P
22:35:31 <Arc_Koen> what isn't
22:35:47 <oerjan> "eventually" >:)
22:36:14 <Arc_Koen> also, yeah, it's been a while since the last measure theory class I attended
22:36:39 <Arc_Koen> (which is kinda sad, in a sense)
22:37:05 <Arc_Koen> oerjan: (1, 2, 0, 3, 4, 5, 6, ...) is eventually 0!
22:37:16 <oerjan> come to think of it, you could probably use it for all but a meagre set, too...
22:40:16 <Arc_Koen> oops... once more I felt short of being loyal to my earlier "let's get to bed early tonight" resolution
22:41:15 <oerjan> i usually do that.
22:41:32 <oerjan> sometimes by half a day.
22:41:34 <Arc_Koen> go to bed early?
22:41:47 <oerjan> no, fall short.
22:42:52 <Arc_Koen> I think esolangs.org owes me sleep
22:43:19 <oerjan> i think it has very little to pay with
22:44:33 <Arc_Koen> well I usually spend more time volunteering than actually working, so I guess my time isn't so expensive
22:44:51 <oerjan> also, Ndeql looks evil.
22:45:00 <Arc_Koen> hehe :)
22:45:10 <Arc_Koen> oh crap
22:45:24 <Arc_Koen> oh no, nothing
22:45:43 <Arc_Koen> anyway, I didn't know what qdeql and sceql stood for so I just replaced the first two letters
22:46:10 <elliott> Arc_Koen: sorry, i cannot offer refunds
22:46:18 <oerjan> i don't know either
22:46:26 <elliott> I bet graue offered refunds. elliott worst wiki admin
22:46:56 <oerjan> only if you managed to catch him online.
22:46:59 <Arc_Koen> that's disappointing, at least when I volunteer I get free lunches or stuff
22:48:27 <oerjan> oh those were graue's languages, not cpressey's
22:48:41 <oerjan> might be hard to find out what they stand for, then
22:49:35 <Arc_Koen> Oerjan: although Ndeql's evilness was kind of an accident, I had that "random variable" idea in mind for a while and yesterday I wrote a sceql interpreter and I thought the two ideas would be perfect for each other
22:52:57 <Arc_Koen> oh I just noticed today, Category:Stack-based and Category-Queue-based are subcategories of Category:Languages, but Category:Deque-based isn't and I must say, discriminating mixed-race like that, it's RACISM, mate
22:53:24 <Arc_Koen> anyway have a good night
22:53:48 -!- Arc_Koen has quit (Quit: that's dr. turing to you, punk).
22:54:05 -!- Arc_Koen has joined.
22:54:09 <monqy> hi
22:54:25 <Arc_Koen> hmmm something wrong with auto-reconnect server, or something
22:54:27 <oerjan> someone is very good at falling short
22:54:57 <oerjan> IT'S AN OMEN AND YOU MUST STAY
22:55:13 <Arc_Koen> it's weird it only does that for freenode
22:56:17 <oerjan> nope, i don't have a clue how to tame Ndeql's randomness
22:57:37 <Arc_Koen> proving it cannot be tamed would be enough to tame it
22:57:51 <oerjan> that's true
22:58:33 <oerjan> oh i know!
22:58:36 <Arc_Koen> (I would say I just proved it could be tamed but Gödel says no)
22:59:14 <monqy> dangit Gödel
22:59:19 <oerjan> there is absolutely guarantee against one particular variable _never_ being the one involved in anything, _except_ for being used for all the \ commands. which means it is always possible for all loops to be skipped.
22:59:26 <oerjan> *no guarantee
22:59:56 <Arc_Koen> ok
23:00:07 <Arc_Koen> now to fix that
23:00:35 <Arc_Koen> "the \ command can only select variables which are not 0"
23:00:50 <oerjan> ...i think that might have other problems :)
23:00:51 <Arc_Koen> there, you have your guarantee WHAT DO YOU MEAN "it's worse"
23:01:56 <elliott> hi
23:02:02 <Arc_Koen> about that "two stacks but no communication" silly idea: I had loops based on whether the register had been modified or not
23:02:17 <oerjan> sounds dangerous
23:02:31 <Arc_Koen> sprunge.us/died or something
23:02:48 <oerjan> oh it did? well good riddance.
23:03:09 <Arc_Koen> (so I decided to name that language "died")
23:04:20 <Arc_Koen> however a better version: http://sprunge.us/FXJc
23:06:10 <Arc_Koen> ok I'd really like to follow the omen but that's probably not a good idea so gnight
23:12:10 <Arc_Koen> (well as for the conditionals that allow to pass information from one side to the other - I might be ok with that if it's not too easy to do, or if for any other reason the language is not tc)
23:12:18 -!- Arc_Koen has quit (Quit: that's dr. turing to you, punk).
23:18:00 <pikhq_> http://sprunge.us/CSTT Hooray, it sucks!
23:18:26 <monqy> yes
23:20:11 <elliott> huray
23:20:21 <elliott> ps what does this do
23:20:23 <pikhq_> gzip
23:21:04 <pikhq_> Because I was stupendously lazy with the IO, it doubles in speed if linked against musl.
23:21:14 <pikhq_> (apparently glibc getchar is slow?)
23:23:50 <elliott> pikhq_: Should I buy a UEFI motherboard?
23:24:08 <pikhq_> elliott: Is it possible to not anymore?
23:24:14 -!- sirdancealot7 has joined.
23:24:16 <Sgeo> A language sucking in certain ways doesn't mean I should abandon it, does it?
23:24:17 <pikhq_> MS is pushing UEFI pretty hard.
23:24:56 <elliott> pikhq_: I... assume so?
23:25:05 <elliott> It would be pretty weird if the entire computer inventory stopped selling BIOS motherboards over night.
23:25:07 <elliott> Am I really that behind?
23:25:09 <elliott> Deewiant???
23:25:25 <pikhq_> elliott: IIRC they sell mobos that can be toggled between UEFI and BIOS.
23:25:26 <elliott> Sgeo: Are you using the language because it is a useful tool or because it is a community?
23:25:45 <elliott> If the former, yes, if those ways affect how you are coding in a negative way that other languages do not. If the latter, it doesn't matter.
23:26:14 <elliott> pikhq_: Do you have to deal with this "Secure" Boot nonsense if you do UEFI?
23:26:17 <elliott> Or is that a separate thing?
23:26:41 <pikhq_> elliott: That's a separate thing.
23:27:14 <pikhq_> Well. Technically, it's a feature of UEFI...
23:27:29 <pikhq_> But anyways. On x86, Microsoft is mandating that it be optional.
23:27:33 <pikhq_> So you needn't bother.
23:27:38 <elliott> Thicrosoft.
23:29:21 -!- augur has quit (Read error: Connection reset by peer).
23:29:58 -!- augur has joined.
23:30:23 <zzo38> I should make up a BIOS which is complete PC BIOS, public domain, and Forth interpreter built-in which is also used to configure it, and then I think it would be completely OK. It can then be made the computer which has a jumper to enable UEFI, to enable BIOS, and to enable both.
23:30:48 <elliott> I agree.
23:31:11 <monqy> me too
23:32:10 <zzo38> I think it would be better than what is currently have, isn't it? Especially if it is also BIOS one function is to download an operating system over the internet, so that you can install an operating system even if you do not have a disk, or use it to emulate a VT100 terminal, or whatever
23:33:25 <Jafet> You can even write, in forth, an ipmi like operating system. Oh wait.
23:33:38 <zzo38> What is a ipmi like operating system?
23:34:08 <elliott> pikhq_: I forget, does btrfs support shrinking?
23:34:19 <pikhq_> I dunno
23:34:54 <Jafet> Well, I suppose real IPMI runs on separate hardware
23:39:38 <Sgeo> International Microwave Power Institute?
23:39:42 <Sgeo> Oh, whoops
23:49:27 -!- kinoSi0 has joined.
23:52:05 -!- kinoSi has quit (Ping timeout: 246 seconds).
23:59:35 -!- Phantom__Hoover has quit (Read error: Connection reset by peer).
←2012-10-06 2012-10-07 2012-10-08→ ↑2012 ↑all