←2007-04-21 2007-04-22 2007-04-23→ ↑2007 ↑all
00:16:10 -!- xtofs has joined.
00:16:15 <xtofs> Hi
00:16:30 <oerjan> hi
00:17:02 <xtofs> are there any functional esoteric languages ?
00:17:09 <GregorR> Quite a few.
00:17:19 <GregorR> (Not shockingly)
00:17:25 <oerjan> Unlambda, Lazy K
00:17:43 <xtofs> like lambda calculus with full blown higer order functions closures first class environements ?
00:17:48 <oerjan> Iota and Jot
00:17:57 <xtofs> cool i look into those
00:18:06 <oerjan> actually those i mentioned are combinator calculus
00:20:04 <oerjan> i am pretty sure there are some more lambda like but i haven't paid much attention to them
00:20:04 <oerjan> well there is one called Lambda, should be a safe bet
00:20:15 <xtofs> i would like to implement something realy cool in like the minimum lines of codes :)
00:22:31 <xtofs> unlambda seems verry nice :)
00:22:37 <oerjan> good luck my languages end up so complex i never get them implemented :)
00:23:18 <oerjan> indeed it is
00:24:18 <xtofs> i have writen a language but it not realy a hard one
00:24:27 <xtofs> maybe i just change the syntax :)
00:25:50 <xtofs> who of you like postscript ?
00:26:15 <oerjan> postscript is not bad
00:26:43 <xtofs> the dictionary stack is something i had not seen before
00:27:10 <xtofs> not that it is that shocking but manipulate it is quite cool
00:27:28 <SevenInchBread> What is it?
00:27:47 <xtofs> the dictionary stack ?
00:28:12 -!- BigBoom has joined.
00:28:15 <xtofs> the bindings of your variables and where to look them up
00:29:40 -!- hans has joined.
00:29:42 <SevenInchBread> ah...
00:29:47 -!- hans has changed nick to bla.
00:29:53 -!- bla has changed nick to xtofss.
00:30:03 <SevenInchBread> it's the kind of binding structure I would probably use.
00:30:09 <oerjan> sounds like it means dynamically scoped variables
00:30:16 -!- BigBoom has quit (Client Quit).
00:30:34 <xtofss> oerjan hmm not nessasarly
00:30:47 <xtofss> you can just keep your environment arround :)
00:31:13 <xtofss> say you want to evaluate a function in a specific environment you push it on and call the function
00:31:25 <xtofss> when its done you save it
00:32:16 <oerjan> but are environments passed by reference? otherwise you won't get proper closures for mutable variables
00:33:05 <xtofss> indeed
00:33:48 <xtofss> not that you have a chose but when you take a environment and pop it of its not a copy
00:34:15 <xtofss> or some kind of evaluation of it what that might mean :)
00:34:56 <xtofss> who has his own language here ?
00:35:26 * SevenInchBread raises hand
00:36:33 <xtofss> link ?
00:37:53 <xtofss> I have written one i can run on my mobile phone :)
00:38:46 <oerjan> i think someone mentioned something like that here once
00:38:58 <SevenInchBread> hmmm... lemme find the source of one.
00:39:08 <SevenInchBread> oddly enough, I have very few of the interpreters on disk.
00:39:55 <SevenInchBread> http://esoteric.voxelperfect.net/wiki/User:CakeProphet has the full list... but not all of them are implemented.
00:40:31 <SevenInchBread> and the only one I can find of Dupdog is in some illegible compiled Perl stuff.
00:42:11 <oerjan> well there is my incomplete Haskell one
00:42:21 * oerjan never finishes anything
00:42:59 <SevenInchBread> I've got a broken one in Python.
00:43:07 <SevenInchBread> the "original", if you will.
00:46:32 -!- xtofs has quit (Read error: 110 (Connection timed out)).
00:47:15 <oerjan> http://oerjan.nvg.org/esoteric/Dupdog.hs + FingerTree.hs. You can in theory use it if you can put the right functions together...
00:51:06 <oerjan> oh right, i _did_ finish Malbolge Unshackled. Too bad no one has written any programs in it.
00:51:49 -!- calamari has quit ("Leaving").
00:53:46 <SevenInchBread> oerjan, so... how do you optimize the duplication part?
00:53:57 <SevenInchBread> you can do reverse with a flag... but what about duplicate?
00:54:45 <oerjan> by using the FingerTree module which implements lazily concatenated sequences
00:56:39 <oerjan> (it is the same as Data.Sequence, but less restricted)
00:57:10 <SevenInchBread> <.< how about in Python?
00:58:59 -!- xtofss has quit (Read error: 110 (Connection timed out)).
00:59:50 <oerjan> i suppose you could do such a structure with some simpler kind of tree, you need duplication, push and pop at both ends
01:00:58 <oerjan> a simple class Concatenated(sub1,sub2)
01:01:41 <oerjan> and purely functional push and pop
01:02:23 <SevenInchBread> a lot of optimization can be had by using specialized data structured instead of raw byte-moving
01:02:55 <oerjan> the main point is that most of the duplicated parts should be shared
01:04:29 <oerjan> actually you don't need push for Dupdog...
01:06:10 <SevenInchBread> just reverse and pop
01:06:14 <SevenInchBread> ..and duplicate
01:06:16 -!- fax has joined.
01:06:25 <fax> hello
01:06:45 <oerjan> 'evening
01:08:46 <oerjan> so then your classes need methods popStart and popEnd that return a tuple containing the popped element and an object representing the remainder
01:09:09 <oerjan> and empty
01:10:00 <oerjan> and the Concatenated class recurses on the relevant subpart
01:14:04 <SevenInchBread> oerjan, hmm... reverse lookup is hard to handle with tree concatenation
01:14:22 <oerjan> what reverse lookup?
01:14:44 <SevenInchBread> if you use a reverse flag to signify that the source has been reversed.
01:15:21 <oerjan> well that is why you want both popStart and popEnd (or pop(direction))
01:16:33 <SevenInchBread> >.> but with a tree you need to recurse the entire tree to get the very last character
01:17:14 <oerjan> you must recurse in any case unless you use the very clever FingerTree stuff
01:17:42 <oerjan> i believe that works by rebalancing the tree so the ends are always shallow
01:18:13 <oerjan> however as i understand duplication gives a log(n) overhead anyway
01:19:01 <oerjan> which is the same as for lookup in a naive tree
01:20:58 <oerjan> as far as i am concerned that is still a big improvement over n when n is the size of an exponentially growing data structure
01:21:20 -!- SevenInchBread has quit (Read error: 104 (Connection reset by peer)).
01:21:46 -!- SevenInchBread has joined.
01:21:48 -!- nazgjunk has changed nick to na[zZz]gjunk.
01:24:46 <ihope> SevenInchBread: have you found an x86 person?
01:26:46 <RodgerTheGreat> that sounds like a painful concept
01:31:08 <SevenInchBread> oerjan, I think the main rationale for using trees in memory.
01:31:11 <SevenInchBread> *is
01:31:31 <oerjan> yep
01:32:31 <SevenInchBread> ah... I know how I'll do it.
01:32:39 <SevenInchBread> without using trees at all
01:32:46 <oerjan> ?
01:43:17 <SevenInchBread> I'll show you when I finish it.
02:15:52 -!- Figs has joined.
02:16:19 <SevenInchBread> oerjan, like this: http://deadbeefbabe.org/paste/4478
02:16:25 <SevenInchBread> (untested dupdog interpreter)
02:19:21 <SevenInchBread> ....and now with a bug fix :)
02:24:08 <oerjan> i don't think that works.
02:25:03 <Figs> can anyone tell me a stupider title than this?
02:25:08 <Figs> "Inventors turn creations into cash"
02:25:11 <Figs> ...
02:25:17 <Figs> NO SHIT, SHERLOCK!
02:25:24 <Figs> </bitterness>
02:25:35 <oerjan> i think you are popping off both ends all the time
02:25:43 <Figs> me?
02:25:53 <Figs> :P
02:26:14 <oerjan> no, SevenInchBread
02:26:17 <ihope> Thutu? When did that happen?
02:26:36 <ihope> And both Thubi and /// are mentioned in the first paragraph! I'm famous!
02:26:37 <ihope> :-P
02:28:01 <Figs> mmm
02:28:08 * oerjan has no idea which paragraph ihope is referring to
02:28:14 <Figs> www.DamnInteresting.com is pretty well designed
02:28:29 <ihope> oerjan: that of the wiki page on Thutu.
02:29:40 <SevenInchBread> oerjan, ah... I might need to change the self.indlist.pop(0) part based on the revflag
02:30:16 <oerjan> i am afraid it will not work, because the popping should be at only one end too
02:31:21 <oerjan> essentially i think the tree will creep back in
02:31:27 <Figs> ooh
02:31:31 <Figs> plans for a flying saucer
02:32:44 <Figs> wow
02:32:58 <Figs> who the fuck sells jet engines for $35?
02:33:03 <SevenInchBread> oerjan, nope... the popping needs to be reversed to.
02:33:29 <Figs> scratch that
02:33:32 <Figs> $20
02:34:09 <Figs> oh
02:34:13 <Figs> it's blue prints
02:34:14 <Figs> :P
02:34:26 <oerjan> SevenInchBread: and i think the IndexError is wrong too, because there is no reason why the end of a duplicated part should be either end of the original source
02:35:26 <SevenInchBread> ah yeah... it would just be one end.
02:35:56 <oerjan> you could have pops off both ends before a duplication
02:36:31 <Figs> ooh
02:36:37 <Figs> found plans for DIY jet engine
02:36:45 <Figs> wouldn't it be neat to build your own flying saucer?
02:36:47 <Figs> :P
02:37:10 <oerjan> gimme a flying teapot!
02:37:15 <SevenInchBread> oerjan, a duplication just saves the current index... because that's all you need to mimic a duplication... however... you may be right about IndexError being the wrong way to check for when we've reached a duplicated part.
02:37:20 <Figs> equipped with blinking LEDs, and sound-track from sci-fi, of course
02:38:05 <oerjan> the duplication needs to save the index for both ends.
02:38:27 <SevenInchBread> both?
02:38:41 <SevenInchBread> the last index is always.... the last index of the source code.
02:38:58 <Figs> any physics majors here?
02:39:08 <SevenInchBread> ...probably not.
02:39:38 <SevenInchBread> oerjan, but you do see where I'm going with this right?
02:40:08 <Figs> if I built a cone like /\
02:40:17 <Figs> and blew into the /\ bottom with jets
02:40:22 <Figs> would it produce lift?
02:40:40 <SevenInchBread> it would be something like a hot air balloon.
02:40:40 <Figs> (and lift evenly, provided it's a decently even cone?)
02:40:56 <oerjan> yes, you want to save indexes instead of trees.
02:40:58 <fax> you need a hole in it ?
02:41:01 <fax> / \
02:41:03 <fax> ^ like that
02:41:08 <fax> / \
02:41:16 <fax> I meant / \
02:41:23 <Figs> at the top?
02:41:25 <SevenInchBread> nah... a hole wouldn't allow for as much force.
02:41:26 <Figs> why
02:41:36 <fax> oh wait probably not actually
02:41:53 <Figs> I'm pretty sure it'd do enough for at least a hover craft
02:42:00 <Figs> from air cushioning
02:42:12 <SevenInchBread> basically... firing a jew engine against a cone would be like.... blowing EXTREMLY HARD into a big bag.
02:42:13 <Figs> but I don't know if it'd work for real flying
02:42:22 <Figs> a jew engine?
02:42:32 <SevenInchBread> ....hahahaha
02:42:38 <SevenInchBread> best typo ever
02:43:11 <Figs> hmm
02:43:16 <Figs> if I spin the engines
02:43:22 <Figs> like
02:43:32 <Figs> -/\-
02:43:36 <Figs> ring holding code
02:43:37 <Figs> *cone
02:43:50 <Figs> with engines sucking air from above and blowing into the cone
02:44:06 <Figs> spin the ring
02:44:18 <Figs> it'd make a gyroscopic sort of stability, right?
02:45:25 <Figs> might not be a fast form of transport, but imagine flying your gf above say, NY and having everyone think you're aliens :P
02:45:35 <fax> hehe
02:48:04 <ihope> Ring holding code!
02:48:28 <ihope> Oh, also.
02:48:31 <ihope> SevenInchBread: "hatful"
02:50:32 <Figs> I corrected that one :P
02:50:33 <SevenInchBread> oh alright
02:50:44 <ihope> :-)
02:51:32 <Figs> ah hahahahaha
02:51:34 <Figs> "Let me be the first to say that the prospect of drunk fliers crashing into my roof is enough to be thankful that we can not have one of these craft as easily as we can go out and buy a car."
02:52:09 <Figs> yeah... we don't want people FUI (fooey!)
02:53:49 <Figs> http://youtube.com/watch?v=6-3lQ4L_36c
02:56:19 -!- RainbowTrout has joined.
03:08:28 <Figs> oh wow
03:08:40 <Figs> did you know Irrlicht is the German word for "Will-o-the-wisp"?
03:16:12 <Figs> ooh
03:16:19 <Figs> D Harmonic minor
03:17:14 * oerjan somehow never considered D Harmonic minor an ooh subject
03:18:13 <Figs> too bad :P
03:18:32 <Figs> http://www.tonalcentre.org/Harmminchords.mid C harmonic minor!
03:19:29 <ihope> Fourier series!
03:19:38 -!- oerjan has quit ("Good night").
03:31:38 -!- Sgeo has joined.
04:19:13 -!- RainbowTrout has quit ("Chatzilla 0.9.77 [Firefox 1.5.0.11/2007031202]").
04:28:22 -!- ihope has quit (Remote closed the connection).
04:41:03 -!- Figs has left (?).
05:04:50 -!- pikhq has quit ("leaving").
05:05:59 -!- pikhq has joined.
06:54:48 -!- Sgeo has quit (Remote closed the connection).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:00:13 -!- sebbu has joined.
09:01:58 -!- sebbu2 has joined.
09:21:09 -!- sebbu has quit (Read error: 110 (Connection timed out)).
09:29:36 -!- fax has quit (Remote closed the connection).
09:51:41 -!- na[zZz]gjunk has changed nick to nazgjunk.
10:03:50 -!- sebbu has joined.
10:09:33 -!- jix__ has joined.
10:22:33 -!- sebbu2 has quit (Read error: 110 (Connection timed out)).
13:08:29 -!- nazgjunk has quit ("i really have to get off irc for now, if i don't write this stuff i won't pass my exams >.<").
13:58:12 -!- xtofs has joined.
14:28:58 -!- xtofs has quit ("Leaving").
15:24:17 -!- nazgjunk has joined.
15:30:41 -!- nazgjunk has quit ("back to school shit").
15:47:20 -!- nazgjunk has joined.
17:21:22 -!- helios24 has quit ("leaving").
17:21:37 -!- helios24 has joined.
17:22:24 -!- helios24 has quit (Remote closed the connection).
17:22:32 -!- helios24 has joined.
17:23:26 -!- helios24 has quit (Client Quit).
17:23:31 -!- helios24 has joined.
17:45:00 -!- jix__ has changed nick to jix.
18:06:11 -!- ihope has joined.
18:24:22 -!- _jol_ has joined.
18:24:57 -!- _jol_ has quit (Client Quit).
20:34:32 -!- oerjan has joined.
21:07:07 -!- pikhq_ has joined.
21:16:10 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
21:19:35 <SimonRC> I assume that anyone who is unable to use SPaG on usenet or similar is a retarded 12-year-old. Am I a bad person?
21:20:43 <lament> what's spag?
21:21:08 <oerjan> i don't know. how do you use Society for the Promotion of Adventure Games on Usenet?
21:21:28 <SimonRC> "Spelling, Punctuation and Grammar"
21:21:29 -!- pikhq has quit (Read error: 110 (Connection timed out)).
21:21:43 <lament> well no
21:22:05 <lament> if they're retarded, they don't have to be 12 years old.
21:22:37 <oerjan> hm, synchronicity, i just read Mark CC's review of a kook's book with really bad language
21:24:10 <oerjan> if you consider _really_ severe dyslexia retarded... (so bad that you cannot even say if your spell checker's suggestions are correct)
21:57:14 -!- pikhq_ has changed nick to pikhq.
21:59:38 <oerjan> pikhq: don't you know how to disconnect one of your nicks?
22:01:28 <pikhq> I didn't realise that I was logged in as pikhq_ until I saw pikhq time out.
22:01:43 <oerjan> oh
22:04:02 -!- ShadowHntr has joined.
22:08:00 -!- atrapado has joined.
22:42:16 -!- Sgeo has joined.
22:45:13 <SimonRC> hi
23:07:35 * pikhq <3 Beryl. . .
23:13:53 -!- atrapado has quit ("Saliendo").
23:15:37 * GregorR *stab* beryl and beryl users
23:22:46 -!- sebbu has quit ("@+").
23:29:46 * pikhq shines as he dies
23:33:28 -!- pikhq has quit ("leaving").
23:33:45 -!- pikhq has joined.
←2007-04-21 2007-04-22 2007-04-23→ ↑2007 ↑all