00:02:15 -!- Phantom_Hoover has quit (Remote host closed the connection).
00:14:27 -!- oerjan has quit (Quit: Nite).
00:16:09 -!- Bike has joined.
00:21:40 -!- nooodl has quit (Quit: Ik ga weg).
00:23:25 -!- Sprocklem has joined.
00:29:56 -!- Taneb has quit (Quit: Leaving).
00:32:20 -!- Sgeo has joined.
00:36:30 -!- augur has quit (Remote host closed the connection).
00:37:05 -!- augur has joined.
00:42:07 -!- augur has quit (Ping timeout: 272 seconds).
00:45:09 <Sgeo> Going to go cry in a corner about the betrayal of a language that I was starting to like
00:45:10 <Sgeo> http://pastie.org/8496948
00:46:20 <Bike> shot through the heart AND YOU'RE TO BLAME
00:52:37 <Sgeo> Why is the movement lobe so laggy
00:53:48 -!- yorick has quit (Remote host closed the connection).
00:54:05 <Sgeo> Oh, ok, tht's easy to fix
00:55:18 <JesseH> I think im going to create a language, where you just hit the keyboard with your fist randomly
00:55:30 <JesseH> like, aim for a with your fist, and that will me like + for brainfuck
01:07:10 -!- adu has joined.
01:09:27 -!- tertu has quit (Ping timeout: 246 seconds).
01:14:55 -!- typeclassy has quit (Ping timeout: 246 seconds).
01:33:02 -!- tertu has joined.
02:06:57 -!- augur has joined.
02:19:51 -!- conehead has quit (Quit: Textual IRC Client: www.textualapp.com).
02:20:09 -!- conehead has joined.
02:24:45 <quintopia> JesseH: so the commands will be clusters of letters? and the interpreter tries to guess where one cluster ended and the next one started?
02:32:13 -!- tertu has quit (Ping timeout: 272 seconds).
02:34:49 -!- Sprocklem has quit (Ping timeout: 240 seconds).
02:35:37 -!- tertu has joined.
02:45:52 -!- typeclassy has joined.
02:48:08 -!- madbr has joined.
02:49:11 -!- adu has quit (Quit: adu).
02:56:53 -!- typeclassy has left ("ERC Version 5.3 (IRC client for Emacs)").
03:00:41 -!- adu has joined.
03:19:38 -!- tertu has quit (Read error: Connection reset by peer).
03:58:56 -!- tertu has joined.
03:59:41 -!- tertu has quit (Read error: Connection reset by peer).
04:04:48 -!- doesthiswork has joined.
04:51:27 -!- adu has quit (Quit: adu).
05:20:45 -!- doesthiswork has quit (Quit: Leaving.).
05:58:27 -!- conehead has quit (Quit: Computer has gone to sleep.).
06:05:28 <Bike> the moo- oh, sorry
06:07:22 -!- muahaha has joined.
06:07:28 -!- muahaha has left.
06:20:56 -!- Sgeo_ has joined.
06:22:56 -!- Sgeo has quit (Ping timeout: 240 seconds).
06:28:17 -!- madbr has quit (Quit: Rouringu de hajikunda!).
06:48:24 -!- augur_ has joined.
06:52:02 <HackEgo> shachaf: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: <http://esolangs.org/wiki/Main_Page>. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
06:52:53 -!- augur has quit (Ping timeout: 272 seconds).
06:56:16 <shachaf> I don't think I've been `welcomed before.
06:56:32 <myname> so you just made it yourself
07:00:11 <HackEgo> shachaf: エソテリックプログラミング言語のディザインとデプロイメントの国際な場所へようこそ!詳しく、ウィキを見て: http://esolangs.org/wiki/Main_Page。(他のエソテリック、irc.dal.netの#esotericへ)
07:00:28 <quintopia> now someone else has welcomed them. happy?
07:00:29 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: rercome: not found
07:00:38 <quintopia> shachaf: i've never been welcomed either
07:01:10 <HackEgo> quintopia: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: <http://esolangs.org/wiki/Main_Page>. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
07:02:57 <shachaf> have i asked you about chu spaces yet
07:03:30 -!- darklust_ has joined.
07:03:30 <ion> What’s a choo choo space?
07:03:41 <quintopia> @ask oerjan why did you expand the definitions of sin and cos on SELECT.? and why not the others? (i prefer the unexpanded versions because it shortens the code i have to write if i can just call other ones as subroutines.)
07:04:10 <quintopia> shachaf: you've never asked me hth
07:04:22 <shachaf> ion: there's a channel for that
07:04:40 <Bike> #cslounge-topologicalgeneralizations
07:04:51 <shachaf> #cslounge-bikes does exist
07:05:45 <myname> isn't csharp basically an esolang?
07:06:00 <lexande> shachaf: yeah, i don't know about them, sorry
07:06:05 <ion> Should i lounge on #cslounge?
07:06:11 <lexande> is C++ still kmc's favourite esolang?
07:07:04 -!- darklust__ has quit (Ping timeout: 264 seconds).
07:07:41 <quintopia> is there a working complex SLI library?
07:07:56 <Bike> not that i'm aware of
07:08:12 <Bike> guess you have to work out the operations
07:08:16 <quintopia> do you know how to fast add and multiply in SLI
07:08:28 <lexande> ion: once saul kripke was walking in DC and he saw john nash, so he went up to him and say "hi, i'm saul kripke, it's an honour to meet you professor nash." and nash said "who are you!? who sent you!?"
07:08:30 <Bike> e^a * e^b is e^(a+b), so recursin'
07:09:09 <lexande> it is unknown how many times this iterated
07:09:21 <ion> lexande: Acknowledged.
07:09:31 <Bike> e^a + e^b is uh... some bullshit
07:09:32 <lexande> anyway, if you do decide to join #cslounge, be prepared to answer a question similar to nash's with a better response than kripke's
07:10:39 <shachaf> Sgeo_ is in #cslounge somehow
07:11:17 <Sgeo_> I've been there a while
07:11:36 <myname> sometimes i wonder what knowledge you people here have
07:11:44 <Bike> oh, wikipedia has a library. https://code.google.com/p/sli-c-library/
07:11:55 <Bike> myname: i can name, like, three different pokemons.
07:12:10 <Bike> «SLI (symmetric level-index) arithmetic essentially prevents overflow & underflow in computing. With this library, you may use 'SLI' as a normal data type in C++. Replace 'double' with 'SLI' in you program, and over/underflow problem would be solved.» lol
07:12:15 <quintopia> Bike: yeah that's not implemented complex numbers :P
07:12:15 <myname> i have a seminar this semester about game theory and slowly understand nash equilibrium
07:12:23 <myname> Bike: that is pretty lame
07:13:02 <Bike> surely c++ templating makes it a snap to replace the underlying numeric type!
07:14:10 <quintopia> hmm, but x*y=ln((e^x)^y), but ln is just -1, and e^ is just +1, so that's just (x+1)(whatever ^ is)y-1
07:14:18 <quintopia> i think this one is easier to figure out
07:14:45 <quintopia> but ^ is not a simple thing in SLI
07:16:00 <myname> i don't get the nash joke :(
07:17:23 <Bike> exp(a) * exp(b) = exp(a + b) is 1 + a + b, right
07:19:16 <shachaf> lexande: i heard that story before
07:19:27 <Bike> using multiple forms of arithmetic in the same go like that is confusing.
07:21:20 <shachaf> Bike: ˖ ᐩ ⁺ ₊ ∔ ⊕ ⊞ ➕⧺ ⧻ ⨁ ⨹ hth
07:22:08 <shachaf> that's what they use in elementary schools in .il
07:22:19 <shachaf> because + is too christian??
07:22:34 <myname> i would go with the first five
07:22:59 <shachaf> some schools, anyway. i had it in some books
07:23:12 <ion> shachaf: You forgot ☩ 卍 卐 hth
07:23:58 <Bike> maybe we can just decide adding things is overrated.
07:24:37 <shachaf> Bike: btw did you see my 2064 INVISIBLE PLUS []
07:24:47 <Bike> since it was invisible
07:25:02 <ion> The jokes within the Unicode standard are hilarious.
07:25:13 <shachaf> May you live in INVISIBLE PLUS.
07:26:21 <quintopia> Bike: yes it would be 1+(a卐b). and a = exp(a)-1, and b=exp(b)-1, but the 卐 is not simple.
07:26:51 <Bike> a^b = e^(a * log(b)) = 1 +' (a *' (b -' 1))
07:26:58 <Bike> i'm really too tired to think ugh
07:27:06 <Bike> er, b * log a.
07:27:12 <ion> I’ll think ugh for you.
07:27:19 <Bike> why does anyone pay attention to me. why do i exist? what is life.
07:27:30 <fungot> shachaf: i'll need to buy bread i assume it was a fools fnord.
07:27:50 <Bike> quintopia: i'm using ' to mean "in normal arithmetic", and without it to mean "in SLI"
07:27:59 -!- FreeFull has quit.
07:28:03 <ion> - is not a normal minus, − is a normal minus.
07:28:10 <Bike> yeah, you're right.
07:28:16 <shachaf> fungot: - is a HYPHEN—MINUS
07:28:16 <fungot> shachaf: doesn't mean anything to me either. rather read the algorithm, as well
07:29:06 <quintopia> i like to subtract using em-dashes
07:29:17 <Bike> so a^b = 1 +' (1 +' (b + (a -' 1))) or so
07:29:37 <shachaf> that was a pedant trap. let's see who else falls in.
07:29:42 <Bike> + is bullshit that i hate though. fuck it. die. mother
07:30:23 <shachaf> what are you even trying to figure out
07:30:29 <Bike> who fucking knows
07:30:41 <quintopia> Bike: i think it may be easier to define + and * in terms of ^ and have ^ be the one complicated algorithm
07:30:53 <Bike> has anyone ever even been so far decided as to more like
07:30:54 <shachaf> service level initiative??
07:31:33 <quintopia> has anyone really been so far even as do go be look more like?
07:31:38 <Bike> four hundred nineteen armless and legless corpses float conspicuously through the remains of the hangar
07:33:29 <quintopia> lifthrasiir: definininininining ^ CxC->C where C uses the SLI representation
07:33:30 <Bike> sli is where each number has two parts, a regular small significand, and a whateverthefuckinand such that the value of the number is the power tower of e's whateverthefuckinand tall with the significand at the top
07:35:09 <quintopia> of course it really only makes sense in the complex field if we only allow anyone ever to use the principal branch
07:35:23 <Bike> the other branches can fuck themselves
07:35:39 <quintopia> well, brances do have crotches between them
07:36:00 <Bike> the -1 branch of lambert is such an asshole at parties
07:36:10 <Bike> no i'm not dressed as andrew jackson you dumb motherfucker
07:36:47 <quintopia> are the branches of the product-log polyamorous
07:37:12 <quintopia> they do seem to like to get together at one point
07:42:34 <Bike> http://link.springer.com/chapter/10.1007%2FBFb0024702
07:43:14 -!- augur has joined.
07:44:32 <Bike> only thirty bucks
07:44:56 -!- impomatic has quit (Quit: impomatic).
07:45:13 -!- augur_ has quit (Read error: Connection reset by peer).
07:53:44 <quintopia> well there's a hint in the abstract
07:55:49 <quintopia> it also talks about "the original recursive algorithms for arithmetic"
07:55:57 <quintopia> meaning those are exposed somewhere besides this paper
07:56:14 <Bike> classical arithmetic is recursive too...
07:57:03 <quintopia> classical arithmetic is usually implemented iteratively, and a lot of it is ENTIRELY parallelizable
07:57:51 <quintopia> like, to do x^y, you don't compute x*(x^(y-1))
08:00:12 <ion> what is this i don’t even http://redalertlive.com/2013/11/18/body-modification-piercings-lip-plates/
08:02:53 <shachaf> kmc: http://www.youtube.com/watch?v=FavUpD_IjVY
08:04:02 <ion> cyriak & cyriak & cyriak
08:28:19 <JesseH> Is there a community like this one, but for non-esoteric prog langs?
08:29:46 <JesseH> Like where you can talk about the creation of programming languages, unharmed :P
08:34:04 <lexande> it doesn't seem like such discussion would be considered offtopic here?
08:35:59 <JesseH> It seems like it would to me, or could be.
08:37:09 <JesseH> Just went ahead and made #nonesoteric :P
08:39:00 <JesseH> No thats a stupid name :P
08:39:22 <JesseH> Because the creation of programming languages doesnt mean just nonesoteric ones
08:39:54 <JesseH> But this channel is centered around esoteric, so thats why I was wondering.
08:40:10 <ion> I think there should be a channel for each real number representing esotericness.
08:40:41 <ion> I hear #esoteric-0.594381… is great.
09:01:14 -!- carado has joined.
09:31:14 <mroman_> JesseH: Please don't create a Java derivative.
09:31:15 -!- carado has quit (Ping timeout: 252 seconds).
09:31:46 <JesseH> Example would would be
09:31:53 -!- oerjan has joined.
09:31:53 <mroman_> May I suggest a more verbose version of J
09:32:29 <mroman_> but generally I'm pretty sure J kicks ass
09:33:19 <mroman_> and we need more kick ass languages
09:33:58 <JesseH> Derplang is going to be a kick ass language :P
09:34:12 <lambdabot> quintopia asked 2h 30m 31s ago: why did you expand the definitions of sin and cos on SELECT.? and why not the others? (i prefer the unexpanded versions because it shortens the code i have to write
09:34:13 <lambdabot> if i can just call other ones as subroutines.)
09:34:23 <mroman_> way too lowlevel @derplang
09:35:29 <JesseH> Handling lists is going to be interesting; I was thinking
09:35:40 <oerjan> @tell quintopia Because SELECT. is a complex number language and the unexpanded versions only hold for reals. and because i didn't remember the inverse versions and my brain didn't feel like working it out.
09:35:59 <mroman_> Can I create 3D figures and then let derplang calculate its volume?
09:36:22 <mroman_> where are matrices, vectors
09:36:42 <JesseH> If you want special things, you probably will have to implement it yourself.
09:37:42 <JesseH> Ill create a package manager thing, so we can easily share libraries :P
09:38:23 <oerjan> @tell quintopia alternatively s/remember/ever learn how branch cuts work for/
09:39:34 <mroman_> At least don't use Integers for Listindices
09:40:10 <mroman_> There should be a data type for indicies
09:40:30 <mroman_> that behaves like an integer but safer
09:44:20 <mroman_> that overloads + and - or something
09:44:35 <mroman_> If Java had operator overloading .
09:45:27 <mroman_> Operator Overloading for Haskell...
09:45:49 <mroman_> Did they consider that to prevent operator hell?
09:46:44 <mroman_> foo :: String -> Int; foo x = read x; foo :: Int -> String; foo x = show x;
09:47:05 <mroman_> I assume it would be possible to detect which version of foo is meant
09:47:18 <oerjan> um that's what type classes are for.
09:47:34 <mroman_> But type class != overloading
09:47:50 <mroman_> i.e (+) is reserved for Num
09:47:59 <mroman_> so you can't use (+) for anything that is not a Num
09:48:27 <mroman_> so you have ++ for strings
09:48:35 <mroman_> because it wouln't really work well with the regular +
09:48:39 <oerjan> type classes were invented because the haskell inventors considered usual overloading ugly and messy.
10:15:21 <HackEgo> [U+0810 SAMARITAN LETTER FI]
10:16:11 <oerjan> hm in putty it _is_ invisible.
10:38:49 <kmc> myname: C# seems pretty un-eso to me
10:39:15 <kmc> it's like java but without all the useful features you'd want inexplicably missing
11:17:22 <oerjan> am i getting overly trigger happy
11:26:16 -!- darklust_ has quit (Remote host closed the connection).
11:27:49 -!- nooodl has joined.
11:30:48 -!- MindlessDrone has joined.
11:38:21 <kmc> unsigned integers, lambdas, tuples, monad comprehensions (kinda), operator overloading, reference parameters, generators, optional & named arguments, extension methods
11:38:42 <kmc> http://en.wikipedia.org/wiki/Comparison_of_C_Sharp_and_Java
11:40:10 <kmc> oh the lambda is also an AST quotation and you can do dynamic macros and JIT them
11:42:35 -!- Patashu has joined.
11:43:16 <kmc> so yeah, C#: actually pretty good and cool
11:43:52 <kmc> I haven't really needed it so far, but I would seriously consider it for a future project, although I'd have to first convince myself Mono is fully-baked enough
11:44:07 <kmc> (it was fine for the one toy project I did in C#)
11:45:52 -!- nooodl_ has joined.
11:49:13 -!- nooodl has quit (Ping timeout: 252 seconds).
12:02:48 <mroman_> I'm a bit disappointed that those languages are so framework dependant
12:03:16 <mroman_> C# is really a neat language
12:03:35 <mroman_> But I'd rather have it produce native code
12:05:17 <mroman_> or at least they should have considered portability a bit better
12:05:28 <kmc> it does produce native code, via JIT
12:05:37 <kmc> what properties associated with "native code" do you actually care about?
12:07:02 <mroman_> It's better for compile'n'run
12:08:03 <mroman_> which means it's more portable
12:09:14 <kmc> you mean that you don't want to have a JIT around at runtime?
12:09:22 <kmc> for size reasons?
12:09:27 <mroman_> I don't care if it's JITed
12:09:56 <mroman_> It's probably even better if it's JITed
12:11:24 <mroman_> But JIT requires an extra installation of some software on your system
12:11:39 <kmc> well you could bundle the JIT with every executable ;P
12:11:55 <mroman_> But I'm not sure how big the Java JIT is :)
12:12:46 <mroman_> Although that sounds too much
12:13:06 <kmc> anyway does the C# spec even forbid, say, an ahead-of-time compiled implementation?
12:13:15 <kmc> i'm not sure whether the spec requires the full Common Language Infrastructure
12:13:29 <kmc> it might, I have no specific knowledge of it
12:13:37 <mroman_> kmc: I don't think so @CLI
12:13:42 <mroman_> But I haven't read the spec.
12:14:15 <mroman_> Seeing as C# is used in OSDEV I assume you don't need a huge runtime around it
12:14:36 <kmc> so if your complaint is that Microsoft's C# implementation is not the kind of C# implementation you'd want to use, that's not a complaint with C# the language
12:14:41 <kmc> Mono has http://www.mono-project.com/AOT
12:14:50 <kmc> don't know anything about it past 2 seconds of reading that page ;P
12:14:55 <kmc> mroman_: what's it used for in os dev?
12:15:30 <mroman_> For "Hey look I can write an OS in C#"-stuff
12:15:55 <mroman_> Much like "Hey look I can write an OS in Ada, Cobol, Pascal, Delphi"-Stuff
12:16:06 <mroman_> kmc: Singularity is probably C#?
12:17:16 <mroman_> It's the Framework I don't like :)
12:17:18 -!- Patashu has quit (Quit: Soundcloud (Famitracker Chiptunes): http://www.soundcloud.com/patashu MSN: Patashu@hotmail.com , AIM: Patashu0 , YIM: patashu2 , Skype: patashu0 .).
12:17:49 <kmc> I don't like Windows so I'd never use MSFT's C# stuff anyway
12:17:55 <kmc> but I might use it via Mono sometime
12:18:20 <mroman_> and now with new .NET and wpf and stuff you have even more feature rich stuff
12:19:15 <mroman_> kmc: Or you find someone who does C# on JVM
12:20:06 <mroman_> Apparentely there's the "Stab programming language"
12:20:24 <kmc> every programming language is a stab programming language
12:20:31 <mroman_> http://code.google.com/p/stab-language/
12:25:24 <lambdabot> (Integral e, Num a) => ASetter s t a a -> e -> s -> t
12:25:48 <lambdabot> `^' (imported from Prelude), `^^' (imported from Prelude),
12:26:22 <lambdabot> Profunctor p => Setting p s t a b -> p a b -> s -> t
12:26:38 -!- oerjan has quit (Quit: BRAAAIN).
12:29:36 -!- MindlessDrone has quit (Quit: MindlessDrone).
12:41:11 -!- carado has joined.
12:44:00 -!- Sgeo_ has quit (Read error: Connection reset by peer).
12:44:41 -!- yorick has joined.
12:58:14 -!- boily has joined.
12:58:26 -!- metasepia has joined.
12:59:21 -!- oerjan has joined.
12:59:50 -!- oerjan has set topic: The channel of the chimæric hellos | The most corum, clargoint chait you could ever loofefl your slance in. | Magnus!!!! | Koirammekokaan ei lennä? :( | https://dl.dropboxusercontent.com/u/2023808/wisdom.pdf | logs: http://codu.org/logs/_esoteric/ or http://tunes.org/~nef/logs/esoteric/.
12:59:55 -!- oerjan has quit (Client Quit).
13:12:46 <boily> good exclamative morning?
13:12:58 <boily> @tell oerjan what with the drive-by topicking?
13:13:39 -!- MindlessDrone has joined.
13:45:35 <kmc> how are you?
13:59:28 <boily> doing well. how's life on your end?
14:00:12 <kmc> pretty good
14:03:20 -!- muskrat has joined.
14:04:00 <metasepia> KSFO 211356Z 25003KT 10SM SCT013 BKN023 OVC042 10/09 A2994 RMK AO2 SLP137 T01000089
14:04:10 -!- muskrat has left.
14:06:04 <boily> kmc: I'm guessing you're currently eating breakfast?
14:06:59 <kmc> it's 23:06 here
14:07:55 <boily> ooookay... either my file is wrong, or the Earth has a very, very weird curvature today.
14:08:39 <boily> you're not in Frisco anymore?
14:09:26 <kmc> i'm vacationing in japan
14:09:39 * kmc twitches at "Frisco"
14:11:14 <boily> オォ!すごい!どこにいっていますか?
14:12:40 <kmc> i can't read any of that -_-
14:12:48 <kmc> but google informs me you asked where i'm going in japan
14:13:45 <kmc> osaka, nara, kyoto, hiroshima, tokyo in that order
14:13:50 <kmc> i'm in hiroshima right now, heading to tokyo tomorrow night
14:14:17 <kmc> this is after a work week + a few days of touristing in Seoul
14:14:49 <kmc> which means that work paid for my flights across the Pacific which is すごい indeed
14:16:27 <kmc> btw Hangul is the coolest writing system ever
14:17:15 <boily> I fear my main motivation to learn languages spoken in Asia is to understand what's written on restaurant menus... >_>'...
14:19:01 -!- yiyus has quit (Read error: Operation timed out).
14:19:18 -!- augur has quit (Ping timeout: 245 seconds).
14:24:27 -!- augur has joined.
14:24:38 <kmc> seems fine to me
14:27:21 <kmc> you can learn to read hangul in a few hours
14:27:46 <kmc> or as one of the developers of the alphabet put it, "a wise man can acquaint himself with them before the morning is over; a stupid man can learn them in the space of ten days"
14:31:16 <boily> on the other end of the spectrum, culinary cantonese is unbelievably hard, not for the characters themselves, but the poetic metaphors and shortcuts.
14:53:37 <boily> I'll take pictures tonight of a potential source of incomprehensibility.
14:54:15 <kmc> do you know anything about szechuan cooking, by the way?
14:54:32 <kmc> i quite like szechuan food and we cook it at home sometimes
14:55:38 <boily> I tried my hand at it a few times, but I have to hone my techniques.
14:55:40 -!- mrhmouse has joined.
15:04:00 <boily> kmc: some day, I'll succumb to the temptation, and buy a portable electric stove with a fondue pot, and make myself real sichuanese fiery fondue of deathly agonizing doom.
15:24:23 <boily> next step: find a recipe with raccoon meat. there are more than enough overweight raccoons on Mont Royal.
15:44:43 -!- Sprocklem has joined.
15:48:33 -!- Phantom_Hoover has joined.
15:49:49 -!- MindlessDrone has quit (Read error: Operation timed out).
15:50:24 -!- mrhmouse has quit (Ping timeout: 246 seconds).
15:52:04 -!- MindlessDrone has joined.
15:57:12 -!- conehead has joined.
16:19:52 -!- Sorella_ has joined.
16:20:50 <HackEgo> Sorella_: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: <http://esolangs.org/wiki/Main_Page>. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
16:21:47 <metasepia> Gnathostomata are the jawed vertebrates.
16:25:01 <boily> it's a well-known anatidæ feature.
16:25:03 -!- nisstyre has quit (Ping timeout: 246 seconds).
16:35:06 -!- mrhmouse has joined.
16:40:19 <JesseH> I think I have decided to keep the old derplang syntax, since more people have told me they like it over the new
16:56:29 <mrhmouse> Slereah: how is your trek into assembly going?
17:03:33 <JesseH> you could say he...JMPd right in...
17:04:41 -!- Sprocklem has quit (Ping timeout: 272 seconds).
17:10:45 -!- Bike has quit (Ping timeout: 272 seconds).
17:16:57 -!- Bike has joined.
17:19:51 <Slereah> I went to bed and went to class
17:20:01 <Slereah> I'll investigate this week end
17:30:11 -!- FreeFull has joined.
17:34:42 -!- ais523 has joined.
17:35:46 <quintopia> what isn't the command called ~anatidae
17:38:50 <quintopia> @tell oerjan the unexpanded versions work for complex numbers too, as that's exactly how i implemented it and got right answers. and the inverse trig functions branch the same way as log (e.g. the principal branch of each agrees)
17:43:25 <Slereah> Why do most computer things use reals instead of rationals
17:43:45 <Slereah> Rationals are easy to code, easy to operate with, and floating points are just really rationals in the end
17:45:25 <Slereah> There's the possibility of wasted space I guess
17:45:39 <Slereah> Since 1/2 = 1*10^30 / 2*10^30
17:45:57 <Slereah> You could be overflowing needlessly
17:46:23 <mrhmouse> Some languages work with rationals by default.
17:46:56 <mrhmouse> And probably many functional languages
17:47:17 <mrhmouse> There's still the floating point type to store irrational numbers.
17:47:27 <Slereah> LISP would be great for it, since a rational is just a list of two integers
17:47:38 <mrhmouse> And I think most general purpose languages have some way of dealing with rationals
17:48:00 <Slereah> You can't store irrational numbers in a floating point
17:48:10 <Slereah> Most irrationals aren't computable
17:48:32 <mrhmouse> No, but you can store a better approximation (read: smaller in size) in floating point
17:49:27 <Slereah> I wonder what would be the most efficient way of encoding some real number approximatively
17:51:59 <boily> quintopia: quinthellopia. because I lack imagination.
17:55:39 <boily> Slereah: const real x = 0;
17:56:15 <Slereah> That's a pretty big approximation
17:56:36 <Slereah> If you encode it on one bit, at least do "0 or not 0"
17:56:49 <boily> I'm an approximation expert, with a specialisation in coördinates.
18:00:12 <Slereah> I guess you could encode algebraic numbers as a vector of their polynoms
18:00:18 <Slereah> I wonder what precision that would allow
18:04:21 -!- conehead has quit (Quit: Textual IRC Client: www.textualapp.com).
18:06:08 -!- conehead has joined.
18:12:29 -!- Taneb has joined.
18:13:03 <boily> Slereah: as a certified appröximator, what are your coördinates and body weigh?
18:13:26 <boily> quintopia: today thursdays.
18:13:53 <quintopia> i couldn't sleep any more even though i was so sleepy
18:26:09 -!- Bike has quit (Ping timeout: 246 seconds).
18:27:12 * boily removes fizzie's eggtimer and glues it onto quintopia
18:27:35 <quintopia> do i have to stand on my head to reset it
18:29:40 <boily> only if you start seeing Ephemeral Shadow-Bats because of sleep deprivation.
18:33:05 -!- Bike has joined.
18:57:37 <Slereah> https://d24w6bsrhbeh9d.cloudfront.net/photo/aEwpeEe_460sa.gif
18:59:13 <mrhmouse> is it really that big of a deal? (the G+ / YouTube linking)
18:59:33 <Bike> it ruins the sanctity of youtube comments.
18:59:38 <mrhmouse> I haven't actually noticed, since I've had a G+ account for ages..
19:00:47 <ais523> it's caused YouTube comments to stop working for me altogether
19:00:51 <ais523> which is arguably a good thing, but…
19:02:17 <mrhmouse> Maybe that's another reason I haven't noticed...
19:02:42 <boily> if youtube comments can't be youtube comments, that'll cause an overflow and drown the rest of the intarwebs under a neverending flood!
19:14:58 <lexande> boily: what did we do before youtube existed?
19:16:05 <quintopia> upload videos in actual video formats
19:16:13 <quintopia> to actual directories of web servers
19:16:50 <Bike> anyone remember quicktime
19:17:01 <lexande> yeah but where did the comments overflow to?
19:17:56 <quintopia> people watched videos in silence in the comfort of their own hard drive
19:18:09 <boily> back in the Previous Era, people overflowed in newspapers.
19:18:12 <quintopia> if they had a comment they wrote it in a text file and saved it for themselves to look at later
19:18:57 <quintopia> boily: now, at the end of the movie, they always overflow on her face
19:19:35 <boily> or, in horror movies, a Supernatural Floating Disflagrated Face.
19:19:53 <Bike> so uh, the original strongly agree-agree-neutral-disagree-strongly disagree scale was kinda fucked up https://twitter.com/mc_hankins/status/403270681846378496/photo/1/large
19:23:05 <Bike> unnnnrelated but you could vote in this poll, it's got ada lovelace and grace hopper. http://www.bobbleheads.com/bobblehead-scientist-poll.html
19:24:20 -!- Sprocklem has joined.
19:29:13 -!- oerjan has joined.
19:38:34 <lambdabot> boily said 6h 25m 35s ago: what with the drive-by topicking?
19:38:34 <lambdabot> quintopia said 1h 59m 43s ago: the unexpanded versions work for complex numbers too, as that's exactly how i implemented it and got right answers. and the inverse trig functions branch the same way
19:38:34 <lambdabot> as log (e.g. the principal branch of each agrees)
19:38:58 <oerjan> boily: magnus won another game hth
19:40:31 <oerjan> quintopia: i fail to see how cos(x) = Re(e^(i*x)) can work for complex numbers given that the correct answer isn't always real.
19:41:48 <oerjan> obviously not a good example.
19:41:52 <lambdabot> 0.8337300251311491 :+ (-0.9888977057628651)
19:42:34 <quintopia> oerjan: perhaps i should reimplement and expand my test cases :P
19:42:53 <boily> ~eval sin 1 == (exp (0 :+ 1) - exp (0 :+ -1)) / (0 :+ 2)
19:42:54 <metasepia> Error (1): Precedence parsing error
19:42:54 <metasepia> cannot mix `Data.Complex.:+' [infix 6] and prefix `-' [infixl 6] in the same infix expression
19:43:03 <boily> ~eval sin 1 == (exp (0 :+ 1) - exp (0 :+ (-1))) / (0 :+ 2)
19:43:27 <FireFly> Implementation of cos(x) in what?
19:43:48 <oerjan> in http://esolangs.org/wiki/SELECT.
19:44:13 * oerjan wonders how many clients will erroneously leave out the dot.
19:44:37 <oerjan> well, among those who make it a link in the first place.
19:44:41 <int-e> > let i = 0 :+ 1; cos' x = (exp (i*x) + exp(-i*x))/2 in (cos (1 :+ 1), cos' (1 :+ 1))
19:44:43 <lambdabot> (0.8337300251311491 :+ (-0.9888977057628651),0.833730025131149 :+ (-0.98889...
19:45:03 <FireFly> Oh, the dot was part of it
19:45:30 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: yw: not found
19:45:52 <quintopia> oerjan: wait a second. what's the difference between (x+x*)/2 and (e^ix+e^-ix)/2 again?
19:46:01 <Taneb> You're welcome, Firefly. You're wireFly
19:46:10 <oerjan> quintopia: there is no conjugation in the latter.
19:46:12 <int-e> oerjan: You could try http://esolangs.org/wiki/SELECT%2E. ;-)
19:46:32 <oerjan> just two numbers that _happen_ to be conjugate if x is real.
19:47:40 <quintopia> it's not clear to me what happens when they are complex
19:48:21 <oerjan> cos and sin are entire analytic functions in the complex plane, the expressions in e give the same result as the usual power series everywhere.
19:49:32 <nooodl_> i guess e^(i(a+bi)) = e^(ia) * e^(-b)?
19:51:32 <boily> e^(ia) e^(ia) e^(complex fhtaghn)
19:51:40 <oerjan> btw (e^(i*x))* = e^(-i*x*)
19:52:15 <nooodl_> postfix * is confusing as fuck
19:52:28 -!- Phantom_Hoover has quit (Ping timeout: 246 seconds).
19:56:41 <oerjan> quintopia: well e^(ix) and e^(-ix) are essentially the exponential with arguments rotated 90 degrees, which switches which of real and imaginary direction is growing and which is periodic. and then you take linear combinations of that, to make similar functions that are real on reals.
19:57:06 <boily> oerjan, stop being fungot. twh.
19:57:06 <fungot> boily: generally alternative rock or ska. uh, i have trouble assimilating a url that refers to it....
19:57:42 <oerjan> so cos and sin in imaginary direction are approximately growing exponentially.
19:57:46 <Bike> So is there some easy way to get cos and sin out of exp for complex values?
19:58:12 <oerjan> Bike: um yes that's what started this.
19:58:27 <oerjan> cos(x) = (e^(i*x)+e^(-i*x))/2
19:58:27 <oerjan> sin(x) = (e^(i*x)-e^(-i*x))/(2*i)
19:58:43 <Bike> right. silly me.
19:59:14 -!- Sorella_ has quit (Quit: Ex-Chat).
19:59:22 <oerjan> boily: how am i fungot when the sword alone cannot stop!
19:59:23 <fungot> oerjan: sounds like fnord talk. then again as has been demonstrated... i've been wondering about encoding things like stress and vowel lengths...)
20:00:12 <oerjan> fungot: you mean you're working on an audio version of yourself? i think fizzie would appreciate that.
20:00:12 <fungot> oerjan: aww. hold it gently.) but it has slower screen updates as they happen when you were fnord
20:00:42 <oerjan> fungot: audio versions don't need screen silly
20:00:42 <fungot> oerjan: i'm unclear as to how to extract information from gnomon, should he ever join the fnord
20:01:27 <fizzie> I would certainly "appreciate" an incessantly babbling audio-fungot in my home, sure.
20:01:28 <fungot> fizzie: they're cheating a bit with the old version
20:02:33 <boily> fizzie: imagine, a fungot plushie with an embedded speaker. the world would be a much better place!
20:02:33 <fungot> boily: fnord francais? ( assuming that code is valid:
20:02:39 <oerjan> fungot: i am not sure extracting that information is good for sanity.
20:02:39 <fungot> oerjan: i've been looking in the wrong timezones ( as opposed to what you explained above
20:02:47 <boily> fungot: oui, une version francophone serait appréciée.
20:02:48 <fungot> boily: someone could tell fizzie to stop reading before an overflow would fnord, and t f)
20:03:52 <oerjan> fizzie: stop reading before an overflow would fnord hth
20:06:04 <boily> fizzie: do you have a large enough French corpus available for fungotification?
20:06:04 <fungot> boily: only if your kidneys are borked, xerox. xerox, fnord copier, xerox machine ( duplicator that copies graphic matter by the action of a failure continuation
20:06:14 -!- MindlessDrone has quit (Quit: MindlessDrone).
20:06:57 <int-e> fungot: your insightfulness dazzles me
20:06:57 <fungot> int-e: fnord!.... u shouldnt help ppl fnord suicide u fnord!.
20:07:42 -!- impomatic has joined.
20:08:04 -!- augur has quit (Remote host closed the connection).
20:08:30 -!- augur has joined.
20:12:54 -!- augur has quit (Ping timeout: 246 seconds).
20:13:08 <fungot> FireFly: do you think human reasoning is like.
20:13:50 <int-e> fungot, yes, it's very much like.
20:13:50 <fungot> int-e: you have a lot of votes in 1996 due to pure cash flow... nobody even seemed to care about support for syntax extensions in 5.1, but hey, i do
20:14:06 <lexande> fungot: yes, i think facebook has made that much clear
20:14:07 <fungot> lexande: it's pretty much fnord i'm not an expert audio fnord, that's what it means in her area. and all.)
20:14:14 <oerjan> @tell mrhmouse <mrhmouse> Well, I think Haskell does <-- nope, the defaults are bignum Integer and floating point Double. although Rational is there too, but doesn't support all the same functions as either of those.
20:14:38 <lambdabot> No instance for (GHC.Float.Floating GHC.Real.Rational)
20:14:55 <int-e> > toRational $ sin pi
20:14:56 <lambdabot> 4967757600021511 % 40564819207303340847894502572032
20:15:22 <oerjan> mrhmouse: i don't trust people who have been idle for an hour.
20:16:31 <mrhmouse> oerjan: which language am I thinking of that defaults to rationals? I'm certain it was at least similar to Haskell in syntax
20:17:07 -!- yiyus has joined.
20:17:41 <oerjan> @let default (Integer, Rational, Double) -- whistles innocently
20:18:21 <oerjan> oh wait defaults don't get imported, and @lets go into the L.hs module.
20:18:56 <oerjan> @let (test, _) = (1/2, undefined)
20:19:40 <oerjan> hm this is probably messing somewhere.
20:20:14 <oerjan> mrhmouse: also, i dunno.
20:23:14 <oerjan> i suppose with > the actual use of test flows back to the inference.
20:23:41 <boily> AAAAAAAAURGH WHY WON'T YOU GIVE ME A STACK TRACE YOU FSCKING STUPID FRAMEWORK I ALREADY KNOW IT'S A 500 ERROR I WANT DETAAAAAIIILLLLSSS!!!!!
20:23:52 <boily> (sorry. ranting against django.)
20:24:03 <oerjan> also lambdabot probably has monomorphism restriction turned off, hm
20:24:31 <oerjan> although i was hoping the tuple would get around that.
20:24:37 -!- cherez has joined.
20:24:57 <oerjan> > let (x, y) = 1 `divMod` 2 in (x :: Int, y :: Integer)
20:26:57 <oerjan> > (typeOf test, denominator test)
20:27:20 <int-e> well if it is polymorphic then ... of course.
20:27:29 <int-e> but I'm confused as to why
20:27:58 <oerjan> well it's polymorphic given the monomorphism restriction is turned off.
20:28:29 <oerjan> and that means it gets exported polymorphic, and the default declaration in L.hs gets no chance to fire.
20:28:59 -!- Bike has quit (Ping timeout: 272 seconds).
20:29:25 <mrhmouse> Ugh this is going to drive me mad. I could swear I was reading a language tutorial ages ago that showed "1 / 3" at the prompt and "1 / 3" as the response...
20:29:25 <oerjan> so instead the usual defaulting (same as ghci?) happens for lambdabot expressions.
20:30:31 <FireFly> mrhmouse: why are you looking for this?
20:30:31 <oerjan> @let showTest = show test
20:30:38 -!- metasepia has quit (Ping timeout: 240 seconds).
20:31:20 <HackEgo> cherez: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: <http://esolangs.org/wiki/Main_Page>. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
20:31:20 <oerjan> there you go. since show test has type String, the defaulting of test has to happen even with the monomorphism restriction, since the type cannot escape.
20:31:32 -!- metasepia has joined.
20:31:45 <mrhmouse> FireFly: Slereah was talking about rationals, and I thought I remembered that Haskell defaulted to Rational. But it isn't Haskell.. but I remember _some_ language did that...
20:31:48 <oerjan> and showTest is inside L.hs so uses its defaulting declaration.
20:32:40 <oerjan> and it was similar in syntax? would SML do that?
20:33:27 -!- Bike has joined.
20:36:00 -!- evalj has joined.
20:36:06 -!- b_jonas has joined.
20:37:58 <oerjan> @let (evil, attempt) = (show attempt, mempty)
20:37:59 <lambdabot> No instance for (Show a0) arising from a use of `show'
20:38:05 <HackEgo> evalj: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: <http://esolangs.org/wiki/Main_Page>. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
20:38:09 <HackEgo> b_jonas: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: <http://esolangs.org/wiki/Main_Page>. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
20:38:16 -!- JesseH has quit (Quit: Leaving).
20:38:18 <boily> cherez: what brings you to this channel?
20:38:22 <b_jonas> can I get that without colors?
20:38:33 <ais523> oerjan: I like that word
20:38:37 <oerjan> WHAT DO YOU HAVE AGAINST COLORS
20:38:39 <boily> b_jonas: you may, but it's untraditional.
20:38:40 <HackEgo> b_jonas: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: <http://esolangs.org/wiki/Main_Page>. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
20:38:40 <HackEgo> b_jonas: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: <http://esolangs.org/wiki/Main_Page>. (For the other kind of esoterica, try #esoteric on irc.dal.net.)
20:38:56 <ais523> also, huh, didn't expect to see b_jonas over here
20:38:56 <FireFly> I think you're sufficiently `welcome'd now
20:39:15 <oerjan> ais523: do you think i was trigger happy in blocking PcCleaner
20:39:19 <ais523> but then, I don't generally expect to see anyone happy over here
20:39:31 <ais523> oerjan: I was scouring the relevant logs to try to find something to block them for :)
20:39:33 <boily> ais523: I AM HAPPY, FUNGOT IT!
20:39:34 <cherez> boily: Nothing in particular. Old friends with pikhq and thought it might be fun to lurk here a bit.
20:39:42 <ais523> but I'd have allowed account creation
20:40:26 <ais523> if you're blocking someone on the basis of username, you should give them a chance to change it
20:40:32 <oerjan> ais523: i mean it seems to be named after what seems to be a scam company at best.
20:40:44 <ais523> the name's free on Freenode, btw? anyone want it?
20:44:08 -!- JoeyEsper has joined.
20:44:56 -!- JoeyEsper has left.
20:45:09 <boily> but, but... I was typing a nice `relcome...
20:46:14 <ais523> it's one of those weird things about IRC, people who say hello, then get annoyed at the lack of response and leave before you have a chance to type a response
20:46:55 -!- ais523 has quit.
20:49:41 -!- Sprocklem has quit (Ping timeout: 252 seconds).
20:56:59 <int-e> oerjan: hmm, mueval turns off the monomorphism restriction without being asked to.
20:57:00 -!- Bike has quit (Ping timeout: 246 seconds).
20:59:12 -!- augur has joined.
21:02:01 <b_jonas> int-e: I guess on this channel an evaluator bot should use the craziest extensions by default, such as not only no monomorphism restrictions, but also circular types, undecidable instances, etc
21:02:30 <int-e> b_jonas: yeah but the primary channel it's for is #haskell
21:02:33 * boily points to metasepia “Go nuts with it! But be careful with the error messages”
21:02:42 <b_jonas> int-e: sure, but use channel-dependent options
21:03:09 <lambdabot> run <expr>. You have Haskell, 3 seconds and no IO. Go nuts!
21:03:20 <lambdabot> "\"\\\"\\\\\\\"\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\...
21:03:48 <metasepia> "\"\\\"\\\\\\\"\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
21:04:31 -!- Bike has joined.
21:05:21 <b_jonas> @run let { x = print; } in x
21:05:41 <lambdabot> "*Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *E...
21:06:57 <evalj> b_jonas: *Exception: *Exception: *Exce
21:07:08 <evalj> b_jonas: *Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *Exception: *Exception:
21:10:14 <lambdabot> No instance for (Monoid a0) arising from a use of `mempty'...
21:10:46 <oerjan> interesting. @let seems to use the monomorphism restriction.
21:11:19 <oerjan> when checking if the addition is sane.
21:12:12 <b_jonas> @run let { x = show; } in x () ++ x []
21:14:09 <int-e> oerjan: it uses some ghc invocation for type-checking L.hs, but mueval for the final evaluation. (it seems that mueval *also* does not explicitly turn off the monomorphism restriction ... next stop will be hint ...)
21:14:43 <oerjan> b_jonas: i don't recall haskell having any extension for circular types.
21:16:58 <metasepia> Error (1): No instance for (Data.Monoid.Monoid a0) arising from a use of `e_1'
21:16:58 <metasepia> The type variable `a0' is ambiguous
21:16:58 <metasepia> Possible fix: add a type signature that fixes these type variable(s)
21:16:58 <metasepia> Note: there are several potential instances:
21:16:58 <metasepia> instance Data.Monoid.Monoid () -- Defined in `base:Data.Monoid'
21:16:58 <metasepia> instance (Data.Monoid.Monoid a, Data.Monoid.Monoid b) =>
21:16:59 <metasepia> instance (Data.Monoid.Monoid a, Data.Monoid.Monoid b,
21:17:01 <metasepia> ...plus 18 othersNo instance for (GHC.Show.Show a0)
21:17:02 <metasepia> arising from a use of `M175202735352782162727845.show_M175202735352782162727845'
21:17:15 <int-e> type families can be abused for that to some extent ... with horrible, horrible type errors when things go wrong.
21:19:09 <oerjan> boily: i think you mean SPAM SPAM WONDERFUL SPAM
21:20:45 <boily> plan for the holidays: eat food. eat food. revamp metasepia. eat food. eat food. enjoy saner error messages!
21:25:20 <int-e> oerjan,boily: you might like http://int-e.eu/~bf3/haddock/typeeval-0.0/
21:26:36 <boily> int-e: I might not understand it.
21:27:27 <int-e> any Haskell programmer will tell you that Node 42 [False, True] and Node 42 [Node 23 [], Leaf 0] should not type-check at the same time.
21:27:48 <b_jonas> oerjan: really? let me check the ghc manual. I really thought there was one, only nobody uses it because it masks too much errors.
21:28:03 <int-e> (And I agree. I wrote that ... code, and I never used it after encountering type errors reminiscent of C++.)
21:28:10 <b_jonas> and because if you really want a circular type you can get one by that higher order type trick
21:29:56 <b_jonas> hmm, did I just imagine that there was such an option in ghc?
21:30:29 <oerjan> b_jonas: generally you use newtypes and they're optimized away.
21:30:41 <oerjan> also, ocaml has one, i used it once.
21:31:07 <oerjan> (to implement unlambda)
21:32:19 <b_jonas> @type let { x = [x]; } in x
21:32:20 <lambdabot> Occurs check: cannot construct the infinite type: t0 = [t0]
21:33:10 * boily is tempted to run that in ~eval, but he spammed once today so he'll be wise and not do it.
21:33:38 <boily> int-e: my Haskell-fu is diminishing. too much Python for the past few months.
21:34:49 <b_jonas> strange, it looks like ghc doesn't have such an extension
21:35:14 <b_jonas> but why? I mean, it seems like something those people who develop some of the other crazy type system extensions would want to try
21:35:29 <b_jonas> can it not be made to a consistent type system extension?\
21:36:13 <b_jonas> that is, an extension such that if an occurs check finds a cycle in type constraints, it just creates a cyclic type instead of an error
21:36:30 <b_jonas> maybe it doesn't play well with higher order types or something?
21:36:30 <int-e> there's no big pressure (newtype Mu f = Mu (f (Mu f)) gets the desired effect with some extra source code)
21:36:49 <b_jonas> int-e: sure, but you have seen some of the other type system extensions people have added
21:36:57 <b_jonas> I'd have thought they'd try this too
21:37:11 <shachaf> int-e: imo call that type Fix
21:37:27 <shachaf> newtype Fix f = Fix { runFix :: f (Fix f) }
21:37:37 <shachaf> newtype Mu f = Mu { runMu :: forall r. (f r -> r) -> r }
21:37:42 <int-e> it's been done before -> less research interest.
21:37:45 <shachaf> data Nu f = forall x. Nu x (x -> f x)
21:37:59 <Bike> opaque greek is the future, shachaf
21:38:01 <Bike> and also the past
21:38:31 <shachaf> Bike: what, that's not enough opacity for you??
21:38:36 <int-e> and from a practical perspective, I think having let x = [x] *not* typecheck is a great boon for sanity.
21:38:56 <shachaf> Oh, you're talking about equirecursive types.
21:39:04 <shachaf> Yes, there are various good reasons not to have them.
21:39:07 <b_jonas> I have to assume someone tried but it turned out if you combine it with some other language features you lose the guarantee of the compilation terminating or you can prove Void or something crazy like that so they didn't add them
21:39:15 <b_jonas> shachaf: I know why we don't have them by default:
21:39:21 <b_jonas> they'd mask too many errors
21:39:32 <shachaf> ocaml supports them, I think.
21:39:51 <b_jonas> but I was wondering why we don't have it as a language extension
21:40:13 <int-e> otoh, as far as I know, ocaml frowns on data Tree a = Level a | Nest (Tree (a,a))
21:40:45 <b_jonas> int-e: that's non-regular types or whatever that's called, right?
21:41:15 <int-e> "non-regular" makes sense, but I don't know.
21:41:34 <b_jonas> I think that feature had two names, and non-regular may or may not have been one of them
21:43:05 <oerjan> polymorphic recursion is used for the functions operating on such things, at least.
21:47:18 <shachaf> If I remember correctly, polymorphic recursion is the issue. You might even be able to define the type itself?
21:47:38 <b_jonas> shachaf: what? define what type where?
21:48:04 <shachaf> Not too useful without functions to operate on it.
21:48:42 <shachaf> I liked Conal's talk at http://conal.net/talks/understanding-parallel-scan.pdf
21:48:52 <oerjan> i think shachaf means in ocaml, which doesn't have polymorphic recursion.
21:49:13 <oerjan> and so even if you could define the type, you couldn't use it for anything.
21:50:11 <b_jonas> or maybe you could only use it non-parametrically, limited to the first compile-time-finite many depths
21:50:23 <b_jonas> which doesn't buy you anything over just separate type
21:50:52 <b_jonas> similarly to what would happen in C++
21:51:12 <b_jonas> you could define a type that looks like this, but you can only ever instantiate finitely many in a program
21:51:23 <b_jonas> if you try unlimited recursion, the compiler will give up
21:53:43 <b_jonas> now I'm curious, can ocaml do the higher order type quantification trick haskell's ST does?
21:56:54 -!- boily has quit (Quit: Gàààààààààrgh).
21:56:57 -!- metasepia has quit (Remote host closed the connection).
21:58:17 <b_jonas> I thought at one point whether C++ can do it, and decided it can't, because even though it can do higher order quantification, sort of, it can't prove things about it, so can't enforce the kind of restriction ST depends on
22:07:23 <oerjan> the term is "higher rank" btw. dunno about ocaml, but doubt it unless they've added it after my time.
22:08:35 <shachaf> oerjan: when was your time
22:11:39 <Bike> today in confusing terminology: insect flight involves 'synchronous' and 'asynchronous' muscle, which are alllllmost analogous to programming
22:12:55 <oerjan> shachaf: 'bout 2002 or so.
22:14:03 <Bike> what's it like outliving the soviet union
22:14:41 <Taneb> I didn't even outlive Yugoslavia
22:18:57 <impomatic> Hmmm... Notepad++ handles a 2.6 million line 170 MB text file without any problems. Windows Notepad and Programmers Notepad both stopped responding.
22:21:51 <nooodl_> windows notepad can't really handle anything bigger than like 10k lines in my experience
22:22:45 <Bike> hum, curry's original paper defines \lambda^n ...vars... for an n-ary function, weird
22:25:11 -!- mrhmouse has quit (Quit: Leaving.).
22:25:26 <oerjan> i assume they hadn't invented schönfinkeling yet
22:26:01 <olsner> "they" = schönfinkel? or did someone else invent schönfinkeling?
22:26:29 <Bike> http://www.urbandictionary.com/define.php?term=schonfinkeling
22:26:43 <oerjan> i noticed that in the google hits.
22:27:06 <oerjan> ach, du finkelst so schön
22:28:14 <oerjan> oh i can downvote it without registering
22:28:40 <b_jonas> I'm scared by sql triggers. they let you write almost arbitrary programs in sql, but only in a very ugly way
22:28:44 <Bike> "Finally, K converts a constant into a function with a constant value, or a function into one with an additional, fictitious variable."
22:29:39 <oerjan> b_jonas: so you are not trigger happy.
22:30:21 <b_jonas> they look like something that's very easy to abuse
22:30:34 <b_jonas> you start with some simple triggers and you end up in an unmaintenable mess
22:31:15 <olsner> hmm, I think I've forgotten what schönfinkeling is
22:31:20 <b_jonas> in sqlite3, you can have views with instead of insert triggers that basically simulate an arbitrary function
22:31:31 <Bike> backwards currying, i think?
22:31:46 <b_jonas> not quite arbitrary, but very close
22:31:58 <oerjan> b_jonas: so like this basically? http://www.youtube.com/watch?v=EKajmVgaOEM
22:32:31 <oerjan> Bike: it's just currying, except with the correct inventor name.
22:32:55 <Bike> for what it's worth curry mentioned schofinkel a lot.
22:32:56 <b_jonas> of course the sqlite3 language can be scary even without triggers:
22:33:06 <b_jonas> there's no let statement, so if you need one you have to write a nested select
22:33:21 <olsner> "It was originated by Moses Schönfinkel and later worked out by Haskell Curry." says wp
22:33:23 <Bike> credits him with BCWK and SKI
22:33:39 <b_jonas> the normal solution is to do the variable copying from outside sql language, which sqlite3 totally allows to do easily
22:34:02 <b_jonas> you can copy results of a statement to the bindings of another statement without examining them
22:34:13 <Bike> and with proving SK is complete or whatever you call it.
22:34:42 <b_jonas> Bike: really? I thought Church proved that
22:36:13 <Bike> "Schönfinkel discovered that all combinators can be defined in terms of two special ones, S and K,"
22:36:47 <b_jonas> what did Church prove then?
22:36:53 <int-e> oerjan: Ok, it's hint's fault. When initialising, it queries the enabled extensions from ghc. Then it's translating MonomorphismRestriction to NoMonomorphismRestriction internally, but without inverting the current state of the extension.
22:38:50 <b_jonas> as for S and K, I recently bought Smullyan's mockingbird book because they just translated it
22:38:56 <Bike> b_jonas: that it's inconsistent, how to restrict it so that it's consistent, how to avoid variables entirely, bla bla bla
22:39:16 -!- nisstyre has joined.
22:39:24 <b_jonas> Bike: but isn't avoiding variables the whole point of S K ?
22:39:31 <b_jonas> or did he find some other basis instead?
22:39:52 <Bike> how to define things without reference to a lambda calculus meta formalism, i mean, i think
22:40:56 <b_jonas> do you mean construct them as functions or something like that?
22:42:33 <Bike> construct a formalism of combinators with no reference to functions
22:43:01 <b_jonas> huh? but it's exactly the lambda symbols that doesn't reference functions
22:43:06 <b_jonas> only syntax transform rules
22:43:31 <b_jonas> well, the S K or other combinator basis can also do that
22:43:46 <Bike> it's 'the combinatory basis of logic' or something if you want to read it yourself
22:45:27 <int-e> oerjan: there's even a bug report about it: http://darcsden.com/jcpetruzza/hint/issue/1 (different extension but same idea: hint only has NoImplicityPrelude)
22:48:43 <oerjan> is it just me or is darcsden kind of ugly.
22:49:02 <int-e> I don't know about you but darcsden *is* ugly.
22:54:57 <int-e> but now that that's fixed I better add a sane default directive there ...
22:55:20 <oerjan> um what's wrong with the default one.
22:55:21 <b_jonas> more about sqlite3, table constraints can be arbitrary expressions, and those expressions can call user-defined functions, and I think those functions can modify the database
22:55:42 <b_jonas> but now they added partial indices, but the conditions for partial indices can't call user-defined functions
22:55:45 <int-e> oerjan: nothing. I'm adding default (Integer,Double) so your @let will hopefully stop working :)
22:55:55 <b_jonas> the inconsistency seems a bit strange
22:56:10 <b_jonas> but I might be misunderstanding something here
22:56:13 <oerjan> int-e: ((),Integer,Double) is what ghci uses.
22:56:27 <int-e> @let default (Integer, Rational, Double)
22:57:21 <oerjan> also, that default only applies within the L module, iiuc
22:57:56 <int-e> oerjan: yes, I added () there, too. thanks for the hint :)
22:58:21 <b_jonas> obviously those constraints can not only modify the database but also have random return value, so the same contraints are sometimes true and sometimes false
22:58:51 <b_jonas> which would be wierd for both constraints and partial indices
23:01:22 -!- nisstyre has quit (Quit: Leaving).
23:01:41 <int-e> > let (t,1) = (show,1) in t 1 ++ t ()
23:01:42 <lambdabot> No instance for (GHC.Num.Num ()) arising from the literal `1'
23:02:36 <int-e> (MonoPatBinds was another one that went the wrong way ... hmm ... but I didn't test it right.)
23:06:46 <oerjan> > let t = show in t 1 ++ t ()
23:06:47 <lambdabot> No instance for (GHC.Num.Num ()) arising from the literal `1'
23:07:13 <oerjan> > let t x = show x in t 1 ++ t ()
23:07:38 <oerjan> now start waiting for the barrage of complaints hth
23:08:32 <int-e> hmm. did that really change? *goes to test*
23:15:07 -!- nooodl_ has changed nick to nooodl.
23:15:17 <int-e> Ah, NoMonomorphismRestriction implies NoMonoLocalBinds, obviously.
23:15:58 -!- Bike has quit (Ping timeout: 245 seconds).
23:21:44 <int-e> meh. I'm being stupid.
23:21:50 -!- S1 has joined.
23:24:25 -!- evalj has quit (Remote host closed the connection).
23:25:25 -!- lambdabot has quit (Quit: wee! restarting!).
23:26:51 <int-e> it's a bit annoying to have to restart lambdabot just because of an extra flag. oh well :)
23:28:21 -!- carado has quit (Ping timeout: 252 seconds).
23:29:20 -!- Phantom_Hoover has joined.
23:29:27 -!- lambdabot has joined.
23:29:29 <int-e> > let t = show in t 1 ++ t ()
23:30:33 -!- Bike has joined.
23:31:11 <Phantom_Hoover> oh also meanwhile: http://blog.wolfram.com/2013/11/21/putting-the-wolfram-language-and-mathematica-on-every-raspberry-pi/
23:31:48 <int-e> oerjan: haha, darcshub is buggy, too: http://darcsden.com/jcpetruzza/hint/patches
23:37:07 -!- augur has quit (Remote host closed the connection).
23:37:43 -!- augur has joined.
23:41:57 -!- augur has quit (Ping timeout: 248 seconds).