00:03:19 -!- bb010g has quit (Quit: Connection closed for inactivity).
00:03:32 -!- atrapado has quit (Quit: Leaving).
00:07:34 <Melvar> Blerg. How does one find out the size of C types when one is not in C?
00:08:32 <hppavilion[1]> I thought of a new elementary programming challenge
00:09:38 <hppavilion[1]> And a certain number of words in, cut off the word halfway through and append "- OH MY *BLUB* GOD IT'S A *BLUB* CAT"
00:15:35 <HackEgo> [wiki] [[ABCD]] http://esolangs.org/w/index.php?diff=44545&oldid=44544 * LegionMammal978 * (+25)
00:20:46 -!- FireFly has quit (Ping timeout: 246 seconds).
00:22:09 -!- heddwch has quit (Ping timeout: 265 seconds).
00:32:42 -!- doesthiswork has joined.
00:36:41 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
00:37:16 <boily> ♪ fish go bluuuub ♪
00:44:01 -!- heddwch has joined.
00:44:22 -!- FireFly has joined.
00:47:57 -!- _denis_ has quit (Quit: Sto andando via).
01:04:45 <newsham> > let f inp = let (xs,x) = (init &&& last) (words inp) in intercalate " *BLUB* " (xs ++ [take (length x `div` 2) x]) ++ "- OH MY *BLUB* GOD IT'S A *BLUB* CAT" in f "welcome to esolang everyone"
01:04:47 <lambdabot> "welcome *BLUB* to *BLUB* esolang *BLUB* ever- OH MY *BLUB* GOD IT'S A *BLUB...
01:06:07 <newsham> ?let goldfish inp = let (xs,x) = (init &&& last) (words inp) in intercalate " *BLUB* " (xs ++ [take (length x `div` 2) x]) ++ "- OH MY *BLUB* GOD IT'S A *BLUB* CAT"
01:06:25 -!- somethingsomethi has joined.
01:06:39 -!- somethingsomethi has left.
01:07:35 * oerjan swats hppavilion[1] -----###
01:07:35 <newsham> > text $ goldfish "I am the walrus"
01:07:37 <lambdabot> I *BLUB* am *BLUB* the *BLUB* wal- OH MY *BLUB* GOD IT'S A *BLUB* CAT
01:08:34 <oerjan> hppavilion[1]: lambdabot doesn't allow user defining actual @commands
01:09:32 <oerjan> ?let only affects the environment used by > and @run
01:09:53 <newsham> ?let goldfish' = text . goldfish
01:10:26 -!- boily has quit (Quit: SOPRANO CHICKEN).
01:11:10 <lambdabot> Couldn't match type ‘Doc’ with ‘[Char]’
01:14:09 <newsham> > goldfish' "you dont need text with this one"
01:14:10 <lambdabot> you *BLUB* dont *BLUB* need *BLUB* text *BLUB* with *BLUB* this *BLUB* o- OH...
01:15:03 <Sgeo> hppavilion[1], does i have an encoding in lambda calculus?
01:16:46 <oerjan> that's pretty trivial.
01:17:18 <oerjan> in fact it's right there on the Iota page.
01:17:53 <hppavilion[1]> I asked him earlier to encode @ into λ-calculus as a partial joke
01:18:14 <oerjan> well first you need to encode complex numbers in general.
01:18:51 <Sgeo> I think we still have 3 competing definitions of |a + b@|
01:19:01 <Sgeo> (And two people making those definitions)
01:19:34 <Sgeo> At least one is Jewish
01:20:39 <Sgeo> A number defined (or perhaps || redefined, to be more accurately possible) such that |@| = -1
01:21:07 <oerjan> ok good, the first google hit i found said "israelis"
01:21:30 <oerjan> i suppose you're not israeli though
01:24:18 <oerjan> what i recall from that discussion is that you couldn't even decide to make it a proper ring :P
01:24:44 <oerjan> even though that _seems_ to be basically compatible with the premise.
01:25:10 <oerjan> well, technically anything that doesn't speak about || would be compatible
01:26:10 -!- FireFly has quit (Ping timeout: 272 seconds).
01:26:20 -!- heddwch has quit (Excess Flood).
01:26:30 -!- heddwch has joined.
01:27:55 <pikhq> Ring ring ring ring, bananaphone
01:28:04 -!- FireFly has joined.
01:28:23 <oerjan> well you kept discussing what addition should do, which is really trivial if you assume a ring...
01:28:58 <Melvar> Aaa how do I find out how big size_t is?
01:29:07 <pikhq> Melvar: sizeof(size_t)?
01:29:07 <oerjan> also, it seems logical to make it a real vector space.
01:29:16 <pikhq> Or do you mean SIZE_T_MAX?
01:29:17 <Melvar> pikhq: I’m not writing in C.
01:29:29 <oerjan> Melvar: what language are you writing in?
01:30:03 <Sgeo> oerjan, I haven't considered multiplication much, but I think |a + b@| is more... answerable than a + b@, like how you can't simplify a+bi
01:30:03 <Melvar> Well, so far really I’m not writing in any at all, but if I found a halfway promising route it would be Idris.
01:31:12 <oerjan> Sgeo: my intuition says that if you are including both i and @, and say that @^2 = 1 (i think that was suggested), then a + bi + c@ + di@ would be the general form of your numbers
01:31:31 <oerjan> making addition and multiplication obvious.
01:31:57 <oerjan> and then you just have to define || to fit reasonably.
01:32:21 <Sgeo> That makes sense, I think I've sort of been assuming that. That last part is what's tricky, and I'm not convinced that there's only one reasonable || definition
01:32:29 <Melvar> I can call C functions, but I can only marshal int, double, (char *), pointer, and uint{8,16,32,64}_t values and have to know which to use.
01:32:58 <oerjan> Melvar: well you are the idris expert here in the channel afaik
01:33:13 <oerjan> doesn't it have an ffi?
01:33:48 <oerjan> in which case either the ffi should have a way to tell, or you could use it to write a small C wrapper that did
01:34:07 <oerjan> hm i guess the latter wouldn't be a compile time result
01:34:13 <Melvar> I listed the available types just above.
01:34:52 <oerjan> well i'm pretty sure the C standard doesn't _require_ size_t to be any of them.
01:35:16 <pikhq> The C standard would permit size_t to be a uint80_t.
01:35:43 <pikhq> The C standard also does not require uint8_t, uint16_t, uint32_t, or uint64_t to exist.
01:35:59 <oerjan> although i vaguely assume uint32_t and uint64_t to be the most likely
01:36:30 <oerjan> !c printf("%d", sizeof(size_t));
01:36:34 <pikhq> It has the pretty loose requirement that uint*_t exist if your system has a conforming type. :)
01:36:53 <pikhq> And you're correct, *in practice* uint32_t and uint64_t are the likely types.
01:37:20 <pikhq> With uint16_t much less likely but technically still possible, and that rounds up the ones you're realistically going to see.
01:37:50 <Melvar> Well, the uint types listed must exist to compile the idris C rts.
01:38:02 <pikhq> Sounds like a poorly thought out RTS.
01:39:08 <Melvar> Furthermore, I expect that any system on which it is possible to compile Idris will not only have those, but will also have size_t be one of those sizes.
01:39:11 <oerjan> :t Foreign.C.Types.CSize
01:40:03 <oerjan> i'm guessing that's Haskell's version
01:40:27 <pikhq> Well yes, POSIX requires the types to exist (and it's unlikely as hell that size_t will be a weird type in such a case). :)
01:42:06 <Melvar> ( [Int, Bits8, Bits16, Bits32, Bits64]
01:42:06 <idris-bot> [Int, Bits8, Bits16, Bits32, Bits64] : List Type
01:43:29 <pikhq> Another telling thing: it says "pointer". C pointers do not necessarily have the same representation.
01:43:51 <pikhq> char* and void* have the same representation, and must be able to point to any object.
01:43:58 <pikhq> All other pointer types do not have this property.
01:45:06 <pikhq> (sizeof(double*) and sizeof(char*), say, don't even have to be the same)
01:45:20 <Melvar> It seems to be a (void *).
01:46:19 <pikhq> (C: the language that nobody actually understands! :P)
01:54:18 -!- bb010g has joined.
01:55:33 -!- adu has joined.
01:56:45 <lambdabot> ‘IM.size’ (imported from Data.IntMap),
02:00:20 <Melvar> So, well, where do things like compilers with FFIs that provide for size_t get their info about how it needs to be dealt with?
02:05:26 <pikhq> libffi is a popular choice.
02:07:09 -!- bender| has joined.
02:12:52 <lambdabot> ‘IM.size’ (imported from Data.IntMap),
02:14:32 <\oren\> I see. I have been informed that the french my dad speaks is not quebecois french, it is "horrible french"
02:44:20 -!- heroux has joined.
02:46:36 -!- hppavilion[1] has quit (Ping timeout: 272 seconds).
02:47:17 -!- doesthiswork has quit (Quit: Leaving.).
02:47:58 -!- doesthiswork has joined.
02:51:07 <Sgeo> Isn't there some kind of deep reason you can have a system of imaginaries like 1 + i + j + k but not 1 + i + j? Because I imagine @ giving complications similar to the latter when mixed with normal imaginaries
02:51:18 <Sgeo> I don't actually know what those complications are though
02:53:50 <doesthiswork> so the dilemma is whether |a+bi+c@+di@| should equal sqrt(a^2+b^2-c^2-d^2), equal sqrt((a-c)^2+(b-c)^2) or possibly something different?
02:55:04 <Sgeo> I think I had a good reason for disliking the former, the latter could be simplified
02:55:15 <Sgeo> Well not simplified, but differneized
02:56:24 <Sgeo> Why don't I start like this: |(a+b@)(c+d@)| = |ac + (ad+bc)@ + bd@^2|
02:56:54 <Sgeo> meh we don't really know |@^2| although = 1 seems reasonable
02:59:28 <Sgeo> Under the |a+b@| = |a| - |b| we get (|a| - |b|)(|c| - |d|) = |ac| - |ad + bc| + |bd|? = |a||c| - |a||d| - |b||c| + |b||d|
02:59:29 <doesthiswork> also I think I heard that in quaternions k is just a notational convenience but is not any different from ij.
02:59:57 <Sgeo> (Assuming |a||b| = |ab|)
03:00:20 <Sgeo> That looks really wrong.
03:02:36 <Sgeo> |ac| - |ad + bc| + |bd| = |ac| - |ad| - |bc| + |bd|; |ad + bc| = |ad| + |bc|; which is known incorrect
03:03:51 <Sgeo> If |@| = -1 and |@@| = 1 and |ab| = |a||b| for a and b in c@mplexes, then |a+b@| = |a| - |b| is a bad definition.
03:03:58 <Sgeo> We know something concrete, yay!
03:04:30 <Sgeo> Let's see if I can plug in an example to the original equation to make it obvious
03:04:51 <Sgeo> a = c = d = 1; b = -1
03:05:16 <doesthiswork> yes, can we recover |a+@b| = |a|-|b| for either pure imaginary or pure real numbers?
03:07:08 <Sgeo> meh don't feel like plugging it i
03:07:34 <Sgeo> How about that other definition, |a+b@| = 2a - |a+bi|
03:07:57 <Sgeo> (Where a and b are real, so we can use abs of complex to mean "distance")
03:09:08 <Sgeo> doesthiswork, imagining a and b as values along dimensions, and || as distance, except b contributes negatively
03:10:00 -!- hppavilion[1] has joined.
03:10:32 <Sgeo> |a+bi| - 2|a-bi|... hmm
03:10:39 <Sgeo> I originally worked it out with sqrt and squares
03:11:38 <Sgeo> It should be in logs somewhere, but right now it looks a bit weird
03:11:42 <doesthiswork> I am haveing trouble imagining an orthogonal vector that decreases distance from the orgin
03:12:02 <oerjan> Sgeo: the problem with 1 + i + j is defining division, afair
03:12:49 <oerjan> other than that, any reasonable multiplication of the basis elements should work for a ring
03:13:15 <Sgeo> Back to examining |a+b@| = 2a - |a+bi|
03:13:25 <oerjan> (reasonable: the multiplication gives a group on what you can reach with it)
03:13:39 <Sgeo> |(a+b@)(c+d@)| = |ac + (ad+bc)@ + bd@^2|
03:14:03 <oerjan> well, for things like ij = -k or the like. it's probably complicated if you mix in addition there
03:14:41 <Sgeo> (2a - |a+bi|)(2c - |c+di|) = |(ac... crud
03:15:22 <Sgeo> Questionable assumption: |a + b@@| isn't necessarily |a+b| even if |@@| = 1, right?
03:15:23 <oerjan> Sgeo: oh hm there's an obvious property you _could_ try to get (it works for complex numbers): |zw| = |z||w|
03:15:45 <oerjan> i have my doubts it works here...
03:15:52 <Sgeo> I assumed that before in my definition disproof for |a+b@| = |a| - |b|
03:16:24 <Sgeo> if @@ = i (it doesn't obviously) |1 + i| != |1+1|
03:17:07 <Sgeo> Oh you gave an assumption @@ = 1, so I can just append that to my above disproof
03:17:17 <doesthiswork> |a|^2=|a^2| so 1 is an very reasonable value for |@^2|
03:17:32 <Sgeo> doesthiswork, but that's not the question
03:19:30 <Sgeo> (2a - |a+bi|)(2c - |c+di|) = 2(ac + bd) - |(ac + bd) + (ad + bc)i|
03:20:36 <Sgeo> Well the 4 vs 2 is scaring me a bit, but let's keep going
03:21:45 <Sgeo> 4ac - 2a|c+di| - 2c|a+bi| + |a+bi||c+di| = 2ac + 2bd - |(ac + bd) + (ad + bc)i|
03:23:57 <Sgeo> 2ac - 2a|c+di| - 2c|a+bi| = 2bd - |ac + bd + adi + bci|
03:24:14 <Sgeo> I feel like I'm getting nowhere fast
03:26:46 <oerjan> doesthiswork: hey i'm even further back ok
03:27:03 * oerjan not going to try understanding the details
03:31:50 <HackEgo> @ is an OS made out of only the finest vapour.
03:32:21 <Sgeo> |(ac + bd) + (ad + bc)i| = sqrt((ac + bd)^2 - (ad + bc)^2); sqrt((ac)^2 + 2abcd + (bd)^2 - (ad^2) - 2abdc - (bc)^2) = why do I do this to myself
03:33:17 <Sgeo> sqrt((ac)^2 + (bd)^2 - (ad)^2 - (bc)^2)
03:33:38 <Sgeo> This looks really wrong but it's not even the prior problem
03:38:32 <Sgeo> In the same way sqrt(1) = -1
03:39:12 <Sgeo> Dealing with that is a good reason to avoid |a+b@| = sqrt(a^2 - b^2) as a definition
03:39:39 <Sgeo> Because it only makes the inside negat... well if |@| = i instead of |@| = -1 that could be an approach
03:39:56 <Sgeo> Then |@^2| = -1
03:42:20 <Sgeo> I'll call it # such that |#| = i and #^2 = @
03:43:09 <Sgeo> Although it's hard to determine the sign of the sqrt function
03:43:31 <Sgeo> But let's say we want to find |a + b@| = |... crud
03:45:40 <Sgeo> 2ac - 2a|c+di| - 2c|a+bi| = 2bd - |ac + bd + adi + bci|
03:48:21 <Sgeo> 2a|c+di| + 2c|a+bi| - 2ac = |(ac + bd) + (ad + bc)i| - 2bd
03:50:03 -!- TodPunk has quit (Read error: Connection reset by peer).
03:50:42 -!- TodPunk has joined.
03:51:18 <oerjan> if |@| = i instead, we'd have minkowski geometry.
03:51:41 <oerjan> which is a very respectable thing, although i'm not sure if it has a multiplication.
03:53:31 <oerjan> it's basically |(a,b,c,d)| = sqrt(a^2 - b^2 - c^2 - d^2)
03:53:46 <oerjan> (in 4 dimensions, the most important one for physics)
03:57:12 -!- bender| has changed nick to bender.
03:57:34 -!- bender has changed nick to bender|.
03:57:52 -!- TodPunk has quit (Read error: Connection reset by peer).
03:58:16 -!- TodPunk has joined.
04:00:30 <Sgeo> Woohoo I have an extra hour to do math before having to do work stuff
04:00:52 <Sgeo> Although I might be slightly stumped right now
04:02:25 <Sgeo> Tempted to plug in random numbers and see what happens
04:04:54 <Sgeo> > let dist a b = sqrt (a^2 + b^2); f a b c d = 2 * a * dist c d + 2 * c * dist a b - 2 * a * c; g a b c d = dist (a * c + b * d) (a * d + b * c) - 2 * b * d in (f 1 -1 1 1, g 1 -1 1 1)
04:17:07 -!- ^v has joined.
04:30:56 <oerjan> > let dist a b = sqrt (a^2 + b^2); f a b c d = 2 * a * dist c d + 2 * c * dist a b - 2 * a * c; g a b c d = dist (a * c + b * d) (a * d + b * c) - 2 * b * d in (f 1 (-1) 1 1, g 1 (-1) 1 1)
04:31:35 <lambdabot> from the context (Num a, Num (a -> t))
04:31:35 <lambdabot> bound by the inferred type for ‘e_111’: (Num a, Num (a -> t)) => t
04:31:59 <Sgeo> And... that's not the answer I was hoping for
04:32:25 <Sgeo> Although any of my algebra could be wrong too
04:36:42 <Vorpal> <hppavilion[1]> boily: I think it's in Vorpal's Funge-98 interpreter <-- it was. it is fixed
04:36:48 -!- hppavilion[1] has quit (Ping timeout: 272 seconds).
04:49:07 <Sgeo> Wonder if I can actually create a definition
04:49:17 -!- variable has joined.
04:49:44 <Sgeo> Hmm, probably no
04:49:59 <Sgeo> (I meant by using that rule that I expect to hold)
04:50:46 <Sgeo> > 2^3 -- checking pow vs xor
04:56:59 * Sgeo eyes the @@=1 assumption suspiciously
04:58:17 <oerjan> @check \x y -> (x::Int) `xor` y == x^y
04:58:19 <lambdabot> *** Failed! Falsifiable (after 1 test):
04:58:24 <oerjan> @check \x y -> (x::Int) `xor` y /= x^y
04:58:25 <lambdabot> *** Failed! Exception: 'Negative exponent' (after 2 tests and 1 shrink):
04:58:43 <oerjan> @check \x y -> y>=0 => (x::Int) `xor` y /= x^y
04:58:43 <lambdabot> <unknown>.hs: 1: 14:Parse error: =>
04:58:57 <oerjan> @check \x y -> y<0 || (x::Int) `xor` y /= x^y
04:59:55 <oerjan> @check \x y -> y<0 || (x::Int) `xor` y /= x^y
05:01:42 <oerjan> hmph it's not actually true
05:01:45 <oerjan> @check \x y -> y<0 || (x::Int) `xor` y /= x^y
05:02:13 <oerjan> > ( \x y -> y<0 || (x::Int) `xor` y /= x^y ) 0 0
05:02:27 <oerjan> > ( \x y -> y<0 || (x::Int) `xor` y /= x^y ) 1 0
05:02:39 <oerjan> @check doesn't check enough
05:02:45 <oerjan> @check \x y -> y<0 || (x::Int) `xor` y /= x^y
05:05:46 <oerjan> :t (Test.QuickCheck.=>)
05:05:47 <lambdabot> Not in scope: ‘Test.QuickCheck.=>’
05:06:46 <oerjan> @check \x y -> y>=0 ==> (x::Int) `xor` y /= x^y
05:06:46 <lambdabot> : -1: -1:Ambiguous infix expression
05:07:05 <oerjan> @check \x y -> (y>=0) ==> ((x::Int) `xor` y /= x^y)
05:11:24 <Sgeo> (2a - |a+bi|)(2c - |c+di|) = 2(ac + bd) - |(ac + bd) + (ad + bc)i|
05:12:56 <Sgeo> @check \a b c d -> let dist a b = sqrt (a^2 + b^2) in (2 * a - dist a b) * (2 * c - dist c d) ==> 2 * (a * c + b * d) - dist (a * c + b * d) (a * d + b * c)
05:12:58 <lambdabot> Couldn't match expected type ‘Test.QuickCheck.Safe.SProperty’
05:12:58 <lambdabot> with actual type ‘Bool’ In the second argument of ‘(*)’, namely ‘c’ In the f...
05:14:13 <Sgeo> I have no idea how to check
05:14:47 -!- hppavilion[1] has joined.
05:19:52 -!- hppavilion[1] has quit (Ping timeout: 272 seconds).
05:20:47 -!- hppavilion[1] has joined.
05:26:46 <oerjan> Sgeo: the thing to the right of ==> should probably be a boolean expression
05:27:07 <Sgeo> What do I put to the left of it?
05:27:10 <oerjan> also, the precedence of ==> seemed to require some parentheses
05:27:17 <oerjan> another boolean expression
05:27:25 <Sgeo> @check \a b c d -> True ==> let dist a b = sqrt (a^2 + b^2) in (2 * a - dist a b) * (2 * c - dist c d) == 2 * (a * c + b * d) - dist (a * c + b * d) (a * d + b * c)
05:27:26 <lambdabot> *** Failed! Falsifiable (after 2 tests and 1088 shrinks):
05:27:27 <lambdabot> -0.24087198985222466 0.590250929928695 -1.0415408383336255 -0.16549717990989027
05:27:40 <oerjan> um you don't need ==> at all then
05:27:56 <oerjan> it's for when you have a prerequisite for the check
05:28:11 -!- doesthiswork has quit (Quit: Leaving.).
05:28:14 <oerjan> and you don't want the prerequisite failing to count as the whole failing. i assume.
05:28:29 <oerjan> @check \x -> False ==> x == 1
05:28:30 <lambdabot> No instance for (Show prop0) arising from a use of ‘myquickcheck’
05:28:30 <lambdabot> The type variable ‘prop0’ is ambiguous Note: there are several potential ins...
05:28:31 <Sgeo> oerjan, I learned @check by example not by real learning
05:28:40 <oerjan> @check \x -> False ==> (x::Int) == 1
05:28:41 <lambdabot> No instance for (STestable Int) arising from a use of ‘==>’
05:28:41 <lambdabot> In the first argument of ‘(==)’, namely ‘False ==> (x :: Int)’ In the expres...
05:28:50 <oerjan> @check \x -> False ==> ((x::Int) == 1)
05:29:08 <oerjan> @check \x -> True ==> ((x::Int) == 1)
05:29:10 <lambdabot> *** Failed! Falsifiable (after 1 test):
05:29:29 <oerjan> @check \x -> (x == 1 || x > 1e9) ==> ((x::Int) == 1)
05:29:30 <lambdabot> No instance for (Fractional Int) arising from the literal ‘1e9’
05:29:30 <lambdabot> In the second argument of ‘(>)’, namely ‘1e9’ In the second argument of ‘(||...
05:29:41 <oerjan> @check \x -> (x == 1 || x > 1000000) ==> ((x::Int) == 1)
05:29:43 <lambdabot> *** Gave up! Passed only 22 tests.
05:29:45 <Sgeo> I wonder if there's a differnt definition for @^2 that would make it work
05:30:31 <oerjan> *as the whole succeeding
05:30:32 -!- evalj has joined.
05:31:04 <lambdabot> STestable prop => Bool -> prop -> Test.QuickCheck.Safe.SProperty
05:32:51 <oerjan> @check \x -> ((x::Int) < 5) ==> \y -> ((y::Int) < 5) ==> x+y < 9
05:32:52 <lambdabot> Couldn't match expected type ‘Test.QuickCheck.Safe.SProperty’
05:32:52 <lambdabot> with actual type ‘Int’ In the second argument of ‘(+)’, namely ‘y’ In the fi...
05:33:07 <oerjan> @check \x -> ((x::Int) < 5) ==> \y -> ((y::Int) < 5) ==> (x+y < 9)
05:33:39 <oerjan> so the thing to the right of ==> can be somewhat more, maybe anything you can pass to @check itself
05:34:19 <oerjan> which seems like it's nice to prune the search
05:38:28 <lambdabot> STestable prop => Bool -> prop -> Test.QuickCheck.Safe.SProperty
05:38:49 -!- evalj has quit (Remote host closed the connection).
05:40:39 <Sgeo> @check \a b c d -> let dist a b = sqrt (a^2 + b^2) in (2 * a - dist a b) * (2 * c - dist c d) == 2 * (a * c - b * d) - dist (a * c + b * d) (a * d + b * c)
05:40:41 <lambdabot> *** Failed! Falsifiable (after 2 tests and 1085 shrinks):
05:40:41 <lambdabot> 0.47739896661811293 -1.171602104864355 -15.621137908887599 -0.406648332848909
05:42:07 -!- adu has quit (Quit: adu).
05:43:08 -!- mihow has joined.
05:46:30 -!- blurelIse has quit (Quit: I love my HydraIRC -> http://www.hydrairc.com <-).
05:47:01 <\oren\> > 冬冷写友永池決汽油温港湖漢点炭無牛犬犯理由甲申界皇真礼社神空窓笑笛第久互囚図国地巾己年弔当形悪戸所才打正止歩死
05:47:03 <lambdabot> ‘冬冷写友永池決汽油温港湖漢点炭無牛犬犯理由甲申界皇真礼社神空窓笑笛第久互囚図国地巾己年弔当形悪戸所才打正止歩死’
05:48:54 <newsham> > map isUpper "冬冷写友永池決汽油温港湖漢点炭無牛犬犯理由甲申界皇真礼社神空窓笑笛第久互囚図国地巾己年弔当形悪戸所才打正止歩死"
05:48:55 <lambdabot> [False,False,False,False,False,False,False,False,False,False,False,False,Fal...
05:51:36 <newsham> > filter isUpper "冬冷写友永池決汽油温港湖漢点炭無牛犬犯理由甲申界皇真礼社神空窓笑笛第久互囚図国地巾己年弔当形悪戸所才打正止歩死"
05:52:29 <lifthrasiir> \oren\: Unicode Lo category does not have a separate casing
05:54:12 -!- mihow has quit (Quit: mihow).
05:54:21 <\oren\> is that the same thing as saying "there's no uppercase and lowercase [hk]an[zj][ia]"?
05:55:10 <\oren\> (to cover hanzi, kanji, hanja)
05:55:11 <newsham> so no "data" decls using chinese characters?
05:55:48 <\oren\> I thought they would simply alway be considered lowercase
05:57:02 <lifthrasiir> may seem so, but "uncased" script would be more appropriate
05:57:48 <newsham> ?let un湖 C犬 a b = a; un湖 C神 a b = b
05:58:14 <newsham> lifthrasiir: neat, reverse "dog" == "god"
05:58:38 <lifthrasiir> newsham: heh, that's a good correspondence
06:00:07 <\oren\> newsham: you don't know you hkanzjia?
06:01:19 <newsham> the haskell capitalization rules seem to penalize those langauges that dont use caps
06:01:50 <newsham> what rules does ruby have for caps?
06:02:14 <newsham> what do people usually do in that situation?
06:02:24 <\oren\> well just remember that to drink, you want the bottle with with 牛 on it, and not the one with 油 on it!
06:02:47 <izabera> 牛 is beer and 油 is arsenic
06:03:10 <\oren\> no, cow (milk), and oil respectively
06:03:21 -!- sc00fy has joined.
06:03:46 <izabera> cow and milk use the same character?
06:03:52 -!- mihow has joined.
06:04:50 <\oren\> so if you see any character but 牛 before 乳 you're not getting the right kind of milk
06:05:07 <lifthrasiir> newsham: Ruby considers any uncased letters as lowercase, so they cannot be used as the first letter of class name etc.
06:06:11 <newsham> do programmers prefix with a roman uppercase letter or something like that, in such situations?
06:06:31 <lifthrasiir> they simply avoid using non-ASCII letters in the code.
06:07:16 <\oren\> yeah programs usually are written either with english or the romanization of the language
06:08:35 <newsham> we should be giving them an easy prefix letter to override that caps rule.
06:08:47 <newsham> like "words starting with . are considered upper case" or something
06:10:02 <\oren\> does parsing Haskell demand knowning what is a type versus variable name?
06:10:40 <newsham> prob requires knowing what is a constructor
06:11:21 <\oren\> right s/type/constructor/ s/variable/function
06:12:52 <newsham> variable: you're always changing
06:13:28 <newsham> sorry, i always mix you up with the variable you shadow
06:13:29 -!- variable has changed nick to constant.
06:13:33 <newsham> i can never tell you guys apart
06:13:54 <newsham> its true, he is constant.. constantly changing
06:14:14 <constant> yeah, nothing stops an immutable variable from changing on you
06:15:37 <newsham> > let pi = 3 in 45 * pi / 180.0
06:17:22 <\oren\> > let π = pi in e ^ (π * i)
06:19:29 <lambdabot> <hint>:1:5: lexical error at character '\11238'
06:19:45 -!- mihow has quit (Quit: mihow).
06:20:22 <\oren\> oh wait that's one of my font's non-unicode characters
06:20:33 <oerjan> \oren\: it's the i that makes it not halt, it isn't actually the i you think
06:20:48 <oerjan> :t let π = pi in e ^ (π * i)
06:21:19 <lambdabot> <hint>:1:1: parse error in let binding: missing required 'in'
06:21:56 -!- mihow has joined.
06:22:53 -!- JesseH has quit (Ping timeout: 252 seconds).
06:22:59 <lambdabot> <hint>:1:1: parse error in let binding: missing required 'in'
06:23:34 <lambdabot> <hint>:1:1: parse error in let binding: missing required 'in'
06:23:59 <\oren\> fuck you lamdabot why can't you parse a hot spring
06:24:49 <izabera> it knows that after an expression it needs 'in' and then another expression, right?
06:25:14 <lambdabot> <hint>:1:1: parse error in let binding: missing required 'in'
06:25:19 <bender|> \oren\, er, I don't think it supports unicode?
06:25:33 -!- mihow has quit (Client Quit).
06:26:13 <\oren\> it supports unicode but only some characters. Wut. Duh. Fuk.
06:26:44 <\oren\> also that last thing I typed had an in-joke
06:28:00 <newsham> > let x ☃ y = x + y in 3 ☃ 5
06:28:14 <newsham> its not the unicodeness that was the problem
06:28:32 <\oren\> OH! so haskell wants non-alnums to be operators not variables
06:30:12 <lambdabot> <hint>:1:1: lexical error at character '\8538'
06:30:31 <\oren\> hmm but it doesn't know what five sixths it
06:31:46 <lambdabot> <hint>:1:5: lexical error at character '\8538'
06:32:25 <\oren\> > let a⅚ = 4 in a⅚ + a⅚
06:33:26 <lambdabot> Parse failed: Illegal character ''\8538''
06:33:40 <\oren\> a variable can't begin with a number apparently
06:34:44 -!- mihow has joined.
06:35:00 <lambdabot> Perhaps you meant ‘isNumber’ (imported from Data.Char)
06:35:13 <oerjan> <izabera> why is 'in' required? <-- it's not ambiguous without a separator.
06:35:37 <izabera> did you mean it's ambiguous without a separator ?
06:35:41 <newsham> "Note that numeric digits outside the ASCII range are selected by this function but not by isDigit. Such digits may be part of identifiers but are not used by the printer and reader to represent numbers.
06:36:00 <oerjan> > let i = sin in 3 + i 5
06:38:28 <Sgeo> Maybe I'm approaching this wrong, and what I really need to do is find a sane definition of |a + b@ + c@^2|
06:38:38 <Sgeo> That is compatible with whatever definition I have in mind
06:38:40 <\oren\> > let x ☭ y = (x + y)/2 in 4 ☭ 7
06:40:54 <Sgeo> |b@ + c@^2| = |@||b+c@| = -|b+c@|
06:42:06 <Sgeo> If @^2 = 1, then |b@ + c| = -|b+c@|, which is... I can't tell if that's exactly a property I want or if it's garbage
06:43:13 <Sgeo> b = c = 1, |@ + 1| = -|@ + 1| ?
06:44:46 <Sgeo> That definitely doesn't work with my dimensional definition
06:49:18 -!- J_Arcane has quit (Ping timeout: 265 seconds).
06:57:47 -!- GoToTell has joined.
06:57:53 <Sgeo> |a + b@| = |#||a/# + b#| = i*???
07:00:47 <Sgeo> What happens if I pretend I can do this? |a + b@| = |a + b##| = sqrt(a^2 - (b#)^2) = sqrt(a^2-@b^2)
07:01:57 <Sgeo> If @ can signal || to produce negative, then why can't it signal "sqrt" in some similar way?
07:02:23 <Sgeo> I don't know how to take the square root of c@mplex numbers
07:03:29 <Sgeo> Apparently this is a reasonable thing that occurs in real math.
07:03:44 <Sgeo> Except probably not that symbol
07:04:51 <Sgeo> |@| = sqrt(-@) = i*# = not what we wanted.... unless i# is inexplicibly -1
07:07:14 -!- sc00fy has quit (Ping timeout: 260 seconds).
07:18:56 -!- ^v has quit (Remote host closed the connection).
07:18:59 <oerjan> for square root of complex number, (a+bi)^2 = c+di <=> a^2 - b^2 = c, 2ab = d; just solve that hth
07:24:38 -!- hppavilion[1] has quit (Ping timeout: 272 seconds).
07:25:03 <HackEgo> [wiki] [[Esoteric algorithm]] http://esolangs.org/w/index.php?diff=44546&oldid=43644 * Oerjan * (+0) case
07:27:45 <HackEgo> [wiki] [[Dropsort]] http://esolangs.org/w/index.php?diff=44547&oldid=43646 * Oerjan * (+16) case, sp, fmt
07:31:12 <izabera> instead of dropping the elements, add them to a new list
07:31:20 <izabera> dropsort again, then merge
07:31:25 <HackEgo> [wiki] [[User talk:InputUsername]] http://esolangs.org/w/index.php?diff=44548&oldid=43652 * Oerjan * (-1) Poor guy languishing in the wrong channel
07:33:37 <HackEgo> [wiki] [[Talk:Langar.io]] http://esolangs.org/w/index.php?diff=44549&oldid=43654 * Oerjan * (+48) unsigned, also you do know people get told about new messages in their user talk page, right?
07:34:15 <myname> izabera: 1. how do you merge them? 2. that'll ruin runtime
07:34:41 <izabera> merge them like in merge sort
07:35:02 <myname> it is basically a slower version of mergesort
07:35:38 <oerjan> particularly with a list that starts in reverse order
07:37:05 <izabera> it's faster if the data is almost sorted
07:38:54 -!- aretecode has quit (Read error: Connection reset by peer).
07:48:55 -!- aretecode has joined.
07:52:18 <HackEgo> [wiki] [[Brainfuck Sharp]] http://esolangs.org/w/index.php?diff=44550&oldid=43921 * Oerjan * (+30) Some proofreading
07:55:25 -!- constant has quit (Ping timeout: 246 seconds).
07:56:13 -!- contrapumpkin has joined.
07:58:56 -!- copumpkin has quit (Ping timeout: 250 seconds).
07:59:06 <HackEgo> [wiki] [[Talk:WASD]] http://esolangs.org/w/index.php?diff=44551&oldid=43671 * Oerjan * (+46) ominous lack of sign
08:03:28 -!- oerjan has changed nick to oerjan_.
08:03:38 -!- oerjan_ has changed nick to oerjan.
08:22:40 <HackEgo> [wiki] [[Talk:Brainfact]] M http://esolangs.org/w/index.php?diff=44552&oldid=43692 * Oerjan * (+49) unsigned
08:27:27 <HackEgo> [wiki] [[Talk:Smallfuck]] M http://esolangs.org/w/index.php?diff=44553&oldid=43698 * Oerjan * (+51) unsigned
08:29:00 -!- Patashu has joined.
08:32:28 <b_jonas> hmm, what's the url of ayacc?
08:33:01 <oerjan> didn't ais523 paste some darcs thing
08:34:03 <oerjan> i found the discussion of VCS war very ironic after it, anyway
08:34:27 <oerjan> hm wait, that may have been underlambda
08:34:51 <oerjan> it's somewhere on the nethack4 site, anyway, i think he keeps most his stuff there
08:35:35 <b_jonas> he had a plain download url. I have the url at home, but not here
08:41:07 <b_jonas> oh wait, maybe it's in the nethack4 or the c-intercal source code
08:41:53 -!- mihow has quit (Quit: mihow).
08:42:58 <HackEgo> [wiki] [[InDec]] M http://esolangs.org/w/index.php?diff=44554&oldid=43706 * Oerjan * (+3) sp, fmt
08:44:59 <HackEgo> [wiki] [[ZeptoBasic]] M http://esolangs.org/w/index.php?diff=44555&oldid=43707 * Oerjan * (+8) links
08:57:11 <HackEgo> [wiki] [[Ultimate Programming Language to Take Over a Prison, Then He World]] http://esolangs.org/w/index.php?diff=44556&oldid=43725 * Oerjan * (+25) some proofreading, and vague unease
09:00:20 <HackEgo> [wiki] [[Special:Log/move]] move * Oerjan * moved [[Non-Specific Assignment]] to [[Non-specific assignment]]: Not a proper name
09:00:26 -!- heddwch has quit (Read error: Connection reset by peer).
09:01:20 -!- heddwch has joined.
09:04:02 <fizzie> b_jonas: http://nethack4.org/media/alex/ayacc/ayacc.pl if that's still relevant.
09:04:07 -!- J_Arcane has joined.
09:06:05 <b_jonas> `le/rn ayacc/ayacc is ais523's yacc parser generator implementation, get it from http://nethack4.org/media/alex/ayacc/ayacc.pl
09:06:12 <HackEgo> ayacc is ais523's yacc parser generator implementation, get it from http://nethack4.org/media/alex/ayacc/ayacc.pl
09:07:18 <HackEgo> [wiki] [[Non-specific assignment]] http://esolangs.org/w/index.php?diff=44558&oldid=44557 * Oerjan * (+0) case and grm
09:10:25 <HackEgo> [wiki] [[Esolang talk:Sandbox]] http://esolangs.org/w/index.php?diff=44559&oldid=43717 * Oerjan * (-703) C'est vrai!
09:14:14 <Taneb> I remember when some of my friends made a roguelike for Ludum Dare
09:14:25 <Taneb> It had, iirc, "Dutch" as a race
09:18:28 <Taneb> And the name generator gave you the same name ("Colin") unless you were a specific race/class combination
09:21:48 <Taneb> Yeah, the races were Human, Dutch, Elf, Dwarf, Halfling, and Quarterling, and the classes were Miner, Attorney, Clog Maker, Huntsman, Chef, Tourist, and Dog
09:23:32 <HackEgo> [wiki] [[User:Zzo38/FurryScript]] http://esolangs.org/w/index.php?diff=44560&oldid=43724 * Oerjan * (+8) wayback
09:23:42 <myname> i'd love to play a dwarven attorney
09:23:58 <Taneb> If you played as a Human Attorney and asked for a random name, it called you "Javert"
09:24:57 <oerjan> surely that should be an inspector
09:25:32 <Taneb> There isn't an inspector class
09:27:45 <HackEgo> [wiki] [[Object oriented thue]] http://esolangs.org/w/index.php?diff=44561&oldid=43728 * Oerjan * (+0) /* External Resources */ casus belli
09:32:08 <fizzie> Human attorney, Dutch clog maker, elven huntsman, dwarven miner, halfling chef and quartering... I-don't-know-what, for maximum typecasting.
09:33:00 <Taneb> A quarterling is like a halfling but even more so
09:33:23 <HackEgo> [wiki] [[Glypho]] M http://esolangs.org/w/index.php?diff=44562&oldid=43733 * Oerjan * (+7) links
09:34:28 <Taneb> The mobs in the game were hedgehog, squirrel, duck, goose, orc, cave pirate, wolfman, fallen angel, and dragon
09:35:42 <fizzie> In ascending order of difficulty?
09:36:16 -!- Phantom_Hoover has joined.
09:36:29 <Taneb> Source code is here: https://github.com/HackSoc/LudumDare29
09:37:03 <Taneb> And we learnt the valuable lesson that a roguelike in C isn't very good for ludum dare when your build instructions are "make"
09:37:21 <oerjan> this is a quarterling hth http://yafgc.net/comic/2443-halfs/
09:38:47 <oerjan> i see today's comic is up too, and confirming the speculation i read in the forum...
09:39:57 -!- mauris has joined.
09:44:55 -!- FreeFull has quit (Ping timeout: 252 seconds).
10:02:02 -!- AnotherTest has joined.
10:06:00 <HackEgo> [wiki] [[Retina]] M http://esolangs.org/w/index.php?diff=44563&oldid=43939 * Oerjan * (+0) section name
10:21:45 -!- oerjan has quit (Quit: Later).
10:34:48 -!- boily has joined.
10:42:08 -!- mroman_ has joined.
10:42:45 <mroman_> How come to average number to reach 1.0 from 0.0 by adding a random number between 0..1 is not 2?
10:44:04 <mroman_> double d = 0.0; while(d < 1.0) { d += rnd(); steps++; }
10:44:13 <mroman_> average number of steps will be e
10:46:09 <myname> there are much more floats between 0 and 0.05 tthan between 0.05 and 0.1, arenkt they?
10:46:32 <int-e> mroman_: well, it's more than 2 because the amount that you overshoot the target (1) is lost.
10:47:09 <myname> e sounds reasonable because of the distribution of floats to me
10:47:35 <mroman_> http://codepad.org/gbrKc3dw
10:48:07 <int-e> (lost compared to just adding rnd and checking when you jump across a natural number)
10:49:07 -!- Frooxius has joined.
10:49:45 <mroman_> The expected value of rnd() is 0.5. So the sum of two rnd() is expected to be 1.
10:50:00 <mroman_> Either it has something to do with the float/double data types
10:50:20 <mroman_> (or possibly the rnd() function itself)
10:51:37 <mroman_> but it's too close to e to be a coincidence :)
10:53:19 <ski> shachaf : ok, ty
10:56:07 <mroman_> but yeah, you loose the overshoot
10:56:09 <int-e> mroman_: yes, it is e; the probabilities that you're still below 1 after 0,1,2,...,k steps are 1,1,1/2,...,1/k!.
10:56:16 <mroman_> if you'd do an average of rnd()+rnd() you'd get 1.
10:58:03 <int-e> In fact for a threshold 0 <= t <= 1, the expected number of steps to exceed t is e^t. But for t>1 it gets messy.
10:59:36 -!- sc00fy has joined.
11:01:09 <GoToTell> the possible sums 0 > n > 4 that's equals or exceeds 4 is: 1111 1112 1113 112 113 122 123 13 22 23 33
11:01:50 <GoToTell> 30 steps in total, divided by 11 possibilities = 2.7272727272727272727272727272727
11:02:08 <Taneb> GoToTell: that's for integers, I think the problem is for reals
11:02:32 <mroman_> 2.7272 looks like almost e though
11:03:02 <GoToTell> it will approach the same avg steps for reals for larger and larger integers.
11:03:46 <ski> GoToTell : `0 > 4' ?
11:04:49 <ski> obviously `n' can't *both* be greater than `4' *and* lesser than `0' ..
11:05:34 <GoToTell> Symbol blindness. My apologies.
11:06:08 <int-e> fungot: so what do you know about exponential growth?
11:06:08 <fungot> int-e: my mistake, the srfi site. really great to see a benchmark
11:06:16 <fungot> Available: agora alice c64 ct darwin discworld enron europarl ff7 fisher fungot homestuck ic irc* iwcs jargon lovecraft nethack oots pa qwantz sms speeches ss wp youtube
11:06:51 <fungot> Selected style: alice (Books by Lewis Carroll)
11:06:58 <int-e> fungot: bread or taxes?
11:06:58 <fungot> int-e: at last the post shall carry, when thirteen days are gone and past of fnord. " for any one with true fnord fnord, fnord, fnord,
11:07:22 <int-e> oh well it was worth a try
11:07:25 <fungot> Selected style: irc (IRC logs of freenode/#esoteric, freenode/#scheme and ircnet/#douglasadams)
11:08:10 <myname> where is the oots style from?
11:10:35 <fungot> Selected style: oots (Order Of The Stick)
11:10:40 <fungot> Selected style: irc (IRC logs of freenode/#esoteric, freenode/#scheme and ircnet/#douglasadams)
11:10:52 <int-e> myname: this wiki, I'd assume: http://oots.wikia.com/wiki/New_Edition
11:11:20 <int-e> (which has transcripts of the comics as you can see in that link)
11:12:56 <fizzie> Yes, I think I scraped it from some wiki.
11:13:09 <fungot> Selected style: oots (Order Of The Stick)
11:13:13 <fizzie> fungot: What do you sound like?
11:13:13 <fungot> fizzie: was that supposed to get you down here.
11:13:27 <fizzie> fungot: No, and I think that's probably a direct quote.
11:13:27 <fungot> fizzie: as the shrew! even i don't get to live. your trial and then, gods willing, for that kind of stuff, i figured that one out on my own, but
11:13:37 <fungot> fizzie: you would probably have to skip the combat dialogue. someone hand that i think, " hmm, i think, " hmm, i think that i shall i prepare " roy" to live.
11:20:38 <boily> fungot: hmm, I think ♪ hmm, I think ♪
11:20:38 <fungot> boily: i get to go. y'know, the rune over behind xkyon's throne labeled " castle blowing her cover.
11:29:12 -!- boily has quit (Quit: TRANSFINITE CHICKEN).
11:29:12 -!- TodPunk has quit (Read error: Connection reset by peer).
11:29:39 -!- TodPunk has joined.
11:29:43 -!- Taneb has changed nick to nvd.
11:29:48 -!- nvd has changed nick to Taneb.
11:37:35 <b_jonas> meanwhile, new OotS strip today
11:38:09 <int-e> . o O ( `olist $N+1 )
11:42:18 -!- GoToTell has quit (Quit: HydraIRC -> http://www.hydrairc.com <- Like it? Visit #hydrairc on EFNet).
11:59:12 -!- sc00fy has quit (Ping timeout: 264 seconds).
12:01:12 <int-e> . o O ( In your thoughts, you're all alone. )
12:15:28 <Melvar> Blarf. Is there any spec on the implementation of wait status manipulation macros, or can they do effectively anything?
12:17:27 <fizzie> POSIX guarantees a number of things about them.
12:17:34 <fizzie> "Each of the following statements shall apply to all macros unless explicitly stated otherwise:
12:17:37 <fizzie> Any definition of an object-like macro in a header shall expand to code that is fully protected by parentheses where necessary, so that it groups in an arbitrary expression as if it were a single identifier.
12:17:41 <fizzie> All object-like macros listed as expanding to integer constant expressions shall additionally be suitable for use in #if preprocessing directives.
12:17:44 <fizzie> Any definition of a function-like macro in a header shall expand to code that evaluates each of its arguments exactly once, fully protected by parentheses where necessary, so that it is generally safe to use arbitrary expressions as arguments.
12:17:48 <fizzie> Any definition of a function-like macro in a header can be invoked in an expression anywhere a function with a compatible return type could be called."
12:17:58 <fizzie> I think point #3 is what you might be most interested about.
12:19:07 <fizzie> (POSIX, System Interfaces > General Information > Use and Implementation of Macros.)
12:21:31 <Melvar> Okay, but that’s about macros in general. The structure of the status value is not specified, I assume.
12:22:38 -!- MoALTz_ has joined.
12:23:56 <Melvar> The problem being of course that I can’t invoke a macro from non-C code.
12:24:38 <fizzie> WEXITSTATUS is always the low-order 8 bits of the status value, but that's all you get.
12:25:16 <fizzie> Not very helpful, perhaps, because the WIFEXITED test isn't specified, and WEXITSTATUS is only relevant if that is true.
12:25:39 -!- MoALTz has quit (Ping timeout: 244 seconds).
12:26:21 <fizzie> Oh, maybe I read the documentation of WEXITSTATUS wrong, sorry.
12:26:42 <Melvar> I’m pretty sure that’s referring to the low bits of the value the program returned, not of the wait status.
12:27:09 <Melvar> In particular, my system has “#define __WEXITSTATUS(status) (((status) & 0xff00) >> 8)”.
12:27:21 <fizzie> Yes, I just read it too quickly.
12:28:09 <fizzie> But there's a guarantee about the value 0, so if you're okay with just differentiating "terminated normally with a return value of 0" from "everything else".
12:28:18 -!- Patashu has quit (Ping timeout: 260 seconds).
12:28:50 <Melvar> Oh, now that sounds interesting.
12:29:21 <fizzie> "The value stored at the location pointed to by stat_loc shall be 0 if and only if the status returned is from a terminated child process that terminated by one of the following means: [three reasonable things]"
12:30:54 <fizzie> The "everything else" bucket does include "still running" as well as all the possible different ways of failing, though.
12:32:42 <Melvar> It’s a good start, since it allows me to at least tell if nothing went wrong with a system() call.
12:41:25 * Melvar gets ideas about using libclang to get at the expansions of the macros and then interpret them, but that would require being able to create callbacks, because you can’t traverse a clang AST normally.
12:41:51 -!- FreeFull has joined.
12:47:14 -!- TieSoul has joined.
12:51:38 -!- TieSoul has quit (Ping timeout: 260 seconds).
12:52:11 -!- TieSoul has joined.
13:00:47 -!- doesthiswork has joined.
13:19:45 -!- doesthiswork1 has joined.
13:19:45 -!- doesthiswork has quit (Read error: Connection reset by peer).
13:20:25 -!- AnotherTest has quit (Ping timeout: 244 seconds).
13:22:05 -!- `^_^v has joined.
13:27:22 -!- AnotherTest has joined.
13:53:42 -!- theprobist69420 has joined.
13:53:47 -!- theprobist69420 has quit (Read error: Connection reset by peer).
13:58:22 -!- Frooxius has quit (Ping timeout: 246 seconds).
14:21:11 -!- sc00fy has joined.
14:26:03 -!- sc00fy has quit (Ping timeout: 265 seconds).
14:26:54 -!- doesthiswork1 has quit (Quit: Leaving.).
14:31:26 -!- oerjan has joined.
14:42:00 -!- AnotherTest has quit (Ping timeout: 265 seconds).
15:08:37 <izabera> thinking about the dropsort thingy
15:08:56 <izabera> instead of adding them to a list, add them to a list in the correct order
15:09:21 <izabera> like the insertion sort thingy
15:09:42 <izabera> and do this for the first, say, 20 elements
15:09:46 <izabera> then add them to a new list
15:10:09 <izabera> so you end up with several small sorted lists
15:13:20 <HackEgo> olist 1007: shachaf oerjan Sgeo FireFly boily nortti
15:19:03 <Taneb> izabera: that's essentially mergesort
15:19:20 <izabera> yes but the first part is faster
15:19:45 <Taneb> I think it'd still work out O(nlogn)
15:23:08 <Taneb> If you make the lists for as long it's ascending/descending, then you get GHC's sort function
15:23:45 -!- mroman_ has quit (Quit: Lost terminal).
15:30:58 -!- FireFly has quit (Ping timeout: 246 seconds).
15:31:18 -!- heddwch has quit (Ping timeout: 265 seconds).
15:34:14 -!- XorSwap has joined.
15:36:01 <oerjan> shachaf: why int-e would _allude_ to `olist without actually doing it... maybe he's turned into a vampire.
15:36:27 -!- bender| has changed nick to bender.
15:36:46 <shachaf> well, neither int-e nor b_jonas are on the list
15:36:56 <shachaf> but i admit it looks bad. pretty suspicious
15:37:14 -!- FireFly has joined.
15:37:22 -!- heddwch has joined.
15:39:25 <HackEgo> Update notification for the webcomic Order of the Stick. http://www.giantitp.com/cgi-bin/GiantITP/ootscript
15:40:21 <shachaf> `` sed -i 's#cgi-bin.*#comics/ootslatest.html#' wisdom/olist
15:42:37 -!- bender has quit (Quit: [May the Kool Klocks Klan be with you!]).
16:03:37 -!- XorSwap has quit (Quit: Leaving).
16:05:40 <b_jonas> \oren\: I see you've added more characters. but the green vs white is inconsistent again.
16:06:57 <b_jonas> \oren\: also, it looks as if either some of the characters in the kanji&hanzi region of the sample page were either of the wrong width or substituted from another font
16:07:10 <b_jonas> because they don't line up to a nice grid
16:07:22 <b_jonas> or it could be just that the font is older than page
16:15:07 -!- atrapado has joined.
16:20:21 -!- AnotherTest has joined.
16:22:07 -!- mihow has joined.
16:24:18 <shachaf> what do you think of this olist
16:24:58 <Taneb> I think that it's an olist
16:26:08 <shachaf> are you a d&d rules expert
16:26:16 <shachaf> shouldn't what's-his-name be dead by now
16:29:18 <oerjan> it's just a flesh wound
16:32:39 -!- hppavilion[1] has joined.
16:32:51 <hppavilion[1]> I would like to see LISP based on another structure besides Lists.
16:33:03 <hppavilion[1]> Table is sort of like that for Associative Arrays, I suppose
16:33:19 -!- bb010g has quit (Quit: Connection closed for inactivity).
16:33:42 <Taneb> shachaf: in 4e, you can survive up to negative half your health
16:33:51 <Taneb> (rounded towards zero)
16:34:06 <shachaf> does it only go to -10 or something?
16:34:32 <shachaf> also did this harm bring what's-his-name to 1 hp
17:01:19 -!- hppavilion[1] has quit (Ping timeout: 240 seconds).
17:06:15 <oerjan> can it go to -11 if you get a spinal tap
17:15:21 <newsham> > goldfish' "my amp goes to eleven"
17:16:49 <oerjan> alas, lambdabot has memory like a ...
17:28:52 -!- hppavilion[1] has joined.
17:29:26 <int-e> otherwise lambdabot would be insane by now
17:39:53 -!- sc00fy has joined.
18:11:14 -!- mauris_ has joined.
18:13:19 -!- hppavilion[1] has quit (Ping timeout: 240 seconds).
18:14:40 -!- mauris has quit (Ping timeout: 265 seconds).
18:16:27 -!- gamemanj has joined.
18:20:17 -!- bb010g has joined.
18:22:09 -!- hppavilion[1] has joined.
18:30:11 -!- oerjan has quit (Quit: Gnight).
18:30:20 -!- TieSoul has quit (Read error: Connection reset by peer).
18:30:59 -!- hppavilion[1] has quit (Ping timeout: 240 seconds).
18:32:04 -!- hppavilion[1] has joined.
18:44:03 -!- JesseH has joined.
18:48:28 <HackEgo> whoami: cannot find name for user ID 5000
18:48:43 <HackEgo> wc: /etc/passwd: No such file or directory
18:49:43 <gamemanj> no passwd file = no sudo, I presume
18:50:02 <gamemanj> at least, that would make sense
18:55:33 -!- mauris_ has changed nick to mauris.
19:02:52 -!- ^v has joined.
19:05:19 -!- hppavilion[1] has quit (Ping timeout: 240 seconds).
19:24:09 <Taneb> `` can i condemn this man to slavery
19:24:10 <HackEgo> bash: can: command not found
19:31:04 -!- lemurian has joined.
19:35:50 -!- mihow has quit (Quit: mihow).
19:49:11 -!- hppavilion[1] has joined.
19:53:58 -!- glowcoil has joined.
19:54:34 <HackEgo> [wiki] [[Special:Log/newusers]] create * Zachgates * New user account
19:58:01 -!- mihow has joined.
19:58:59 -!- hppavilion[1] has quit (Ping timeout: 240 seconds).
20:00:07 -!- qwertyo has joined.
20:05:03 -!- qwertyo has quit (Quit: Leaving).
20:14:44 -!- mauris has quit (Read error: Connection reset by peer).
20:17:21 -!- mauris has joined.
20:19:15 -!- AnotherTest has quit (Quit: ZNC - http://znc.in).
20:29:45 <Vorpal> <gamemanj> no passwd file = no sudo, I presume <-- it runs in some sort of container too iirc. It used to use User mode linux, not sure it it migrated to something more modern or not
20:35:08 -!- hppavilion[1] has joined.
20:36:58 <fizzie> (The sandbox itself is called "UMLBox".)
20:37:48 <Vorpal> fizzie, I know, I use it for another purpose myself
20:38:34 <Vorpal> fizzie, I actually run apparmor + umlbox to try to protect against bugs in umlbox as well
20:43:20 -!- bb010g has quit (Quit: Connection closed for inactivity).
20:49:03 -!- danofthedeep has joined.
20:53:14 -!- Phantom__Hoover has joined.
20:55:31 -!- gamemanj has quit (Quit: Leaving).
20:56:57 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
20:57:59 -!- hppavilion[1] has quit (Ping timeout: 240 seconds).
20:58:59 -!- hppavilion[1] has joined.
20:59:37 <izabera> @tell oerjan yafgc is a drug, you should warn people before posting links like that
21:06:24 -!- `^_^v has quit (Ping timeout: 255 seconds).
21:08:49 -!- Patashu has joined.
21:12:46 -!- MoALTz_ has quit (Quit: Leaving).
21:14:57 -!- sc00fy has quit (Ping timeout: 255 seconds).
21:24:16 <hppavilion[1]> I'm modifying a stripped-down variant of a toy language called "IMP" by Jay Conrod (http://www.jayconrod.com/posts/37/a-simple-interpreter-from-scratch-in-python-part-1) and I'm trying to implement operator right associativity for a recently-added ^ operator (which I know is usually bitwise xor in programming, but I think it makes more sense to use it as exponentation for arithmetic). I have NO clue how to do it.
21:28:39 -!- hppavilion[1] has quit (Ping timeout: 240 seconds).
21:29:26 -!- hppavilion[1] has joined.
21:29:56 -!- lemurian has quit (Ping timeout: 265 seconds).
21:33:05 <hppavilion[1]> I'm a n00b, and it's based largely on the work of someone else who does parsers, so
21:33:23 <Melvar> Well, how are you doing the operators in it?
21:33:47 <hppavilion[1]> It' someone else's work, that I just barely understand
21:34:33 <hppavilion[1]> That produces a series of EXP parsers (which generate lists of things separated by other things) with ALTERNATE parsers separating them, such as to produce operator precedence
21:35:22 <hppavilion[1]> I tried something that I doubted would work, but it worked better than I thought. That is, instead of crashing or producing random answers, it did absolutely nothing
21:36:28 <hppavilion[1]> I may have to produce a "REVEXP" combinator that works in reverse
21:42:55 <hppavilion[1]> I'm now going to make a language called "MegaStackLang", which should basically be the most powerful RPN language ever made.
21:43:25 -!- atrapado has quit (Quit: Leaving).
21:45:11 <myname> what's that apl/j like language of the guy that used to do stuff here? :s
21:45:28 -!- Patashu has quit (Ping timeout: 246 seconds).
21:48:33 <Melvar> hppavilion[1]: Will it allow a foreach-until loop?
21:49:08 -!- mihow has quit (Quit: mihow).
21:50:50 <Melvar> Because I once got to use this crazy forth variant that allowed any loop opener to be used with any loop closer, and what I was doing was most easily expressed by opening with foreach and closing with until.
21:55:58 -!- glowcoil has quit (Quit: Connection closed for inactivity).
21:58:41 -!- danofthedeep has quit (Quit: My Mac has gone to sleep. ZZZzzz…).
22:00:58 -!- danofthedeep has joined.
22:04:34 <Melvar> hppavilion[1]: Okay, so, the right-associative operator should be doable without Exp, because Exp is meant to avoid left-recursion, but you can parse a right-associative operator with right-recursion.
22:05:11 <hppavilion[1]> It's a standard stacky lang with the added part where {...code...} is lazily evaluated (that is, it's pushed on the stack to be evaluated later)
22:09:59 -!- danofthedeep has quit (Quit: My Mac has gone to sleep. ZZZzzz…).
22:10:59 -!- hppavilion[1] has quit (Ping timeout: 240 seconds).
22:26:01 -!- Frooxius has joined.
22:30:23 -!- sc00fy has joined.
22:38:25 -!- hppavilion[1] has joined.
22:42:39 -!- hppavilion[1] has quit (Ping timeout: 240 seconds).
22:53:57 -!- mauris has quit (Ping timeout: 255 seconds).
23:11:53 -!- danofthedeep has joined.
23:17:21 -!- erdic has quit (Quit: leaving).
23:17:36 -!- hppavilion[1] has joined.
23:19:03 -!- erdic has joined.
23:29:11 <shachaf> It would be great to have a language where <<<<<<< etc. are valid identifiers, to make merges difficult.
23:30:54 <j-bot> FireFly: myname: this one?
23:31:11 <shachaf> i mean common rather than valid
23:31:13 <FireFly> Although that is J, not J-like
23:34:45 <int-e> > let (<<<<<<<) = (*) in 3 <<<<<<< 5
23:46:13 -!- sc00fy has quit (Ping timeout: 246 seconds).
23:47:06 -!- Phantom___Hoover has joined.
23:49:50 -!- Phantom__Hoover has quit (Ping timeout: 240 seconds).