←2015-09-29 2015-09-30 2015-10-01→ ↑2015 ↑all
00:02:06 <boily> `? stack stack
00:02:09 <HackEgo> stack stack? ¯\(°​_o)/¯
00:03:19 -!- bb010g has quit (Quit: Connection closed for inactivity).
00:03:32 -!- atrapado has quit (Quit: Leaving).
00:06:29 <oerjan> see funge98 spec hth
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:08:35 <hppavilion[1]> "Goldfish"
00:08:46 <hppavilion[1]> You take input
00:08:54 <hppavilion[1]> Put "Blub" between each word
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:09 <lambdabot> Defined.
01:06:25 -!- somethingsomethi has joined.
01:06:39 -!- somethingsomethi has left.
01:07:05 <hppavilion[1]> @goldfish I am the walrus
01:07:05 <lambdabot> Unknown command, try @list
01:07:09 <hppavilion[1]> ?goldfish I am the walrus
01:07:09 <lambdabot> Unknown command, try @list
01:07:22 <hppavilion[1]> @call goldfish I am the walrus
01:07:22 <lambdabot> Maybe you meant: tell roll
01:07:34 <hppavilion[1]> newsham: How do I call goldfish?
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:07:50 <hppavilion[1]> There we go
01:07:52 <hppavilion[1]> :)
01:08:34 <oerjan> hppavilion[1]: lambdabot doesn't allow user defining actual @commands
01:09:14 <hppavilion[1]> oerjan: Didn't think so
01:09:32 <oerjan> ?let only affects the environment used by > and @run
01:09:37 <oerjan> :t goldfish
01:09:38 <lambdabot> String -> [Char]
01:09:45 <oerjan> and a couple others
01:09:53 <newsham> ?let goldfish' = text . goldfish
01:09:54 <lambdabot> Defined.
01:10:26 -!- boily has quit (Quit: SOPRANO CHICKEN).
01:11:09 <hppavilion[1]> > text $ goldfish' "I am the walrus"
01:11:10 <lambdabot> Couldn't match type ‘Doc’ with ‘[Char]’
01:11:10 <lambdabot> Expected type: String
01:11:10 <lambdabot> Actual type: Doc
01:11:24 <hppavilion[1]> I have no clue how this level of Haskell works xD
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:14:42 <hppavilion[1]> Oh
01:14:49 <hppavilion[1]> Duh xD
01:15:03 <Sgeo> hppavilion[1], does i have an encoding in lambda calculus?
01:15:24 <hppavilion[1]> Sgeo: Yes, of course. Just not a well-known one.
01:15:32 <hppavilion[1]> Or, possibly, an at-all-known one
01:16:22 <oerjan> the i x = x S K one?
01:16:46 <oerjan> that's pretty trivial.
01:17:18 <oerjan> in fact it's right there on the Iota page.
01:17:32 <hppavilion[1]> oerjan: No. i the number
01:17:38 <oerjan> oh.
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:24 <oerjan> are they irishmen
01:19:34 <Sgeo> At least one is Jewish
01:20:16 <Melvar> What’s @ there?
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:23:06 <oerjan> (that i recall)
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:37 <Sgeo> Ring?
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:28 <hppavilion[1]> Sgeo: You know. A ring. Like, from ring theory
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:13 <oerjan> (a b c d reals)
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:37 <EgoBot> 8
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:39:13 <lambdabot> Word64 -> 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:44 <Melvar> @type sizeOf
01:56:45 <lambdabot> Not in scope: ‘sizeOf’
01:56:45 <lambdabot> Perhaps you meant one of these:
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:51 <oerjan> :t sizeof
02:12:52 <lambdabot> Not in scope: ‘sizeof’
02:12:52 <lambdabot> Perhaps you meant one of these:
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:14:49 <\oren\> this explains a lot
02:15:03 <pikhq> :P
02:16:00 <\oren\> XD
02:17:05 <oerjan> horriblois
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:06:44 <doesthiswork> hmm |2-3| = |-1| = 1
03:07:08 <Sgeo> meh don't feel like plugging it i
03:07:09 <Sgeo> n
03:07:25 <doesthiswork> ok, only the positive numbers then?
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:08:43 <doesthiswork> what is the rational behind it?
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:11:57 <doesthiswork> but that is just a failure of imagination
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:17:48 <doesthiswork> I know, I was talking to my self
03:17:53 <Sgeo> Ah, sorry
03:18:23 <doesthiswork> I'm still several steps behind the channel
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:30:58 <doesthiswork> I wonder what max(@,-@) does
03:31:49 <shachaf> `? @
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:14 <doesthiswork> does sqrt(@^2)=-1?
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:52:29 <Sgeo> !
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:02:29 <Sgeo> :t abs
04:02:30 <lambdabot> Num a => a -> a
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:04:55 <lambdabot> Could not deduce (Num a0)
04:04:55 <lambdabot> from the context (Floating a,
04:04:55 <lambdabot> Floating a6,
04:05:02 <Sgeo> Bleh?
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:30:59 <lambdabot> (3.6568542494923806,2.0)
04:31:04 <oerjan> Sgeo: ^
04:31:33 <oerjan> > 1 1
04:31:35 <lambdabot> Could not deduce (Num a0)
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:45 <Sgeo> oerjan, ty
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:36:56 <Vorpal> bbl
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:50:47 <lambdabot> 8
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:19 <lambdabot> 0 0
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:26 <lambdabot> 1 -1
04:58:30 <oerjan> oops
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:58:59 <lambdabot> +++ OK, passed 100 tests.
04:59:55 <oerjan> @check \x y -> y<0 || (x::Int) `xor` y /= x^y
04:59:57 <lambdabot> +++ OK, passed 100 tests.
05:00:43 <oerjan> > 0^0
05:00:44 <lambdabot> 1
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:01:47 <lambdabot> +++ OK, passed 100 tests.
05:02:13 <oerjan> > ( \x y -> y<0 || (x::Int) `xor` y /= x^y ) 0 0
05:02:14 <lambdabot> True
05:02:27 <oerjan> > ( \x y -> y<0 || (x::Int) `xor` y /= x^y ) 1 0
05:02:28 <lambdabot> False
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:02:46 <lambdabot> +++ OK, passed 100 tests.
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:07:07 <lambdabot> +++ OK, passed 100 tests.
05:09:06 <oerjan> @list check
05:09:07 <lambdabot> check provides: check
05:09:10 <oerjan> @list scheck
05:09:11 <lambdabot> No module "scheck" loaded
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:17 <oerjan> hm...
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:38 * variable looks at lambdabot !
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:28:51 <lambdabot> *** Gave up! Passed only 0 tests.
05:29:08 <oerjan> @check \x -> True ==> ((x::Int) == 1)
05:29:10 <lambdabot> *** Failed! Falsifiable (after 1 test):
05:29:10 <lambdabot> 0
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:03 <oerjan> :t (==>)
05:31:04 <lambdabot> STestable prop => Bool -> prop -> Test.QuickCheck.Safe.SProperty
05:31:40 <oerjan> hm...
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:08 <lambdabot> +++ OK, passed 100 tests.
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:27 <newsham> ?type (==>)
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:02 <lambdabot> Not in scope:
05:47:03 <lambdabot> ‘冬冷写友永池決汽油温港湖漢点炭無牛犬犯理由甲申界皇真礼社神空窓笑笛第久互囚図国地巾己年弔当形悪戸所才打正止歩死’
05:47:19 <\oren\> wtf I didn't type a >
05:47:49 <newsham> > let 湖 = (+) in 湖 3 5
05:47:51 <lambdabot> 8
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:51:37 <lambdabot> ""
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:15 <lifthrasiir> yes.
05:55:28 <\oren\> i see
05:55:29 <lifthrasiir> and many other scripts
05:55:48 <\oren\> I thought they would simply alway be considered lowercase
05:56:16 <\oren\> or something
05:56:48 <newsham> ?data T湖 = C犬 | C神
05:56:48 <lambdabot> Unknown command, try @list
05:56:52 <newsham> ?let data T湖 = C犬 | C神
05:56:53 <lambdabot> Defined.
05:57:02 <lifthrasiir> may seem so, but "uncased" script would be more appropriate
05:57:33 <lifthrasiir> newsham: TLake = CDog | CGod?
05:57:48 <newsham> ?let un湖 C犬 a b = a; un湖 C神 a b = b
05:57:49 <lambdabot> Defined.
05:58:14 <newsham> lifthrasiir: neat, reverse "dog" == "god"
05:58:17 <newsham> good choice
05:58:22 <newsham> i jsut randomly picked 3
05:58:38 <lifthrasiir> newsham: heh, that's a good correspondence
06:00:07 <\oren\> newsham: you don't know you hkanzjia?
06:00:21 <newsham> turns out: no
06:00:25 <\oren\> i see
06:01:19 <newsham> the haskell capitalization rules seem to penalize those langauges that dont use caps
06:01:27 <lifthrasiir> newsham: so does Ruby
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:03:55 <newsham> what's your poison?
06:04:10 <\oren\> 牛乳 = cow milk
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:27 <newsham> ie C犬
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:06 <newsham> bummer
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:08:52 <lifthrasiir> better, ditch caps rule
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:11:30 <variable> \oren\: don't change me!
06:11:56 <newsham> i'm not a number
06:12:01 <newsham> i'm a free variable!
06:12:16 <variable> newsham: and I'm not?
06:12:18 <variable> how dare you
06:12:52 <newsham> variable: you're always changing
06:13:03 <variable> newsham: I'm immutable
06:13:17 <izabera> so you're not variable
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:02 <\oren\> thatsracist.gif
06:14:14 <constant> yeah, nothing stops an immutable variable from changing on you
06:14:41 <newsham> unsafePerformConstChange
06:15:37 <newsham> > let pi = 3 in 45 * pi / 180.0
06:15:38 <lambdabot> 0.75
06:16:49 <\oren\> > π
06:16:51 <lambdabot> Not in scope: ‘π’
06:17:22 <\oren\> > let π = pi in e ^ (π * i)
06:17:27 <lambdabot> mueval-core: Time limit exceeded
06:17:38 <\oren\> wtf
06:18:19 <\oren\> wuddidijusdo.gif
06:18:29 <izabera> you broke the math
06:19:27 <\oren\> > let ⯦ = 4 in ⯦ + 5
06:19:29 <lambdabot> <hint>:1:5: lexical error at character '\11238'
06:19:39 <\oren\> fuck that
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:20:49 <lambdabot> Expr
06:21:17 <\oren\> > let ❄ = 4 in ❄ + 5
06:21:19 <lambdabot> <hint>:1:1: parse error in let binding: missing required 'in'
06:21:52 <\oren\> > let a = 4 in a + 5
06:21:54 <lambdabot> 9
06:21:56 -!- mihow has joined.
06:22:35 <bender|> let a = 4 in a + a
06:22:41 <bender|> > let a = 4 in a + a
06:22:43 <lambdabot> 8
06:22:47 <bender|> oh cool
06:22:53 -!- JesseH has quit (Ping timeout: 252 seconds).
06:22:57 <bender|> > let a = 4 let a = a+a
06:22:59 <lambdabot> <hint>:1:1: parse error in let binding: missing required 'in'
06:23:33 <\oren\> > let ♨ = 4 in ♨ + ♨
06:23:34 <lambdabot> <hint>:1:1: parse error in let binding: missing required 'in'
06:23:53 <izabera> why is 'in' required?
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:13 <\oren\> > let ☃ = 4 in ☃ + ☃
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:25:43 <\oren\> > let 五 = 4 in 五 + 五
06:25:44 <lambdabot> 8
06:25:50 <bender|> lolwhat
06:26:11 <newsham> > let 職人 = fix in 職人 id
06:26:13 <\oren\> it supports unicode but only some characters. Wut. Duh. Fuk.
06:26:15 <lambdabot> mueval-core: Time limit exceeded
06:26:44 <\oren\> also that last thing I typed had an in-joke
06:27:38 <newsham> > isAlphaNum '☃'
06:27:40 <lambdabot> False
06:28:00 <newsham> > let x ☃ y = x + y in 3 ☃ 5
06:28:01 <lambdabot> 8
06:28:14 <newsham> its not the unicodeness that was the problem
06:28:17 <newsham> it was the alphanumness
06:28:32 <\oren\> OH! so haskell wants non-alnums to be operators not variables
06:28:43 <newsham> yup
06:28:52 <\oren\> > let ᚴ = 4 in ᚴ + ᚴ
06:28:53 <lambdabot> 8
06:29:07 <\oren\> runes are letters
06:30:11 <\oren\> > ⅚
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:45 <\oren\> > let ⅚ = 4 in ⅚ + ⅚
06:31:46 <lambdabot> <hint>:1:5: lexical error at character '\8538'
06:32:25 <\oren\> > let a⅚ = 4 in a⅚ + a⅚
06:32:26 <lambdabot> 8
06:33:10 <newsham> > isAlphaNum '⅚'
06:33:11 <lambdabot> True
06:33:26 <newsham> ?let ⅚ = 5%6
06:33:26 <lambdabot> Parse failed: Illegal character ''\8538''
06:33:40 <newsham> > isNum '⅚'
06:33:40 <\oren\> a variable can't begin with a number apparently
06:33:41 <lambdabot> Not in scope: ‘isNum’
06:33:58 <newsham> > isDigit '⅚'
06:33:59 <lambdabot> False
06:34:33 <newsham> > isAlpha '⅚'
06:34:34 <lambdabot> False
06:34:44 -!- mihow has joined.
06:34:52 <\oren\> > isNumeric '⅚'
06:34:53 <lambdabot> Not in scope: ‘isNumeric’
06:34:59 <\oren\> > isNumer '⅚'
06:35:00 <lambdabot> Not in scope: ‘isNumer’
06:35:00 <lambdabot> Perhaps you meant ‘isNumber’ (imported from Data.Char)
06:35:05 <\oren\> > isNumber '⅚'
06:35:06 <lambdabot> True
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:35:44 <oerjan> er yes
06:35:49 <newsham> says 'isAlphaNum' doc
06:36:00 <oerjan> > let i = sin in 3 + i 5
06:36:02 <lambdabot> 2.0410757253368614
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:38:41 <lambdabot> 5.5
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:02:57 <izabera> what is # ?
07:03:05 <Sgeo> |#| = i
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:07:42 <myname> wat
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:34:52 <myname> see 2. then
07:35:01 <izabera> i wasn't 100% serious
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:34 <oerjan_> boo!
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:24:29 <oerjan> ^ul (a(:^)*S):^
08:24:30 <fungot> (a(:^)*S):^
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:35:39 <b_jonas> `? ayacc
08:35:39 <HackEgo> ayacc? ¯\(°​_o)/¯
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:04:44 <b_jonas> fizzie: thanks
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:07 <HackEgo> Learned «ayacc»
09:06:11 <b_jonas> `? ayacc
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:19 <myname> :D
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:35:47 <Taneb> Yes
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:42:53 <mroman_> *average number of steps
10:43:20 <Taneb> It isn't?
10:43:23 <mroman_> No.
10:43:27 <mroman_> It's e^1
10:43:31 <Taneb> Huh
10:44:04 <mroman_> double d = 0.0; while(d < 1.0) { d += rnd(); steps++; }
10:44:08 <mroman_> ^- like that
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:46:51 <myname> also that one
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:11 <mroman_> or it's something else :)
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:10 <GoToTell> 0 > n > 4
11:04:49 <ski> obviously `n' can't *both* be greater than `4' *and* lesser than `0' ..
11:05:19 <GoToTell> Dammit.
11:05:34 <GoToTell> Symbol blindness. My apologies.
11:05:46 <GoToTell> 0 < n < 4
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 <int-e> ^style
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 <int-e> ^style alice
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:24 <int-e> ^style irc
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 <int-e> ^style oots
11:10:35 <fungot> Selected style: oots (Order Of The Stick)
11:10:39 <int-e> ^style irc
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:01 <myname> okay
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 <fizzie> ^style oots
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 <fizzie> fungot: But what?
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).
11:59:19 <bender|> . o O ( help )
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:24:52 <Melvar> oωo?
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:26:46 <fizzie> Yes.
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:10:13 <izabera> and you can merge them
15:11:09 <izabera> how awful is that?
15:13:18 <oerjan> `olist 1007
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:20:30 <izabera> well of course..
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:09 <shachaf> øøh list
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:54 <oerjan> shocking
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:38:29 <b_jonas> which list?
15:39:24 <oerjan> `? olist
15:39:25 <HackEgo> Update notification for the webcomic Order of the Stick. http://www.giantitp.com/cgi-bin/GiantITP/ootscript
15:40:17 <shachaf> nostalgia time is over
15:40:21 <shachaf> `` sed -i 's#cgi-bin.*#comics/ootslatest.html#' wisdom/olist
15:40:23 <HackEgo> No output.
15:42:37 -!- bender has quit (Quit: [May the Kool Klocks Klan be with you!]).
15:43:01 <b_jonas> oh, that
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:23:57 <shachaf> Taneb: Haneb
16:24:04 <Taneb> hellochaf
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:30:26 <shachaf> negative hit points?
16:30:33 <shachaf> this game is bizarre
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:33:56 <shachaf> this is 3.5e
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
16:34:33 <Taneb> I don't know 3.5e
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:06:34 <Taneb> Man, I hope so
17:15:21 <newsham> > goldfish' "my amp goes to eleven"
17:15:23 <lambdabot> Not in scope: ‘goldfish'’
17:16:49 <oerjan> alas, lambdabot has memory like a ...
17:28:52 -!- hppavilion[1] has joined.
17:29:23 <newsham> like an arrow
17:29:26 <int-e> otherwise lambdabot would be insane by now
17:30:14 <newsham> exsanity quodlibet
17:30:23 <newsham> exinsanity
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:45:12 <hppavilion[1]> Anyone on?
18:47:35 <gamemanj> `echo `whoami` is on
18:47:36 <HackEgo> ​`whoami` is on
18:47:39 <gamemanj> :(
18:48:27 <shachaf> `whoami
18:48:28 <HackEgo> whoami: cannot find name for user ID 5000
18:48:42 <shachaf> `` wc -l /etc/passwd
18:48:43 <HackEgo> wc: /etc/passwd: No such file or directory
18:49:29 <gamemanj> hah
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:18:36 <izabera> `` who am i
19:18:37 <HackEgo> No output.
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:12 <fizzie> Still UML.
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
20:59:37 <lambdabot> Consider it noted.
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:22:22 <hppavilion[1]> uGH
21:22:28 <hppavilion[1]> *Ugh
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:31:24 <hppavilion[1]> Anyone have any ideas?
21:32:24 <Melvar> How are you parsing?
21:32:43 <hppavilion[1]> Melvar: Combinators. How else? xD
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:16 <hppavilion[1]> (who used parser combinators)
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:33:58 <hppavilion[1]> The operator parser is produced with a FOR loop
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:01 <hppavilion[1]> Sort of like PostScript
21:43:25 -!- atrapado has quit (Quit: Leaving).
21:44:04 <hppavilion[1]> With FOR loops and all these nice things
21:44:27 <myname> ) x
21:44:32 <myname> huh
21:44:35 <myname> ( x
21:44:35 <idris-bot> No such variable x
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:48:53 <hppavilion[1]> Melvar: Never head of that loop
21:48:58 <hppavilion[1]> But probably yes
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:12 <hppavilion[1]> SO my syntax is fairly simple
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:06:08 <hppavilion[1]> (This is for MegaStackLang)
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 <FireFly> [ 'myname: this one?'
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:34:46 <lambdabot> 15
23:35:43 <shachaf> Yes.
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).
←2015-09-29 2015-09-30 2015-10-01→ ↑2015 ↑all