00:21:10 <coppro> Does Haskell have a way to name parts of patterns?
00:27:50 <ais523> fax: of course BF is possible in Haskell
00:28:20 <ais523> also, AnMaster vs. alise is bad enough, I don't really like disputes/ignore-battles between #esoteric regulars
00:28:34 <fax> they started it
00:29:31 <oklopol> why can't we all just get along :'(
00:29:37 <coppro> because this is the Internet
00:30:32 * fax was getting along fine until people started being uppity /ignore users
00:32:35 <oklopol> no actually i think they *first* got annoyed, *then* started to threaten with ignore!
00:33:00 <oklopol> so how's this democracy i've been hearing about
00:34:49 <ais523> oklopol: depends on what you want it to achieve
00:35:37 <oklopol> next topic: "Quadrescence: I did not follow, I came here because of someone else's recommendation" <<< who?
00:35:57 <oklopol> ais523: say i'm trying to take over the world
00:36:04 <oklopol> but without hurting anyone
00:36:14 <ais523> hmm, I don't think democracy is a good tool for that
00:36:20 <ais523> but then, I can't think of anything else that would work well either
00:36:54 <oklopol> what if i killed everyone so democracy would actually just be me in a voting booth
00:37:14 <ais523> oklopol: then it's no different from any other form of government, just with more paperwork
00:40:19 <oklopol> this is a pretty great channel, i can do anything i want and no one gets mad
00:40:32 <oklopol> ^ that's like 3 o's right there
00:40:41 <ais523> and that's more than 3 o's
00:41:12 <ais523> o oko okoko okokoko okokokoko
00:41:24 <oklopol> okokokokokokokokokokokokoko
00:41:29 <fax> oklokonuabfon
00:41:30 <fax> http://www.youtube.com/watch?v=WOdN-d-JogQ
00:43:23 -!- FireFly has quit (Quit: Leaving).
00:44:02 <oklopol> the math is too advanced for me
00:45:20 <oklopol> we made an and port from these tiny sticks once with a friend
00:45:44 <oklopol> we were gonna make a xor but that would've taken too long the way we were doing it
00:46:50 <fax> tiny sticks??
00:47:38 <ais523> also, don't you mean "gate", rather than "port"?
00:47:50 <ais523> and how do you pronounce "xor" for it to start with a consonant?#
00:49:51 <Sgeo> DAMN BUFFERING
00:51:17 -!- cheater3 has joined.
00:51:39 <oklopol> just like i sometimes say "irk" for IRC instead of "i are sea"
00:52:20 * Sgeo wants a language where he can use D'ni numerals for integer constants.
00:52:40 -!- cheater2 has quit (Read error: No route to host).
00:53:16 <Sgeo> Numerals used by the [ficticious] D'ni civilization
00:53:23 <Sgeo> http://en.wikipedia.org/wiki/File:D'ni_numerals.svg
00:54:03 <fax> I played that game
00:54:18 * Sgeo has started playing Uru Live
00:54:27 <fax> is that the MMO version?
00:54:47 <fax> that struck me as kind of weird... the whole point of the game was the lack of anyone else imo
00:54:53 <fax> what's it liKE/
00:54:56 <fax> I mean does it work?
00:56:42 <Sgeo> Not really as multiplayer as I was hoping for. At least the initial ages are playable alone, but you can invite others with you
00:56:59 <Sgeo> I _think_, at least for the Prime Ages, that others can't actually interact with the environment
00:57:08 <Sgeo> There are social areas, the hoods
00:57:12 <Sgeo> And the City is rather social
00:57:22 <Sgeo> There are some Ages that require several people
00:57:25 <fax> interesting
00:57:28 <Sgeo> I think one Age requires 8
00:57:56 <fax> I like teh sound of that
00:59:28 <oklopol> i should stop talking for today
01:09:45 <Sgeo> I've bowled in Cybertown
01:14:30 <ais523> hmm, I've thought up a really interesting way to think of Haskelly IO
01:14:59 <ais523> basically, you return an infinitely big lookup table listing what outputs should go with all possible inputs, allowing for interspersings of them
01:15:13 <ais523> and because it's a lazy lang, only the parts of the lookup table that are actually used are calculated
01:15:26 <coppro> I've always thought of it as returning a series of IO instructions and associated functions to evaluate
01:15:33 <ais523> that's what your IO () "value" actually is
01:15:43 <ais523> and using monads just helps you generate it in a sane way
01:15:52 <pikhq> ais523: That is an entirely valid means of looking at it.
01:16:06 <ais523> yep, although probably not the most practically useful one
01:16:40 <coppro> essentially, I think of it returning an imperative program
01:17:08 <pikhq> Interpretations of it beyond something like "being a C function that evaluates to a value" are generally not all that useful. :P
01:17:48 <fax> what ais523 is (one of) the basis' for a formal treatment of IO
01:18:12 <ais523> fax: wait, I'm a basis for a formal treatment of IO?
01:19:21 <ais523> hmm, you could even make a formal treatment of unsafePerformIO that way
01:19:28 <ais523> unless you wanted to avoid going mad
01:19:32 -!- oerjan has joined.
01:19:36 <fax> http://www.haskell.org/haskellwiki/IO_Semantics
01:19:44 <pikhq> Oh dear God. A formal treatment of unsafePerformIO.
01:21:17 <ais523> ugh, oerjan joined just before you said that
01:21:25 <ais523> and is now presumably hoping he misread it
01:21:48 -!- augur has joined.
01:21:55 <oerjan> how do i misread an URL?
01:22:20 <pikhq> oerjan: "A formal treatment of unsafePerformIO."
01:23:04 <oerjan> (well, half a whoosh anyway)
01:24:41 <oerjan> well there's no unsafePerformIO in that link that I can see.
01:25:15 -!- cheater4 has joined.
01:26:39 -!- sebbu2 has joined.
01:26:44 <pikhq> oerjan: You missed context.
01:27:15 <pikhq> oerjan: "you could even make a formal treatment of unsafePerformIO that way"
01:27:22 <oerjan> well how can i misread properly without ignoring context? i'll look at it again when i get to that point in the logs.
01:28:10 -!- cheater3 has quit (Read error: No route to host).
01:28:39 <oerjan> i recall they've made a formal treatment of exceptions, which is nondeterministic.
01:28:52 <oerjan> (the kind you can only catch in IO)
01:31:19 <oerjan> <adu> fax: you obviously know nothing about Haskell, so stop making these kinds of assertions
01:31:29 <oerjan> you mean he knows just enough to be obnoxious
01:31:48 -!- fungot has quit (Ping timeout: 260 seconds).
01:31:48 -!- Gregor has quit (Ping timeout: 260 seconds).
01:31:49 -!- sebbu has quit (Ping timeout: 260 seconds).
01:33:30 -!- Gregor has joined.
01:34:51 <pikhq> fax: Congrats at being a troll, man.
01:35:00 <pikhq> fax: I'm going to replace you with a small monad. :P
01:35:29 <oerjan> a small monad that lives under a bridge and pesters goats
01:35:50 <pikhq> (the last sentence is stupid humor that only sounds intelligent because of the word monad)
01:36:06 * fax doesn't equate 'big words' with intelligence
01:36:21 <fax> I hate anti-intellectualism :(
01:39:37 -!- augur has quit (Ping timeout: 245 seconds).
01:44:54 * Sgeo is seriously going to cry
01:45:39 <fax> is it because I was nasty to you?? that was just a reflex
01:46:31 <oerjan> no, someone sent him a truck full of onions
01:46:58 <fax> that must be very sad
01:47:04 <Sgeo> What the flying fucking fuck is going on here? http://pastie.org/883967
01:48:18 <oerjan> well << is clearly brainfuck, but i don't understand the point of all those repeated std::cerr comments.
01:48:23 <fax> Sgeo I tried to compile it
01:48:33 <Sgeo> It's more of a small segment of code
01:48:38 <fax> yeah I realize that NOW
01:49:07 <fax> int location = 0;
01:49:07 <fax> int length = 4;
01:49:07 <fax> int items[] = {5,7,8,9,6,5,4,3};
01:49:08 <fax> does the trick
01:49:28 <fax> std::cerr << "items[" << i << "] = " << items[i + 1] << std::endl;
01:49:30 <fax> this line is interesting
01:49:42 <adu> oerjan: lol
01:49:53 <pikhq> Quite interesting.
01:49:53 <Sgeo> It's just reflecting exactly what's supposed to happen on the previous line
01:51:38 <Sgeo> fax, if you find the bug, do let me know
01:51:58 <fax> Sgeo: not sure what the bug IS
01:52:03 * oerjan admits that looks strange
01:52:10 <pikhq> "i + i" != "i + 1"
01:52:27 <Sgeo> ....Thank uoui
01:52:27 <fax> oh it's this:
01:52:28 <fax> items[3] = 5
01:52:28 <fax> items[3] == 7
01:52:39 <fax> you'd expect it to say items[3] == 5 ?
01:52:47 <pikhq> Sgeo: Now, get a better terminal font for Chrissake.
01:53:00 <fax> Sgeo??????
01:53:01 <Sgeo> Using Visual Studio
01:53:01 <fax> int items[] = {5,7,8,9,6,5,4,3};
01:53:05 <fax> I'm using an immutable array
01:53:09 <fax> so I shouldn't be allowed to modify it
01:53:18 <fax> why doesn't C++ tell me I'm doing something bad
01:53:18 <pikhq> fax: That's quite mutable.
01:53:27 <fax> I just assumed it would be like C :/
01:53:34 <pikhq> That's also mutable in C.
01:53:55 <fax> I have been using malloc all this time..
01:54:29 <pikhq> You are not declaring an int * with the address being the immutable constant {5,7,8,9,6,5,4,3}.
01:54:49 <pikhq> You are declaring a mutable array on the stack, initialised to {5,7,8,9,6,5,4,3}.
01:55:00 -!- Tritonio_GR has quit (Quit: Leaving.).
01:55:25 <pikhq> "const int items[] = ..." is immutable, though.
01:55:39 <fax> Sgeo this *is* weird!
01:55:57 <Sgeo> fax, pikhq solved it
01:56:03 <Sgeo> It's no longer a mystery
01:56:08 <fax> it is to me :D
01:56:13 -!- augur has joined.
01:56:50 <fax> I wanted to figure it out :(
01:57:26 <pikhq> BTW, you can tell the immutability of a variable with its type. const indicates immutability.
01:57:42 <Sgeo> Mixing const with & hurts my head
01:57:52 <Sgeo> I think I'll just huggle C#
01:57:59 <pikhq> It is... A little confusing with pointers, yes.
01:58:06 <pikhq> That's the syntax's fault.
01:58:22 <Sgeo> A lot of C++ problems are the syntax's fault
01:58:36 <Sgeo> Are there any that aren't?
01:58:45 <pikhq> A lot of C++ problems are starting with C's problems and adding more.
01:59:52 <adu> A lot of C++ problems are not really problems
02:00:11 <pikhq> adu: Garbage collection. The lack of this is a problem in C++.
02:02:02 <pikhq> You also think that leeches are a cure-all, and that feudalism is a great solution to the problem of how to govern people efficiently.
02:02:29 <Sgeo> Why not optional garbage collection?
02:02:49 <pikhq> Sgeo: Because C++'s semantics demand garbage collection.
02:03:04 <coppro> Standardization in that area is going slowly
02:03:21 <Sgeo> There's no way to avoid C++, is there?
02:03:29 <Sgeo> Is it safe to say most programs are written in C++?
02:03:31 <pikhq> Sure there is. Use C.
02:03:33 <coppro> lack of garbage collection is important for some aspects of C++, yes, I like that
02:03:39 <Gregor> By no means are most programs written in C++.
02:03:52 <Sgeo> What's the most commonly used language?
02:04:04 <Gregor> Frankly, I wouldn't be surprised if it's still C.
02:04:06 <coppro> The committee is properly allowing GC implementations in C++0x
02:04:17 <pikhq> Probably still C. If not, something like Java.
02:04:25 <coppro> C is top, Java and C++ are next, I forget what order
02:04:44 <pikhq> Sounds about right.
02:04:51 <adu> pikhq: what about shared_ptr<x>?
02:05:31 <adu> shared_ptr<> is the closest thing to GC in C++
02:05:58 <pikhq> adu: First: reference counting is obnoxious. Second: leaks memory quite well if you have a cyclic reference. Ever. Third: C++ templates are fail.
02:06:22 <Gregor> Fourth: Contrary to popular misconception, reference counting is almost always slower than a half-decent GC.
02:06:36 <adu> pikhq: the idea of templates, imho, is not fail
02:06:37 <Sgeo> Python uses reference counting, iirc :/
02:06:40 <pikhq> Ah, yes. Reference counting is quite slow.
02:06:50 <Sgeo> What does Ruby use?
02:06:52 <Gregor> Sgeo: Plus GC, because reference counting is useless :)
02:06:57 <Gregor> Sgeo: Presumably a proper GC.
02:07:00 <pikhq> adu: Note that I said C++ templates. The idea is just polymorphism.
02:07:22 <pikhq> And polymorphism is embraced in pretty much everything.
02:07:25 <Gregor> I've said it before and I'll say it again: Any language with a type system is far too low-level for me.
02:07:37 <Sgeo> ... that's a joke
02:07:43 <pikhq> Gregor: Dynamic types are still types you know.
02:08:04 <Gregor> pikhq: Depending on who you talk to, prototypes are not types :P
02:08:05 <Sgeo> Hm, C-- doesn't have much of a type system
02:08:19 <pikhq> Gregor: It's still types.
02:08:26 <Sgeo> Although I guess, what is it, things like word8 are still types?
02:08:32 <Sgeo> Or am I misremembering C--?
02:08:37 <pikhq> Sgeo: Yeah, those are still types. Technically.
02:09:50 * adu <3 polymorphism
02:10:04 <adu> actualy i hate polymorphism
02:10:10 <adu> i just like parameters
02:10:25 <pikhq> adu: You just haven't seen much good polymorphism. :P
02:10:36 <adu> and I don't think "parametric polymorphism" is actually polymorphism
02:10:38 <Sgeo> Is C#'s polymorphism considered good or bad?
02:10:57 <coppro> interface-based polymorphism :/
02:11:06 <pikhq> If parametric polymorphism is not actually polymorphism, then polymorphism cannot exist in a statically typed language.
02:11:21 <pikhq> Sgeo: Haskell does it pretty much right.
02:11:29 * adu <3 Haskell
02:11:47 <Sgeo> Haven't had much of an opportunity to play with Haskell.
02:12:19 <pikhq> It's the most high-level language you have likely seen yet.
02:12:32 <pikhq> (there exist higher-level, but they're not exactly... Common.)
02:12:55 <Sgeo> High level == passing around functions as though they were candy?
02:13:10 <pikhq> Among other things.
02:13:15 <pikhq> Also, yes. They are candy.
02:13:55 <Sgeo> I think segregation of IO and non-IO logic is rather interesting.
02:14:30 <pikhq> I think it's just natural.
02:14:39 <Sgeo> Is there anything Haskell is bad at? Would it be sinful for me to make a game that tracked the states of players in Haskell?
02:15:05 <pikhq> Haskell is terrible at real-time stuff.
02:15:29 <pikhq> Though it is wonderful for programmatic generation of real-time code.
02:16:22 <Sgeo> What about the lack of OO?
02:17:00 <adu> Sgeo: the problem is not that Haskell has no OO, the problem is that it has 3 kinds of OO
02:17:24 <pikhq> Though technically you can do it just fine in Haskell.
02:17:27 <adu> Sgeo: record-based OO, typeclass-based OO, and module-based OO
02:17:56 <adu> so the problem is that people can't figure out which one is most OO-like
02:17:58 <pikhq> Typeclasses are not OO at all. Records are not OO at all. Neither are modules.
02:18:26 <adu> pikhq: they are all OO minus some features
02:18:43 <fax> 01:14 < pikhq> Haskell is terrible at real-time stuff.
02:18:46 <pikhq> Typeclasses are more like Go's interfaces-thing. Records are... structs. Modules are *a freaking collection of definitions*.
02:18:58 <fax> that might be true but people are basing hard realtime languages (loosely) on haskell
02:19:14 <adu> btw, Haskell doesn't call them "records" it calls them "algebraic datatypes"
02:19:16 <pikhq> fax: They are using Haskell for programmatic generation of hard realtime code.
02:19:37 <fax> adu: haskell does have records
02:19:48 <fax> just really shit ones...
02:20:01 <pikhq> fax: You can write a Haskell program that outputs hard realtime C using some library that I don't recall.
02:20:06 <pikhq> adu: Learn Haskell por favor.
02:20:14 * fax wonders how the heck they got such an advanced type system but didn't bother with modules or rows....
02:20:26 <adu> pikhq: I've been programming in Haskell for 10 years
02:20:34 <Sgeo> I'm not sure how Haskell records apply when using types that are functions with >0 arguments
02:20:40 <pikhq> adu: Fine, fine. Learn about OO programming. :P
02:20:54 <adu> i've been programming in Python for 15 years
02:21:01 <pikhq> It's about as object-oriented as C. (in that you can hack it together with structs/ADTs, if you feel like it.)
02:21:36 <Sgeo> So, no one's going to spontaneuously explain it to me?
02:22:08 <pikhq> Sgeo: I'm not sure what you're saying.
02:22:23 <adu> Sgeo: spontaneuously explain what?
02:22:43 <Sgeo> data SomeType = SomeType { someconstructor :: a -> [a]}
02:22:57 <Sgeo> erm, maybe constructor is the wrong word
02:23:07 <adu> oh, yes, well in Haskell functions are values/objects just like anything else
02:23:22 <Sgeo> How and why would I use something like that?
02:23:38 <adu> for example, database drivers
02:24:14 <adu> you might have a Database type that has query, open, and close methods
02:24:54 <adu> you can encode those methods in separate modules, like System.DB.MySQL or System.DB.Postgres, (which is silly) or you can encode them as members of the Database type
02:24:56 <adu> like you did
02:27:58 <adu> data Database = DB { connectionData :: DBData, query :: Database -> String -> IO String}
02:28:04 <adu> or something like that
02:29:14 <Sgeo> And then instances [sorry for the use of that term] of DB represent different drivers?
02:29:22 <Sgeo> One for MySQL, etc?
02:29:51 <adu> yes, "query" could have different implementations for each instance
02:30:37 <oerjan> What the heck is going on at the esoforum... is that spam or just someone misguided about what the forum is about?
02:30:41 <Sgeo> query MySQL theDB somestring
02:30:44 <adu> the other way, System.DB.MySQL.query and System.DB.Postgres.query are both fixed implementations, and you could have to pick one and not change it
02:30:47 <Sgeo> Seems pretty cumbersome :/
02:31:52 <oerjan> oh it _is_ spam, at least the last one
02:32:41 <Sgeo> Which one's spam?
02:32:46 <adu> Sgeo: no, if (theDB :: Database), then you would call it as (query theDB string)
02:32:46 <oerjan> http://esoteric.voxelperfect.net/forum/kareha.pl/1269355073/l50
02:32:55 <oerjan> i haven't checked all of them
02:33:15 <adu> or ((query theDB theDB string) actually, now that i think about it
02:33:19 <oerjan> but there were a whole bunch of messages today that are clearly programming related but not on topic
02:34:29 * Sgeo needs to figure out how to teach himself to segregate IO in code he writes
02:35:05 -!- Oranjer has left (?).
02:35:17 <adu> segregate?
02:35:54 <Sgeo> IO code in one area, non-IO code called by the IO code
02:36:05 <Sgeo> [At least, that's my understanding]
02:36:18 <oerjan> Sgeo: after checking, _everything_ from today is spam
02:36:31 <fax> 2 Name: Ørjan : 2009-12-24 07:18 ID:l+2d4UoE [Del] For any fractran program, let p be any prime not used in the program. If your starting value is divisible by p, then the program has no way of removing it. So it cannot be done, alas.
02:36:39 <fax> how does oerjan just know all this stuff/!?!?!?
02:36:50 <fax> it's so frustrating, I want to know these things
02:37:18 <fax> hm actually that's quite obvious but I probably wouldn't have thought of it
02:37:23 <oerjan> fax: i have a phd (well, technically dsc) in mathematics
02:37:24 <fax> s/obvious/easy to verify/
02:37:37 <fax> oerjan: did you do ;D fractran?
02:37:51 <oerjan> i did do number theory
02:38:01 <oerjan> also, look at Bag. i never implemented it, alas.
02:38:05 <fax> oerjan oerjan
02:38:13 <fax> what's your favorite number :D
02:38:47 <fax> "the esoteric language mailing list" o_O
02:39:09 <fax> oerjan I might write a program that turns propositions into diophantines
02:39:12 <oerjan> fax: it's been essentially dead for years
02:39:26 <fax> like it reduces proving X into proving some diophantine D(...) = 0
02:39:40 <fax> you can basically encode all of mathematics into it...
02:39:55 <fax> and I suppose if we translate true theorems through this we can prove lots of things are zero too
02:40:27 <oerjan> fax: Hilbert's 10th problem
02:40:41 <fax> do you think it's a fun idea
02:41:08 <fax> oerjan im still proud of my J fractran interpreter
02:41:19 <fax> I don't realyl deserve to be, the only reason it's so nice is because J rules
02:41:36 <oerjan> well it's solved, i don't know much about the details except that it requires proving you can encode a fast-growing function (like exponential) as a crucial step
02:41:52 <fax> oerjan: this is the chapter I am on :D
02:41:58 <fax> I have a book about this
02:42:50 <fax> (*{~1 i.~[@(=<.)@:*)
02:43:28 <fax> the critics said: # (cur) (prev) 15:27, 12 October 2009 Sligocki (talk | contribs) (9,526 bytes) (That algorithm is neither clear nor helpful and clearly does not store the whole program.) (undo)
02:44:01 <oerjan> fax: about hilbert's 10th problem?
02:44:12 <fax> about the J intepreter for fractran
02:44:18 <fax> esolang kept it though! http://esolangs.org/wiki/Fractran
02:44:36 <oerjan> hm i think i noticed you mentioned before
02:44:41 -!- Geekthras has joined.
02:44:42 <oerjan> fax: we're an inclusive bunch
02:44:54 <fax> I'm not very keen on wikipedia, but wikis are great
02:45:00 <Sgeo> What did oerjan prove about Fractran?
02:45:01 <oerjan> somehow i doubt anyone is actually cleaning up spam in the forum
02:45:37 <oerjan> http://esoteric.voxelperfect.net/forum/kareha.pl/1261626260/l50
02:45:44 * pikhq seems to recall seeing Geekthras somewhere
02:46:37 <Sgeo> Apparently, Geekthras is covered in bees.
02:46:48 <pikhq> `echo "Geekthras is covered in bees."
02:47:02 <pikhq> Hackego apparently disagrees.
02:47:15 * fax should learn J again (I forgot it)
02:47:17 <pikhq> Gregor: Where'd the Egoest of the Bots go?
02:47:37 <Geekthras> fax: funny you should mention that, I just started to pick it up again
02:49:30 <Sgeo> Should I assume that Fractran isn't TC?
02:49:38 <fax> Sgeo uh no
02:49:42 <fax> why would you ?
02:49:52 <fax> I mean in general why would you assume anything isn't TC?
02:49:52 <pikhq> Guess I shall have to kill myself, topple the king of that infernal place, and come back. I shall then open one of my 6 mouths and sing the song that ends the earth.
02:49:54 <Sgeo> oerjan said something about something it couldn't do
02:50:02 <pikhq> (thx Penny Arcade)
02:50:14 <oerjan> i've been telling you, someone's been killing off our bots
02:50:15 <Sgeo> http://esolangs.org/wiki/Fractran
02:50:19 <fax> oh sorry I misunderstood that Sgeo
02:50:26 <fax> I thought you were saying something a bit different
02:50:28 <pikhq> myndzi's still around.
02:50:31 <oerjan> they seem to have completed their evil deed
02:50:46 <fax> so thats how it works
02:51:10 <fax> * _\____o* SPLAT
02:51:24 <pikhq> The power of a-guy-running-a-bot-on-his-IRC-client.
02:51:29 <fax> Geekthras I wrote that ;D
02:51:33 <Sgeo> What happened to the \m/ thing?
02:51:37 <fax> (long enough ago that I haev no clue ....)
02:51:40 <fax> how does it work
02:51:45 <pikhq> Sgeo: Did it wrong.
02:52:13 <oerjan> Sgeo: there are limitations to what a fractran program can have as initial/final result if you don't do your encoding properly. that has no bearing to whether it is TC since you can always encode a problem in a different way
02:52:18 -!- fax has quit (Quit: shame).
02:52:37 <pikhq> ALSO: a,b,c;main(z,i)char**i;{h:a=!a,b=!b;g:(b-1)[1[i]]>b[i[1]]?a^=a,c=(b-1)[1[i]],1[i][b-1]=i[1][b],b[i[1]]=c,b=&b[(void*)1]:(b=&b[(void*)1]),!b[i[1]]?:({goto g;}),a?:({goto h;}),b=!b;j:putchar(b[1[i]])[(void*)(b=&b[(void*)1])],1[i][b]?({goto j;}):putchar('\n');}
02:52:58 <Geekthras> yeah I can't decipher that J program
02:53:07 <Geekthras> don't remember what enough of the verbs are
02:53:18 <Sgeo> Any comments on Fractran++?
02:53:37 <pikhq> Sgeo: Insufficiently object-oriented, I bet.
02:53:44 <coppro> Gregor: which J problem?
02:53:54 <oerjan> Geekthras: there are probably lots of non-J interpreters of fractran around, it's a pretty old concept.
02:54:20 <Gregor> I said something about ... a J program?
02:54:42 <pikhq> Geekthras: Congrats on throwing off tab-completion.
02:54:50 <pikhq> Sgeo's not used to more than one G- here. :P
02:55:08 <coppro> not sure how you completed s from c
02:55:21 <oerjan> Sgeo: the thing i proved in that post is essentially like how you cannot get a turing machine to handle a tape not in its alphabet
02:55:51 <coppro> (also, that was a thinko, not a typo. I use a client with sane (bash-style) completion)
02:58:07 <pikhq> coppro: That's a thinko.
02:58:17 <pikhq> My tab-completes don't do commas.
02:58:32 <pikhq> (so I type the full name.)
02:58:52 <pikhq> I only tab-complete if I want "foo: ".
02:59:18 <pikhq> coppro: For instance, I tab-completed for "coppro: ", but not the following coppro.
02:59:42 * Sgeo should probably actually test pikhq's fix
03:01:42 <Sgeo> Hallefrickenluhha
03:02:12 <Sgeo> I _think_ my program works
03:02:34 <Sgeo> I don't think I've EVER written an actual unit test for real use
03:02:52 <Sgeo> I wrote tests for individual parts of PSOX, but that's pretty much it
03:03:03 <Sgeo> All my testing, all my life, has been manual
03:03:54 * Sgeo needs to fix this somehow
03:12:35 <Geekthras> I thought that if you defined a monad p, then p 1 2 3 would give you p 1, p 2, p 3...
03:13:07 <oerjan> please rephrase that so it makes sense :D
03:13:30 <oerjan> um what does J have to do with monads?
03:13:42 <Geekthras> they are one of its two verb types?
03:13:43 <Sgeo> Why is J considered so cool?
03:13:44 <pikhq> oerjan: "monadic function", I think?
03:14:09 <Sgeo> I mean, essentially, it means you can define a verb and it will act "the right way" when given lists instead of a normal argument, right?
03:14:15 <Sgeo> And that's pretty much it?
03:14:47 <Sgeo> Geekthras, do not turn to me for help understanding J
03:15:03 <pikhq> Geekthras: We're used to data Monad a where return :: (Monad m) => a -> m a;(>>=) :: (Monad m) => m a -> (a -> m b) -> m b
03:15:22 <pikhq> Erm. That's not quite the definition. XD
03:15:23 * Sgeo looks at the vocab
03:15:31 <Sgeo> Oh yeah, Boxes. Used for both display and logic!
03:15:50 <Geekthras> I thought hte fact that I was talking about J just now would make my query make more sense
03:16:24 <pikhq> class Monad m where return :: a -> m a;(>>=) :: m a -> (a -> m b) -> m b -- That's the one.
03:17:09 <oerjan> Geekthras: it would if i knew J had anything it called monads
03:18:13 <coppro> Haskell's pretty big in this channel
03:21:57 -!- HackEgo has joined.
03:21:58 -!- EgoBot has joined.
03:22:32 <Sgeo> Would it be possible to write a game in J?
03:22:49 <Sgeo> If Perl is line noise, what's J?
03:23:15 <pikhq> Line noise with different entropy characteristics.
03:31:58 <Sgeo> What can J do easily that Haskell doesn't do so easily?
03:47:24 -!- oerjan has quit (Quit: leaving).
03:50:23 -!- EgoBot has quit (Ping timeout: 260 seconds).
03:50:23 -!- HackEgo has quit (Ping timeout: 260 seconds).
03:51:48 <coppro> you know what's funny?
03:52:07 <coppro> I was just wondering today what use uncurry was, and I just found one
03:52:25 <Sgeo> According to J, 0 ^ 0 = 1
03:53:18 <pikhq> uncurry and curry are useful for Arrows.
03:54:57 <Geekthras> heh, some project euler problems are kind of dumb in J
03:55:16 <Geekthras> millionth lexigraphical permutation of the digits 1-9
03:55:54 * Sgeo wonders if there are any web frameworks for Haskell
03:56:06 * Sgeo also wonders if there are web frameworks for J
03:56:28 <Geekthras> someone's done an irc evalbot for J
03:56:47 <Sgeo> Is it written IN J?
03:56:57 <coppro> pikhq: I don't get arrows yet, but I think I see why
03:57:18 <Sgeo> "By using HAppS's state management, you are committing yourself to keeping your entire state in memory at all times, rather than disk -- YOUR STATE MUST ALWAYS FIT IN MEMORY"
03:59:14 <Geekthras> I realized that by web framework you didn't mean the dumb thing I was thinking
03:59:17 -!- Asztal has quit (Ping timeout: 265 seconds).
04:00:27 -!- augur has quit (Ping timeout: 245 seconds).
04:01:23 -!- coppro has quit (Quit: I am leaving. You are about to explode.).
04:06:28 -!- augur has joined.
04:07:42 <Sgeo> Whee, I'm not focusing on my homework!
04:10:00 <pikhq> alise: When you're back. EhirdOS should totally use U+2028 LINE SEPERATOR as the newline, and U+2029 PARAGRAPH SEPERATOR for seperating paragraphs.
04:15:38 -!- augur has quit (Read error: Connection reset by peer).
04:16:01 -!- augur has joined.
04:19:17 <Sgeo> pikhq, has alise been reading logs?
04:25:11 <pikhq> Yes, he log-reads.
04:25:30 <pikhq> Every time he returns he spews out a massive chunk of replies for an hour.
04:28:31 * Sgeo should become a log reader
04:28:51 <Sgeo> Although now that I don't turn my computer off, it would be somewhat tricky to figure out where to start reading form
04:29:42 * Sgeo thinks about how this assignment would be done in Haskell
04:48:19 * Sgeo reluctantly opens Firefox
04:49:30 <Sgeo> Sorted List implementations using Abstract Data Types. The driver remains the same. One implementation uses an array, the other a linked list
04:51:11 <Sgeo> Due to the mutating stuff, it would probably be written in the ST monad
05:00:33 -!- augur_ has joined.
05:02:34 -!- augur has quit (Ping timeout: 248 seconds).
05:41:31 <Sgeo> Or, presumably, in Haskell-style, "mutators" would return a new list
05:43:02 <Quadrescence> Sgeo: You sound like you have no idea what you're talking about.
05:43:19 <Sgeo> Quadrescence, hm?
05:43:46 <pikhq> There is no state. There is only lambda.
05:44:41 <pikhq> Church looked out, and saw the great void. And he said let there be lambda. And there was lambda. And it was good.
06:05:40 -!- oerjan has joined.
06:18:47 -!- augur_ has quit (Ping timeout: 245 seconds).
06:19:49 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
06:42:01 -!- augur has joined.
06:52:38 -!- oerjan has quit (Quit: leaving).
07:20:04 <Ilari> augur: Got any new esolang ideas recently? :->
07:26:07 <augur> but it was accompanied by a challenge that i wanted to put to the channel
07:26:20 <augur> so im not going to tell you about the esolang itself.
07:32:37 <augur> Ilari: im contemplating basically designing a little programming language, and then somehow providing a visualization of this, either in raw code form, a stack trace, or god knows what, and seeing who can then deduce the nature of the language from just the visualization
07:34:20 -!- nooga_ has quit (Quit: Lost terminal).
07:44:34 -!- calamari has joined.
07:58:02 -!- tombom has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:26:30 -!- calamari has quit (Quit: Leaving).
08:34:41 -!- adu has quit (Quit: adu).
08:50:20 -!- tombom has quit (Quit: Leaving).
08:53:40 -!- oerjan has joined.
08:58:01 -!- kar8nga has joined.
08:59:20 -!- oerjan has quit (Quit: leaving).
10:34:12 -!- lereah_ has joined.
11:28:21 -!- Tritonio_GR has joined.
12:00:40 -!- kar8nga has quit (Read error: Connection reset by peer).
15:07:54 -!- Tritonio_GR has quit (Ping timeout: 248 seconds).
15:08:04 -!- Tritonio_GR has joined.
15:09:18 -!- Tritonio_GR has quit (Read error: Connection reset by peer).
15:10:34 -!- oerjan has joined.
15:12:01 -!- Tritonio_GR has joined.
15:33:44 -!- Tritonio_GR1 has joined.
15:37:14 -!- Tritonio_GR has quit (Ping timeout: 248 seconds).
15:55:39 -!- cheater3 has joined.
15:55:49 -!- cheater4 has quit (Read error: Connection reset by peer).
16:25:45 -!- cheater3 has quit (Ping timeout: 252 seconds).
16:26:40 -!- Tritonio_GR1 has quit (Read error: Connection reset by peer).
16:30:18 -!- Asztal has joined.
16:44:18 -!- charlls has joined.
16:47:01 -!- FireFly has joined.
17:08:16 -!- cheater2 has joined.
17:11:59 -!- MizardX has joined.
17:17:04 -!- oerjan has quit (Quit: leaving).
17:18:42 -!- Deewiant has quit (Remote host closed the connection).
17:27:44 -!- BeholdMyGlory has joined.
17:34:41 -!- lereah_ has quit (Remote host closed the connection).
17:49:54 -!- MizardX- has joined.
17:52:12 -!- MizardX has quit (Ping timeout: 276 seconds).
17:52:23 -!- MizardX- has changed nick to MizardX.
17:52:34 -!- augur has quit (Ping timeout: 240 seconds).
17:55:29 -!- Deewiant has joined.
18:18:56 -!- tombom has joined.
18:23:52 -!- augur has joined.
18:31:57 -!- uorygl has quit (Read error: Connection reset by peer).
18:32:17 -!- uorygl has joined.
18:33:34 -!- augur has quit (Ping timeout: 240 seconds).
18:35:16 -!- augur has joined.
18:38:20 -!- charlesq__ has joined.
18:38:28 -!- charlesq__ has quit (Read error: Connection reset by peer).
18:39:12 -!- charlls has quit (Read error: Connection reset by peer).
18:48:39 -!- ais523 has quit (Remote host closed the connection).
19:00:09 -!- kar8nga has joined.
19:13:28 -!- augur has quit (Read error: Connection reset by peer).
19:13:56 -!- augur has joined.
19:21:07 -!- oerjan has joined.
19:21:43 -!- oerjan has quit (Client Quit).
19:53:45 -!- hiato has joined.
19:54:46 -!- sebbu has joined.
19:55:57 -!- sebbu2 has quit (Ping timeout: 276 seconds).
20:07:31 -!- jcp has joined.
20:21:05 <hiato> out of interest, who wrote http://esoteric.voxelperfect.net/wiki/Computational_class ?
20:23:07 <AnMaster> Deewiant, found any bugs in cfunge or efunge yet?
20:24:59 <Deewiant> Haven't done anything that'd have any chance of finding them since the bounds stuff
20:30:40 <oklopol> complexity theory is closer to computability theory than algorithm analysis
20:31:37 <oklopol> or maybe a true computabilitist considers everything that cares about the amount of steps in computation the same sort of performance bullshit
20:31:55 <Geekthras> 19:56 * Sgeo also wonders if there are web frameworks for J <-- I just found out that yes, yes there are
20:32:09 <Geekthras> the cs department at trinity used it for their site
20:38:49 -!- pikhq has quit (Read error: Connection reset by peer).
20:48:38 -!- kar8nga has quit (Remote host closed the connection).
20:52:40 -!- Oranjer has joined.
20:55:20 -!- mibygl has joined.
20:55:30 -!- pikhq has joined.
21:02:56 -!- augur has quit (Ping timeout: 252 seconds).
21:10:49 -!- hiato has quit (Quit: underflow).
21:11:47 <Sgeo> Maybe surfing the web via browser at a remote computer isn't the best idea
21:12:26 <Sgeo> But on the other hand, when I have to leave, I don't just lose all the pages I'm on
21:28:28 -!- clog has joined.
21:28:28 -!- clog has joined.
21:36:44 -!- Tritonio_GR has joined.
21:43:19 -!- augur has joined.
21:46:24 <Sgeo> Is there any reason to not think of Erlang as a sort of functional scripting language?
21:46:28 -!- Tritonio_GR has quit (Read error: Connection reset by peer).
21:49:44 -!- Tritonio_GR has joined.
21:51:24 <Oranjer> define 'functional scripting language"
21:51:35 <Deewiant> Sgeo: It's not at all intended for typical "scripting" purposes?
21:53:07 -!- Tritonio_GR has quit (Read error: Connection reset by peer).
21:54:52 <lament> pikhq: i can't, i don't know what define means
21:55:41 -!- Tritonio_GR has joined.
21:57:32 <AnMaster> Sgeo, well for a start erlang makes a poor scripting language. Erlang is much better suited to long running programs
21:58:17 <AnMaster> for example the runtime takes almost a second to exit, and about 1/3 of a second or so to start up
21:58:52 <AnMaster> (this hasn't been considered a problem since long running applications is what it really is intended for)
21:59:04 <AnMaster> thus no one bothered to fix it
22:00:37 <AnMaster> and well there are lots of process supervision stuff built in. Oh and hot code reloading. Oh and support for distributed nodes and what not. Not features of your typical "scripting" language.
22:01:29 <Sgeo> I think I made an assumption because it seemed functional, without static types
22:02:06 <AnMaster> why would dynamic typing imply scripting language?
22:02:36 <pikhq> What the hell is a scripting language, anyways?
22:03:13 <AnMaster> pikhq, maybe one where you don't compile the code at all? Not even to bytecode. Well the interpreter could possibly do it, but the developer doesn't have to do so manually
22:03:26 <AnMaster> that would place stuff like python and perl into that category
22:03:40 -!- mibygl has quit (Ping timeout: 252 seconds).
22:03:56 <Oranjer> but python is compiled into .exe's, huh...
22:04:29 <Tritonio_GR> i think it's more like the python lib combined with some bytecode
22:04:37 <Sgeo> I'd imagine that py2exe or whatever includes the interpreter + the code
22:04:44 <Sgeo> Otherwise, eval() wouldn't work
22:04:46 <pikhq> AnMaster: Python is compiled into bytecode as a rule.
22:05:15 <AnMaster> pikhq, yes but see what I said
22:05:22 <AnMaster> pikhq, which was "but the developer doesn't have to do so manually"
22:05:27 <pikhq> The bytecode is stored on disk and executed...
22:05:40 <AnMaster> pikhq, sure, but python compiles it automatically for you
22:05:47 <Sgeo> Not the bytecode for the top-level module
22:05:54 <AnMaster> and afterwards you might end up with foo.pyc or whatever
22:06:02 <pikhq> Okay then. By that notion, C can be a scripting language.
22:06:07 <AnMaster> Sgeo, ah that explains why it didn't do it consistently for me
22:06:18 <AnMaster> pikhq, not at all, because there you need to manually invoke gcc or whatever first
22:06:23 <AnMaster> before you can run your program
22:06:31 <pikhq> There exist C interpreters.
22:06:41 <pikhq> The Tiny C Compiler, for instance.
22:07:03 <AnMaster> anyway this is really implementation rather than language specific
22:07:13 <AnMaster> you could make a python version where you had to compile the files first
22:07:30 <pikhq> Defining "scripting language" in terms of implementation details suggests that "scripting language" is a freaking meaningless term.
22:07:49 <pikhq> Which of course it is.
22:08:13 <AnMaster> what about "language primarily embedded into another program, used to control it"
22:08:26 <AnMaster> that would make javascript for example a scripting language
22:08:34 <pikhq> Though, if I were to define it, I would define it as "a language primarily for the automation of the execution of other programs, or a language embedded into a program to control it."
22:08:44 <AnMaster> though I have used embedded python
22:08:56 <pikhq> Which would leave shell script and embedded languages being called scripting languages.
22:09:05 <Sgeo> Wasn't there some browser that was supposed to run "Python applets" or some such
22:09:11 <Sgeo> Almost typoed and said "apples"
22:09:28 <AnMaster> I have used python in that way as I said
22:09:31 <pikhq> AnMaster: Except when embedded into a language.
22:09:49 <AnMaster> pikhq, actually embedded into an mmorpg server in that case
22:09:55 <AnMaster> "<pikhq> AnMaster: Except when embedded into a language." was a typo I assume?
22:10:34 <AnMaster> I wonder where this would place nasal
22:10:45 * AnMaster wonders if anyone here even heard of that
22:11:46 <Sgeo> Maybe I'll be able to focus on homework once I get home
22:11:52 <AnMaster> well nasal is probably a scripting language. But perhaps we should say insufficient data instead. Considering I ever heard of ONE project using it
22:12:35 <AnMaster> and the implementation is rather fast, it has to be when you are doing "real time" scripting
22:12:59 <AnMaster> http://www.plausible.org/nasal/
22:13:08 <AnMaster> used for flightgear. Never seen it used elsewhere
22:13:35 <AnMaster> kind of multi-paradigm. Supports prototype style objects iirc
22:13:49 <Sgeo> flightgear, as in a project, or as in real airplane control software/
22:14:02 <AnMaster> Sgeo, flightgear is an open source flightsim
22:14:39 <AnMaster> Sgeo, notice "flight sim". That means if you just want to fly around and shoot it isn't for you. I don't think guns are implemented at all really.
22:14:49 <AnMaster> it is wonderful for actual flightsim though :P
22:15:08 * Sgeo 's played with MS Flight Simulator before
22:15:50 <AnMaster> btw: http://www.flightgear.org/
22:16:19 <AnMaster> I think the graphics improved recently. So much my computer is having problems with it
22:18:49 <Sgeo> Except for foreach/forindex, seems like an elegant language so far
22:18:56 <Sgeo> Not done reading the tutorial source, though
22:19:38 <AnMaster> Sgeo, the docs aren't really all that good. I mostly learnt it from working on old code in flightgear.
22:20:26 <AnMaster> Sgeo, what is wrong with foreach/forindex btw?
22:20:54 <Sgeo> Why not use a function that, say, returns the indexes of a vector, instead of a separate syntactical forindex/
22:21:14 <AnMaster> Sgeo, don't know. Never saw it as a problem though
22:21:41 * Sgeo has a Data Structures exam (in C++) in 40min
22:22:20 <Sgeo> Yes, ANGEL, I know I'm using an unsupported browser! You don't have to tell me twice!
22:22:21 -!- Tritonio_GR has quit (Read error: Connection reset by peer).
22:23:21 <AnMaster> Sgeo, also what level is that course at? University?
22:23:52 <Sgeo> Other classmate, upon seeing something: "Wait, how does that make sense" Me: "It's C++. C++ sometimes doesn't make sense" [note: that's the general gist of conversation sometimes. No literal quotes are implied
22:24:11 <Sgeo> It's a 3xx level course at perhaps not the best college
22:24:19 <Sgeo> It's not a community college though
22:24:33 <AnMaster> what on earth is a "community college"?
22:25:00 <AnMaster> and I thought a college was a sub-unit of a university?
22:25:18 <pikhq> AnMaster: US terminology confuses many outside of the US.
22:26:03 <AnMaster> anyway any school system in another country is bound to confuse
22:26:11 <AnMaster> because they are basically different in every country
22:26:21 <pikhq> A community college is a community-funded institute of higher education that offers two-year degrees, as well as individual classes for a lower cost than at most 4-year schools.
22:27:47 <AnMaster> err make that federal or something
22:28:10 <AnMaster> I think all but three universities in Sweden are state owned btw.
22:28:46 <pikhq> No, it's funded out of city taxes.
22:29:05 <pikhq> And cost not-much.
22:29:30 <pikhq> Yeah. Note the "2-year degrees" bit.
22:29:38 <AnMaster> next you are going to say students have to pay to study at universities normally
22:30:05 <pikhq> $20,000 yearly bills are not uncommon.
22:30:28 <Sgeo> Um, I think my dad generally pays around $2000/$3000 a semester
22:31:17 <Sgeo> semester ~= half a year. September-December, January-summer
22:31:38 <AnMaster> well, usually about very long holidays
22:32:12 <Sgeo> Semesters are the time between semesters
22:32:55 <Sgeo> [Note: Apparently the above is not true. Semesters are divided by xmas break and a bit]
22:33:08 <Sgeo> [So don't take my joke too too seriously]
22:36:03 -!- kar8nga has joined.
23:12:39 -!- tombom_ has joined.
23:13:54 -!- tombom__ has joined.
23:16:30 -!- tombom has quit (Ping timeout: 268 seconds).
23:16:32 -!- kar8nga has quit (Remote host closed the connection).
23:16:53 -!- kar8nga has joined.
23:17:09 -!- tombom_ has quit (Ping timeout: 252 seconds).
23:29:12 -!- tombom__ has quit (Quit: Leaving).
23:48:14 -!- BeholdMyGlory has quit (Remote host closed the connection).