00:00:16 -!- puzzlet_ has quit (Read error: 60 (Operation timed out)).
00:03:18 -!- puzzlet has joined.
00:17:27 -!- puzzlet_ has joined.
00:17:54 -!- Corun has quit ("This computer has gone to sleep").
00:24:49 -!- Corun has joined.
00:28:31 -!- oerjan has quit ("Good night").
00:29:21 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
00:31:23 -!- jix has quit ("...").
00:52:08 -!- moozilla has joined.
01:04:16 -!- moozilla has quit (Read error: 131 (Connection reset by peer)).
01:06:36 -!- mib_vg1sr6 has quit ("http://www.mibbit.com ajax IRC Client").
01:52:27 -!- ais523 has quit.
02:04:05 -!- moozilla has joined.
02:06:31 -!- moozilla has quit (Read error: 104 (Connection reset by peer)).
02:06:55 -!- CakeProphet has joined.
02:59:37 -!- Corun has quit ("This computer has gone to sleep").
03:00:11 -!- Corun has joined.
03:01:07 -!- Sgeo has joined.
03:03:22 -!- moozilla has joined.
03:21:06 -!- moozilla has quit (Read error: 104 (Connection reset by peer)).
03:24:32 -!- Corun has quit (Remote closed the connection).
03:24:59 -!- Corun has joined.
03:31:45 -!- Corun has quit (Remote closed the connection).
03:34:06 -!- Corun has joined.
04:23:51 -!- moozilla has joined.
04:26:11 -!- moozilla has quit (Read error: 104 (Connection reset by peer)).
05:18:42 -!- Asztal has quit (Read error: 110 (Connection timed out)).
05:26:57 -!- moozilla has joined.
05:27:28 -!- Corun has quit (Read error: 104 (Connection reset by peer)).
05:35:34 -!- moozilla_ has joined.
05:35:36 -!- moozilla has quit (Nick collision from services.).
05:46:10 -!- moozilla_ has quit (Read error: 145 (Connection timed out)).
06:03:33 -!- Corun has joined.
06:17:23 -!- moozilla has joined.
06:20:00 -!- moozilla has quit (Read error: 104 (Connection reset by peer)).
07:05:25 -!- seveninchbread has joined.
07:05:57 -!- CakeProphet has quit (Nick collision from services.).
07:06:15 -!- seveninchbread has changed nick to CakeProphet.
07:13:24 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
07:14:15 -!- seveninchbread has joined.
07:14:54 -!- CakeProphet has quit (Nick collision from services.).
07:15:04 -!- seveninchbread has changed nick to CakeProphet.
07:36:23 -!- Corun has quit ("This computer has gone to sleep").
07:36:51 -!- Corun has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:29:23 -!- SpaceMan has joined.
08:29:32 -!- SpaceMan has quit (Client Quit).
08:29:52 -!- Mony has joined.
08:30:30 -!- SpaceMan has joined.
08:30:50 -!- SpaceMan has quit (Client Quit).
08:31:56 -!- SpaceManPlusPlus has joined.
08:35:43 -!- SpaceManPlusPlus has quit (Client Quit).
08:52:36 -!- SpaceManPlusPlus has joined.
08:53:29 -!- SpaceManPlusPlus has quit (Client Quit).
10:15:34 -!- Corun has quit ("This computer has gone to sleep").
10:48:39 -!- Corun has joined.
12:04:41 -!- Judofyr has joined.
12:05:49 -!- LinuS has joined.
12:05:53 -!- Linus` has joined.
12:05:59 -!- Linus` has quit (Remote closed the connection).
12:31:48 -!- Judofyr has quit.
12:33:12 -!- oklopol has quit ("( www.nnscript.com :: NoNameScript 4.2 :: www.regroup-esports.com )").
15:30:34 -!- Asztal has joined.
15:48:28 -!- mib_c2zegu has joined.
15:58:56 -!- oklopol has joined.
16:01:22 -!- oklopol has set topic: THIS IS THE LINK TO THE LOGS >>> http://tunes.org/~nef/logs/esoteric/ <<< IT'S FUCKING ANNOYING HAVING TO GOOGLE IT ALL THE TIME, IF SOMEONE REMOVES IT AGAIN, I WILL put it back.
16:07:41 -!- mib_c2zegu has set topic: I love your mom.
16:12:22 -!- oklopol has set topic: THIS IS THE LINK TO THE LOGS >>> http://tunes.org/~nef/logs/esoteric/ <<< IT'S FUCKING ANNOYING HAVING TO GOOGLE IT ALL THE TIME, IF SOMEONE REMOVES IT AGAIN, I WILL put it back.
16:13:19 <Mony> did you see my esolang ?
16:13:30 <Mony> it's my very first esolang so ...
16:14:06 <oklopol> relink it if you want a comment, i don't remember much, since it wasn't fundamentally different from the mass
16:14:40 <Mony> here it is http://mony.servhome.org/esolang/h0rR0r.html
16:16:34 <oklopol> and a goto was added right?
16:16:57 <Mony> but i don't remember how they work -_-
16:17:36 <Mony> in fact, i made this esolangs some weeks ago
16:17:45 <oklopol> well, comment on that subset, it doesn't really have any computational powah
16:18:09 -!- puzzlet_ has quit (Remote closed the connection).
16:18:17 -!- puzzlet has joined.
16:23:13 <mib_c2zegu> http://www.codinghorror.com/blog/archives/001201.html Whine whine whine bitch bitch bitch. I wish Jeff Atwood would just go die or something.
16:30:49 <oklopol> i didn't find that all that annoying
17:12:53 -!- Corun has quit ("This computer has gone to sleep").
18:02:20 -!- ais523 has joined.
18:02:58 -!- oerjan has joined.
18:03:18 <oerjan> what a horrible threat
18:03:38 <ais523> well done oklopol for setting that
18:03:49 -!- mib_c2zegu has set topic: BLOOD AND FIRE.
18:04:35 * oerjan hits mib_c2zegu with the saucepan ====\___/
18:05:00 -!- ais523 has set topic: THIS IS THE LINK TO THE LOGS >>> http://tunes.org/~nef/logs/esoteric/ <<< IT'S FUCKING ANNOYING HAVING TO GOOGLE IT ALL THE TIME, IF SOMEONE REMOVES IT AGAIN, oklopol WILL put it back.
18:05:26 -!- mib_c2zegu has set topic: oklopol SHALL change this topic.
18:05:40 -!- mib_c2zegu has set topic: oklopol SHALL change this topic. everyone else SHALL NOT.
18:06:39 * Mony hits plop with the saucepan ====\___/
18:06:41 -!- oerjan has set topic: oklopol SHALL change this topic. everyone else SHALL NOT. or ELSE..
18:06:55 -!- ais523 has set topic: THIS IS THE LINK TO THE LOGS >>> http://tunes.org/~nef/logs/esoteric/ <<< IT'S FUCKING ANNOYING HAVING TO GOOGLE IT ALL THE TIME, IF SOMEONE [probably ehird] REMOVES IT AGAIN, SOMEONE [quite possibly oklopol] WILL put it back.
18:07:02 <ais523> oerjan: or else they'll be me
18:08:44 <oklopol> btw j is pretty awesome, have i mentioned
18:08:55 <oerjan> oklopol: i'm pretty sure
18:08:55 <ais523> possibly, I know ehird mentions it often enough
18:09:28 <oklopol> well. he should, since it's pretty awesome.
18:10:09 <oklopol> also building about 1000 pages of tutorial labs into the interpreter kinda makes it hard to lazy out of learning the language
18:10:23 <oklopol> i mean i can just start the interp, and "hmm. what should i do? oh! maybe read another lab."
18:10:54 <oklopol> and you can play with the language as you go, test all the things you learn, because the lab runs in the repl
18:10:59 <oklopol> that's pretty awesome too.
18:11:13 * oklopol continues, more random praise in a moment.
18:14:54 <oerjan> j cures malaria and prevents babies from crying. it also can be usedas a laundry detergent.
18:22:26 <oklopol> (*:^:_1) 4 <<< *: is square, ^:_1 applies it minus i times; evaluates to 2
18:23:27 <oklopol> (*:^:7) 2 would be *: *: *: *: *: *: *: 2
18:23:45 <oklopol> (*:^:_1) 4 is naturally the square root of 4
18:24:03 <ais523> grr... J should stop looking like Underload, it's confusing me
18:24:14 <oklopol> i'm assuming a verb can contain info about how to negate its effects
18:24:39 <oklopol> this is mainly used for conjunctions that first apply ^:1 of a verb, then ^:_1
18:25:22 <oklopol> for instance stuff like geometric mean can be done by having the stages of squaring and square rooting kinda wrapped over the part where you just do arithmetic mean
18:26:04 <oklopol> because you don't have to provide squaring and square rooting separately, just the square will do as long as it knows how it's effects are negated
18:27:24 <oklopol> also i don't know how to specify the function for negating a function, or how to specify other things functions can have, like units (0 for + and 1 for *)
18:27:31 <AnMaster> oklopol, talking about reversible programs or?
18:27:47 <oklopol> and i don't know whether you can add concepts like this yourself, i'm assuming you can't, but wouldn't be the first surprise
18:28:10 <ais523> reversible functions, I think
18:28:28 <AnMaster> oh? Sounds quite similar, if you have the result you can get the arguments
18:28:33 <oklopol> being able to annotate functions with certain info higher-order functions need.
18:29:09 <oklopol> not the same thing, reversible programming would require the language to be able to look inside functions, and do algebra
18:29:11 <AnMaster> however lots of functions can't be reversed, just consider additions, you have to know at least two of: a + b = c, to get the third
18:29:21 <oklopol> making functions reversible
18:29:32 <oklopol> if the language is reversible, that's a whole another issue of course
18:29:53 <oklopol> AnMaster: yes. but you're missing the point
18:29:57 <AnMaster> oklopol, there is an reversible programming language at the esolang wiki iirc
18:30:16 <oklopol> has nothing to do with this.
18:30:33 <oklopol> this is about... well i just said
18:30:37 <oklopol> being able to annotate functions with certain info higher-order functions need.
18:30:49 <AnMaster> oklopol, and that isn't very clear
18:31:13 <oklopol> i'm elaborating, be patient. things like what / (fold) should use as the unit when given an empty list as arg
18:31:33 <oklopol> so +/ 0$0 would be 0, and */ 0$0 would be 1
18:31:45 <oklopol> (0$0 is just a hacky way to make an empty list)
18:31:56 <AnMaster> oklopol, what language is this?
18:32:26 <ais523> is the spec closed-source, or just the implementation?
18:32:34 <oklopol> i don't know and i don't care
18:32:49 <mib_c2zegu> now watch AnMaster rant about how much it sucks because its' closed
18:33:27 <oklopol> AnMaster: reversability here was just an example of something you can annotate a function with: have another function to reverse it with, somehow stored with the function
18:34:07 <ais523> it's meant to be serious, it acts a bit like an esolang now
18:34:16 <AnMaster> mib_c2zegu, I was waiting for browser to load
18:34:22 <ais523> I see many similarities with Overload, for instance, although also differences
18:34:28 <ais523> J's a lot faster, for one thing, and has more syntax
18:34:47 <AnMaster> mib_c2zegu, rather: fast computer rendering images with raytracing
18:35:01 <oklopol> J's syntax seems very clever, it solves some of the problems i was struggling with with oklotalk simply better than i did
18:35:06 <AnMaster> so result is slow for everything else
18:35:09 <oklopol> and i don't admit that easily
18:35:38 <ais523> I think J is a non-esolang that does well at solving many of the problems in implementing an oklotalk/Overload-style esolang (something multiple people here have obviously thought of)
18:36:40 <oklopol> well one of J's greatest benefits is having an incredible amount of *algorithmic* modules
18:36:56 <oklopol> i mean, yeah, java and python have a million networking modules. who gives a shit.
18:38:04 <oklopol> or, at least if the small subset i've seen is, in fact, a small subset and not most of it :P
18:40:21 <AnMaster> oklopol, that is probably because J and Java try to solve different problems
18:43:40 <oklopol> true. j solves all problems, while java doesn't.
18:45:09 <oklopol> i don't know much about j's module facilities. there's a lab about Object Oriented Programming though, and i'm sure j + oo is better than not j + oo.
18:49:51 <oklopol> (to be honest i'm pretty sure it's really ugly)
18:50:03 <Asztal> which VPS host do you guys use?
18:50:42 <Asztal> ah, good, I was just looking at those
18:55:41 <oklopol> mib_c2zegu: is that a permanent nick?
18:56:36 <ais523> no, ehird's just using random mibbit links atm
18:56:50 <ais523> because for some reason he seems not to like using an IRC client but not a bouncer
18:57:02 <mib_c2zegu> my irc client is configured to my bouncer
18:57:22 <ais523> reconfiguring a client is easier than using Mibbit, IMO
18:58:16 <mib_c2zegu> cmd-n mibbit enter click click Freenode click esoteric type click
18:58:34 <oklopol> mib_c2zegu: wanna know something mind-blowing?
18:58:39 <mib_c2zegu> look thru menus, connections, delete, add, freenode, irc.freenode.net, add #esoteric, click, connect
18:58:40 <oklopol> assuming i didn't tell you yet.
18:58:45 <ais523> vs F2 alt-e irc.freenode.net enter enter
18:58:52 <ais523> which is all it took to reconfigure my client
18:59:07 <ais523> although I went through the menus because I forgot the keyboard shortcuts, so two clicks not F2
18:59:12 <ais523> mib_c2zegu: yes it does
18:59:14 <mib_c2zegu> also, I don't memorize the shortcuts for reconfiguring my irc client.
18:59:22 <ais523> my client was set up to join #esoteric by default beforehand
18:59:29 <oklopol> i tried a version control system
19:04:30 <oklopol> i was just the user of the system
19:04:52 <ais523> there are some development models svn is good for
19:05:00 <ais523> I've only once been in a situation where svn was useful, though
19:05:03 <mib_c2zegu> ais523: and they all work just as well with a dvcs
19:05:05 <ais523> and used it on more projects than one
19:05:12 <ais523> mib_c2zegu: pretty much, yes
19:05:17 <mib_c2zegu> cvcs's are an inferior subset of dvcs's
19:05:37 <ais523> although #interhack are using a dvcs, when they really need a cvcs I think
19:05:49 <ais523> at least, you get in trouble for doing something a cvcs couldn't do
19:05:52 <mib_c2zegu> ais523: no; they just have a bad development model
19:05:53 <oklopol> hey. at least i liked it. meaning i might even try the other options.
19:06:12 <mib_c2zegu> oklopol is turning into an enterprise programmer :<
19:06:55 <oklopol> hey i'm moving from python to j now, clearly i'm struggling against it
19:07:38 <oklopol> well actually i thought i'd start my language learning spree over, but this time actually learn the languages instead of just enough to forget it right away
19:08:01 <oklopol> and j and haskell are first
19:08:31 * ais523 thinks there should be a lang like J, but more tinkerable
19:08:35 <oklopol> well haskell i know much better than i did j of course
19:09:48 <ais523> yes, but you can always get more tinkerable
19:10:15 <oklopol> can you elaborate on tinkerable
19:10:41 <ais523> like, able to change things about the language
19:11:39 <oklopol> mib_c2zegu: what was the thing i was trying to solve in j?
19:11:45 <oklopol> when we had the whole #j episode
19:11:57 <mib_c2zegu> oklopol: err, factorial with @ or something
19:12:35 <oklopol> (#j has both an autoinvite on part, and autoban on join-flood, it's a fun channel to part considering i have autojoin on invite :DD)
19:12:54 <ais523> autoinvite on part? why?
19:13:18 <oklopol> well it's inhabited by gamers
19:13:39 <oklopol> i dunno. just seems like a very quakenety thing to do
19:13:45 <ais523> hmm... does the autoinvite do anything but cause people to rejoin the channel?
19:14:06 <oklopol> ais523: it may cause them to rejoin if their clients are like that
19:14:08 <ais523> I mean, anything else?
19:14:19 <ais523> the invite doesn't let them join voiced, for instance?
19:14:21 <oklopol> otherwise it does nothing, because why would someone rejoin if they just parted
19:14:40 <mib_c2zegu> ais523: it's just to get them to come back.
19:15:15 <oklopol> ais523: i doubt that, they should be voiced if Q-bot considers them worthy
19:17:34 <oklopol> mib_c2zegu: the reason for why i couldn't get it to work is @: is function composition, and the @ i used is actually not, it has a small difference, it uses the rank of the latter verb for both verbs
19:17:54 <oklopol> rank is kinda like whether arguments are of type [a] or [[a]].
19:18:12 <oklopol> but i didn't actually know :P
19:18:27 <oklopol> it was just a sophisticated guess back then
19:18:46 <oklopol> i guess that's a bit irrelevant from your perspective.
19:35:37 -!- oerjan has quit ("Trying a reboot").
19:39:00 -!- oerjan has joined.
20:13:01 <oklopol> so, tonight, programming or algorithms?
20:14:36 <oklopol> oerjan: not much difference :<
20:14:50 <mib_c2zegu> programming is documentating YOUR MOTHER
20:27:30 -!- Judofyr has joined.
20:27:34 -!- Judofyr has quit (Read error: 104 (Connection reset by peer)).
20:28:04 -!- Judofyr has joined.
20:48:06 -!- Sgeo has joined.
21:05:29 <ais523> let's play Nim with okos
21:05:49 * Sgeo should probably look up Ni,
21:05:57 -!- Asztal has quit (Read error: 110 (Connection timed out)).
21:05:57 <ais523> it's a good game, and very simple
21:06:04 <ais523> basically, you start with a certain number of piles of objects
21:06:15 <ais523> players take turns to remove objects from a pile
21:06:24 <ais523> as in, you can remove any number of objects but they all have to be in the same pile
21:06:30 <ais523> whoever takes the last object loses
21:06:54 <Sgeo> Isn't Nim solved or something?
21:07:18 <ais523> yes, it is, that's why I'll beat you at it
21:07:27 <ais523> unless you start in a winning position and either have also solved it, or are lucky
21:07:52 <oklopol> you have to be exponentially lucky
21:08:25 <Sgeo> You'd be the one choosing who goes first?
21:08:32 * Sgeo is looking at it on Wikipedia
21:08:55 <ais523> if I choose who goes first and there are two players, I'll win unless I screw up really badly
21:09:03 <ais523> even if someone else chose the board before that
21:09:09 <ais523> i.e. the starting position
21:09:26 <oklopol> now, is it pspace-complete if you have two stacks?
21:10:07 <oerjan> i would imagine it is logspace
21:10:09 <oklopol> oerjan: well in pspace, but not known to be in np, isn't that the usual game classification
21:10:30 <ais523> the strategy for winning it is O(log n), where n's the largest stack you have remaining
21:11:27 <oerjan> by stack you mean pile?
21:11:29 <oklopol> hmm. yeah okay it doesn't really make the game more interesting
21:12:30 <oklopol> how about some kinda graph...
21:12:54 <oerjan> see hackenbush, i think
21:13:15 <oklopol> no that's just either the original or multiple stacks if you can cut it into a forest
21:14:43 <oerjan> http://en.wikipedia.org/wiki/Hackenbush
21:15:46 <oerjan> http://en.wikipedia.org/wiki/Sprouts_(game)
21:15:59 <ais523> sprouts with oko wouldn't really work
21:16:51 * oerjan once played sprouts with conway in person
21:17:17 <oerjan> of course i lost, since i hadn't seen the game before
21:18:10 * oerjan hasn't really tried learning it since either
21:18:50 <ais523> brussels sprouts always has the same winner no matter who plays where
21:20:12 <oklopol> ahh, hackenbrush is essentially my graph idea, except when split into components, some components are removed from the game
21:20:45 <oklopol> oerjan: how come you've seen a celebrity?
21:21:21 <oerjan> he was giving a lecture in seattle when i was there during my ph.d.
21:22:43 <oerjan> and afterwards there were some discussions in the institute's lunch room
21:23:11 <oerjan> (the lecture was on surreal numbers iirc)
21:25:10 <ais523> oklopol: was that sentence an attempt at alphanumeric-only oko?
21:31:59 <oklopol> and a word, "xozy", for instance, meant the graph consisting of the characters of english, contained the path xozy
21:32:26 <oklopol> so you could eodermdrome hackenbrush
21:32:40 <oerjan> now if you mix scrabble into that...
21:33:00 <oklopol> nim is still an incomplete game if everyone can remove any line?
21:33:21 <oerjan> what do you mean incomplete?
21:33:35 <oklopol> an incomplete game, trivial
21:33:59 <oerjan> see the sprague-grundy theorem linked from the hackenbush article
21:34:50 <oerjan> not that that implies complete triviality. sprouts hasn't been completely solved despite being theoretically under that theorem
21:36:20 <oerjan> the red-blue-(green) hackenbush described is sort of to get conway's general games rather than just nimbers
21:36:25 <oklopol> how about someone start the game, the obvious scrabble rule is you can only use english words when doing transformations
21:36:55 <oerjan> (or so i assume, i haven't actually read that book)
21:53:50 -!- Judofyr_ has joined.
21:54:10 -!- Judofyr has quit (Read error: 110 (Connection timed out)).
21:54:43 -!- Judofyr_ has changed nick to Judofyr.
21:55:53 <Judofyr> what book should I buy from Amazon?
21:56:20 <mib_c2zegu> Enterprise Esoteric Programming: From Brainfuck to Underload
21:57:12 <ais523> actually, I think it might be interesting to convert Esolang the wiki into book form
21:57:25 <Judofyr> mib_c2zegu: why the heck are you mib_c2zegu and not ehird?
21:57:31 <ais523> together with commentary
21:57:47 <ais523> Judofyr: because he's too lazy to change the default nick, even with /nick
21:58:03 <mib_c2zegu> ais523: better idea: cite it with little footnotes in the book, except have it reference it as saying stuff entirely different from what it does
21:58:30 <ais523> that would mean a lot more writing
21:58:41 <mib_c2zegu> also, writing a book about esolangs sounds fun
21:58:50 <mib_c2zegu> (so does playing with its typography for 7 years)
22:02:26 <Judofyr> but seriously, a good book?
22:02:39 <Judofyr> right now I got SICP and The Little Schemer in my cart :P
22:02:51 <Judofyr> and the From NAND to Tetris-book
22:02:55 <mib_c2zegu> enterprise javabean development with struts
22:03:29 -!- mib_c2zegu has set topic: functional programming weenies..
22:04:05 -!- oklopol has set topic: functional programming weenies. also THIS IS THE LINK TO THE LOGS >>> http://tunes.org/~nef/logs/esoteric/ <<< IT'S FUCKING ANNOYING HAVING TO GOOGLE IT ALL THE TIME, IF SOMEONE REMOVES IT AGAIN, I WILL put it back.
22:05:07 <ais523> btw, anyone know how to write a recursive function with base case inside the GHCi REPL?
22:05:12 <ais523> it's easy enough in an actual program
22:05:23 <ais523> but that doesn't work inside the REPL
22:05:45 <ais523> and the second definition overwrote the first
22:05:50 <ais523> and I got a syntax error when I used a ;
22:07:41 -!- psygnisf_ has quit (Read error: 110 (Connection timed out)).
22:09:41 <Judofyr> I'm thinking of buy Programming in Lua
22:10:03 <mib_c2zegu> Lua is alright, but I wouldn't buy a book about it
22:10:34 <ais523> I wouldn't buy a book about most langs, though
22:10:38 <ais523> I'd just download a free one
22:10:48 <mib_c2zegu> I would buy a book about my language! Despite there not existing one! <.<
22:11:08 * ais523 remembers the fun he had trying to cite in an academic paper a book he downloaded via the Debian/Ubuntu repos
22:11:13 <ais523> "published on the Internet, but not the Web"
22:11:33 <oerjan> you know, with all those fingerprints "Practical Befunge" almost sounds like a reasonable idea
22:11:49 <ais523> and INTERCAL is almost practical, it just needs better string-handling
22:11:53 <mib_c2zegu> In fact, I should just write a series of books on esolangs.
22:12:13 <mib_c2zegu> They would, of course, treat the subject entirely seriously.
22:12:31 <ais523> and Underlambda is meant to be practical eventually, once I finish it
22:12:34 <Judofyr> okey. more books I *really* should read!
22:12:44 -!- Mony has quit ("Quit").
22:13:27 <oklopol> Judofyr: algorithm design is a pretty fun book
22:13:29 <Judofyr> it's evil to say goodbye before you can respond :-(
22:13:55 <oklopol> Mony is like that, plops in and 'nights out, doesn't have a care in the world
22:14:07 <oerjan> Judofyr: i kept seeing Concepts Techniques and Models of Computer Programming recommended when i was following Lambda The Ultimate
22:14:56 <oklopol> i recently read the first four or so chapters of ctmcp
22:15:00 <ais523> Mony has distilled the essence of eso
22:15:09 <ais523> (which is different from oklopol, who /is/ the essence of eso)
22:16:08 <oerjan> Judofyr: also, i prefer to say my goodbyes in my quit message. saves everyone work.
22:16:23 <oklopol> it describes the language oz via a nice set notation
22:16:39 <oklopol> essentially describes an interpreter in math
22:16:59 <ais523> Chaitin apparently once wrote a Diophantine equation which implemented Lisp
22:17:12 <oklopol> adds concepts as they are discussed, dataflow variables, lazy evaluation, exceptions etc
22:17:29 <ais523> <oklopol> so. <--- so what?
22:17:36 <oklopol> i recommend too. <<< this.
22:17:43 <ais523> sorry, I've been waiting to make that joke for months
22:17:58 <oklopol> well. that's funnier than the actual joke :P
22:18:03 <ais523> oh dear, I must be turning into AnMaster
22:18:59 <oklopol> i was planning to buy ctmcp myself, but sicp won for now
22:19:30 <oklopol> since i can just borrow a brand new ctmcp from the lib if i have the time to continue on in
22:21:09 <oerjan> hm actually Lambda the Ultimate had a book list
22:21:42 <oklopol> link it so i can read them all
22:21:58 <oerjan> i've got to find it again first
22:24:12 <oerjan> hm it may have been a thread actually, possibly this one: http://lambda-the-ultimate.org/node/492
22:44:26 -!- oerjan has quit ("Good night BWAHAHAHA").
22:55:58 <oklopol> i just end up slowly writing up a crappy solution and thinking "python is so much nicer"
22:56:22 <ais523> so does everyone else who knows both Java and Python
22:56:24 <oklopol> it's not that you can't do things well with java, it's just i just can't, because i hate it
22:56:37 <mib_c2zegu> just replace your whole program with sth like
22:56:41 <oklopol> well yeah that probably would've been a good solution
22:56:45 <mib_c2zegu> (new JythonInterpreter()).eval("PYTHON YAY");
22:56:57 <oklopol> i just thought, since this is a trivial little application, it doesn't matter how i do it
22:57:01 <mib_c2zegu> oklopol let's make a language based on kittens
22:58:03 <oklopol> it's just even a trivial program takes ages to write considering most of my coding time is just looking at the source and hoping the 15 lines to do something trivial would write itself.
22:58:11 <oklopol> because i don't want to write 15 lines to do something trivial
22:58:21 <oklopol> i want trivial things to be trivial :<
23:02:11 <mib_c2zegu> oklopol: write a java module called Shit.java
23:02:18 <mib_c2zegu> that contains shit that makes life a little less painful.
23:02:51 <oklopol> the problem is, i don't want to.
23:02:52 <mib_c2zegu> that's only like 100 characters bigger than python's lambdas
23:03:00 <oklopol> because i don't want to use java
23:03:01 <mib_c2zegu> oklopol: I'll write it for you. Because I am so kind/
23:03:15 <oklopol> so as a protest, i'm punishing myself by doing everything the hard way
23:03:42 <mib_c2zegu> i wonder if "package net.freenode.irc.esoteric;" is acceptable :-P
23:03:44 <oklopol> for instance i'm not using any kind of serialization, because you can't do it functionally.
23:04:02 <oklopol> if you can't write serialize(object) or something conceptually as simple, the language is flawed.
23:04:18 <oklopol> well not the language necessarily, but the stdlib anyway
23:04:51 <ais523> Underlambda has S and D commands
23:04:59 <ais523> which serialise and deserialise something, respectively
23:05:03 <ais523> to stdout or from stdin
23:06:28 <oklopol> serialization is ugly the way it's done in most languages
23:06:52 <oklopol> i mean, if serialization is done to get a bitstring out of an object, so you can send it over a network, or put it in a file
23:07:20 <oklopol> that's just retarded, you shouldn't have to have two conceptual representations of an object, and have different things use different represenations
23:07:31 <oklopol> that should be hidden from the programmer completely
23:07:31 <mib_c2zegu> oklopol: it's not a conceptual representation
23:07:52 <mib_c2zegu> serializing is giving it a bytestring representation
23:08:42 <oklopol> can't really think where that'd be useful, except maybe for hash values, but that should be in the stdlib anyway
23:09:08 <mib_c2zegu> you can't put plain objects on to disk
23:09:40 <ais523> in Underlambda, one neat trick is to serialise a continuation
23:09:41 <oklopol> i don't see where it'd be useful to think of the disk as made up of bytes
23:09:44 <ais523> gives a trivial way to save your program
23:09:55 <mib_c2zegu> do you want your language to -lie- to you?
23:10:01 <mib_c2zegu> the disk is made up of bytes in files.
23:10:05 <ais523> you write the serialised continuation out to disk; to run the program from there, just deserialise and give it an argument
23:10:24 <oklopol> mib_c2zegu: it's just a different level of abstraction to think of it as not being made up of bytes
23:10:35 <oklopol> an abstraction that doesn't lose generality
23:10:43 <mib_c2zegu> it's not a different level, it's a new abstraction
23:11:08 <GregorR> "IF SOMEONE REMOVES IT AGAIN, I WILL put it back"
23:13:37 <oklopol> anyway mib_c2zegu, what's the problem with that abstraction?
23:14:05 <oklopol> i mean the fact it's made up of bytes so the programmer should know that too isn't really much of an argument
23:14:16 <mib_c2zegu> it stops the programmer using existing files which are made of bytes?
23:14:19 <oklopol> it's also made up of electricity, but the programmer doesn't know that
23:14:33 <mib_c2zegu> and stops them writing out files for use in other things which use them as bytes?
23:15:15 <oklopol> mib_c2zegu: that's a better argument, although i'm not really satisfied with it
23:15:33 <oklopol> there are better ways around that than serialization
23:15:42 <oklopol> raw mode should be an exception, not the standard
23:15:47 <mib_c2zegu> files are made of bytes, this is the API exposed to the programmer from the OS (electricity isn't), and the rest of the universe expects them to be bytes
23:15:57 <mib_c2zegu> and it's more useful to create files that work with everything else, and read them, than just this language
23:16:03 <mib_c2zegu> so the most common case should be default
23:16:35 <oklopol> well in the case of serialization, nothing else can read the file anyway
23:16:44 <oklopol> because serialization is specific to the language
23:16:54 <mib_c2zegu> but serialization in that case can build on top of the byte exposing
23:17:16 <ais523> in Underlambda, serialisation is specific to the interp, or the executable in the case of compilation
23:18:07 <oklopol> mib_c2zegu: it can, yes, i still think it's not pretty.
23:19:00 <mib_c2zegu> L<String,String> addWorld = new L<String,String>() { public String _(String a) { return a + " world!'; }};
23:19:51 <oklopol> an example with multiple arguments would make the distinction even greater
23:20:03 <mib_c2zegu> yes, mine doesn't do multiple arguments
23:20:04 <ais523> well, Java's typed, so the specifying types everywhere is hardly surprising
23:20:13 <oklopol> mib_c2zegu: well i meant with an array
23:20:27 <ais523> at least you're using templates, even though Java's implementation of templates is stupid
23:20:30 <mib_c2zegu> java is just totally inexcusable as a language.
23:20:37 <mib_c2zegu> ais523: ah, wait, I should get rid of the template stuff
23:21:06 <oklopol> java isn't exactly type safe.
23:21:46 <oklopol> haskell's type system has actually helped me a few times, java's is just in the way
23:21:58 <mib_c2zegu> L addWorld = new L(){public Object _(Object a){return a + " world!";}};
23:22:07 <mib_c2zegu> now to see if I can eliminate those Object's
23:22:20 <ais523> Java's sort of got an anti-type-system
23:22:29 <ais523> it checks types at compile time, then forgets about them
23:22:46 <ais523> and at runtime it doesn't have any type information so you have to tell it what types things are all over again
23:22:55 <ais523> then it just errors if things are the wrong type, which can somehow happen anyway
23:23:33 <oklopol> java knows what type things are, just not the generic parameters, afaik
23:23:54 <ais523> oklopol: not in cases of inheritance
23:23:58 <ais523> which you're doing all the time in OO langs
23:24:14 <mib_c2zegu> damnit, you need to explicitly specify public for anon classes
23:24:20 <mib_c2zegu> I think I may have reached the limit here.
23:24:24 <oklopol> i'm pretty sure it does know the exact types.
23:24:30 <mib_c2zegu> oklopol: are you wary of running a preprocessor over your program?
23:24:49 <oklopol> mib_c2zegu: do you expect me to use your system? :D
23:24:56 <mib_c2zegu> I could write a python program that turned FUN(a -> a + " world!")
23:25:11 <mib_c2zegu> new L(){public Object _(Object a){return (a + " world!");}}
23:25:26 <oklopol> but... can you make it infer the types so i don't have to do explicit type conversions?
23:25:45 <mib_c2zegu> I may allow explicit types defaulting to Object
23:25:51 <mib_c2zegu> so you could do FUN(StupidType a -> ...)
23:26:26 <mib_c2zegu> Map._(FN(a -> a + " world!"), {"a","b","c"})
23:28:49 <oklopol> i think it's more like new String[]{...}
23:29:06 <mib_c2zegu> it's still better than a hueg for loop and reassign and shit
23:29:31 <oklopol> anything is better than a loop
23:30:17 * mib_c2zegu wonders what to name the utils package
23:30:31 -!- Judofyr has quit (Read error: 60 (Operation timed out)).
23:31:08 <oklopol> i wonder if british universities are as keen on java as finnish ones
23:32:02 <oklopol> x+4 is a temporary object on the stack
23:32:12 -!- Judofyr has joined.
23:32:13 <oklopol> and we need to convert it to an lvalue
23:32:31 <oklopol> now, we have all integers as lvalues somewhere in the memory, for literals that is
23:32:53 <oklopol> we just look up the reference to where ever x + 4 is, and rewrite that to 3
23:33:41 <oklopol> you will have to walk me through this.
23:34:45 <oklopol> 01:32… oklopol: x stays the same <<< i so did,.
23:34:58 <oklopol> ,.,.,.,.,.,.,.,.,.,
23:35:04 <ais523> oklopol: that looks like BF
23:35:26 <mib_c2zegu> import functional.java.Fn; public class Example { public static void main(String[] args) { System.out.println(FN(a => a + " world!")._("Hello,")); } }
23:35:43 <oklopol> it's an interactive conversation program
23:37:14 <oklopol> just make the trivial type inference code and use () :o
23:37:24 <mib_c2zegu> also, that can't be performed as a simple rewrite of the source
23:38:21 <oklopol> it can, although you need to infer the types of all callers
23:38:50 <mib_c2zegu> oklopol: i don't think you understand, mine just runs a few regexs
23:39:18 <oklopol> i know, i'm joking for teh most part :)
23:49:07 <mib_c2zegu> hmm, well basic compilationeration works
23:50:16 <mib_c2zegu> oklopol: how should return valuamations be specified
23:52:17 <oklopol> maybe have A=>B be reduced to L<A,B>, and use -> for lambdas
23:52:39 <mib_c2zegu> import functional.java.*; public class Example { public static void main(String[] args) { System.out.println(FN(a => a + " world!")._("Hello,")); } }
23:52:44 <mib_c2zegu> import functional.java.*; public class Example { public static void main(String[] args) { System.out.println((new Lambda<Object,Object>() { public Object _(Object a) { return (a + " world!"); }})._("Hello,")); } }
23:54:03 <oklopol> it's nice, but i can't help thinking it's also very trivial :P
23:54:29 <oklopol> well yeah add all the stuff python has and i'm good to go
23:54:49 <mib_c2zegu> oklopol: I'm just trying to avoid you committing suicide.
23:59:03 -!- Judofyr has quit.