00:03:17 <ehird`> from lisp. the list (a b c) is (a . (b . (c . NIL)))
00:03:28 <ehird`> (cdr that-list) -> (b . (c . NIL))
00:03:46 <ehird`> where (x . y) is CONS x y of course.
00:04:54 <ehird`> when talking about cons-pair lists, it's wise to use lisp terminology
00:06:20 <ehird`> i don't know sk very well
00:07:21 <ehird`> that's pretty close to CONS
00:07:33 <Slereah> NIL is ^x.True sez Wikipedia
00:07:40 <ehird`> naww, that sounds wrong
00:07:53 <oerjan> True or False is an arbitrary choice
00:07:54 <ehird`> i'd make NIL: "cons NIL NIL"
00:07:55 <Slereah> CONS is ``s``s`ks``s`k`s`ks``s`k`s`k`si``s`k`s`kkk`kk
00:07:58 <ehird`> just because that's cool :-)
00:08:05 <oerjan> ehird`: that's not going to work
00:08:16 <oerjan> it means you cannot have NIL as an element of the list
00:08:38 <oerjan> also, you cannot actually _test_ when you have reached the end
00:08:38 <ehird`> (NIL . NIL) is a list with just NIL as the element
00:08:46 <oerjan> ok that's the real reason
00:08:47 <ehird`> hmm, that is a good point
00:08:57 <ehird`> seems the best choice to me
00:09:07 <ehird`> since, i mean, there's nothing "YES", "TRUE" about the end of the list
00:09:25 <Slereah> Well, it would just be `kk
00:10:30 <Slereah> But us little people prefer `KI
00:10:59 <ehird`> pff, in my day we didn't have I
00:11:05 <ehird`> we thought ``SKK was perfectly suitable
00:16:56 <ehird`> i should make TRADLISP
00:17:00 <ehird`> tried to be as much like old lisps as possible!
00:17:06 <ehird`> like LISP 1.0 with extensions
00:17:46 <ehird`> that would be pretty esoteric, nowadays
00:18:08 <ehird`> hm, anyone know how LISP 1.0 or 1.5 did pretty-printing of e.g. functions?
00:18:51 <oerjan> what was that esolang that was an alternative history BASIC again...
00:20:24 <ehird`> but i could write all symbols in uppercase
00:20:31 <ehird`> and use odd indentation styles
00:21:07 <ehird`> I could write it in itself, and make it compile to machine code on the fly, for extra silliness
00:24:08 <Slereah> "If the nazis won WWII, what would BASIC look like?"
00:32:09 <oerjan> ah, http://esoteric.voxelperfect.net/wiki/VENIAL was it
00:32:53 <oerjan> i think the one you just described could be called GODWIN :)
00:36:26 <ehird`> behold! RETROLISP: http://rafb.net/p/8qu6qQ34.txt
00:36:37 <ehird`> things to note: ; is the only comment seperator that coders use.
00:36:40 <ehird`> and no space after it either!
00:36:55 <ehird`> symbols are ALWAYS in uppercase, just don't even question it (sure, it might work in any case, but just..DON'T)
00:37:02 <ehird`> also: symbols are bad, mainly.
00:37:07 <ehird`> the repl prompt is a single *
00:37:57 <oerjan> and PRINT is not actually used
00:38:06 <ehird`> it was when i wrote that comment
00:38:27 <ehird`> did old lisp have strings?
00:38:39 <ehird`> didn't it just have symbols with some weird way to have special chars in it
00:38:42 <ehird`> some sort of special form
00:39:02 <ehird`> (did it even have LIST?)
00:42:11 <oerjan> EXPLODE? or was that prolog
00:54:37 <ehird`> retrolisp is crap, i want an alternate history lisp
00:55:57 <ehird`> oerjan: i wonder what's the most low-level fundamental change i can make while still being able to call it 'althistory lisp'
00:57:18 <oerjan> don't use parentheses...
00:57:46 <oerjan> ah but use something equivalent
00:58:27 <oerjan> although that might merely turn it into LOGO
00:58:47 <ehird`> i think parens have to say
00:58:56 <ehird`> (A B C) should be valid
00:59:44 <oerjan> then... don't use cons cells
01:01:09 <ehird`> since lisp was originally 100% theoretic
01:01:52 <oerjan> hmph you're being difficult :D
01:02:00 <ehird`> let's think a little less fundamental ;P
01:02:13 -!- Aardwolf has quit ("Leaving").
01:02:18 <oerjan> well you could use german...
01:03:22 <oerjan> or something like that
01:03:36 <oerjan> somehow i think i spelled Funkzion wrong
01:04:06 <ehird`> i'm going to have a special form like
01:04:36 <oklopol> "tion" is just pronounced "tzion"
01:04:47 <oerjan> that's semantically weird...
01:04:56 <oklopol> as it is in norwegian (swedish-based guess, because i know you love those :))
01:05:05 <ehird`> ((a b c)) was '(a b c)
01:05:20 <oklopol> oerjan: i meant the pronunciation
01:06:13 <oklopol> hmm, what's "induction" or "penetration"?
01:07:09 <oerjan> latin/french words are heavily regularized
01:07:21 <oklopol> i'm always surprised i don't know something i had no way to know anyway.
01:07:29 <ehird`> oerjan: hm, drop is kinda silly i agree :P
01:08:29 <oklopol> just read the last 5 years of maddox, i have to say that man knows his shit
01:14:18 -!- slereah_ has joined.
01:26:22 <ehird`> who wants to tell me the simplest language with a trivial self-interpreter that isn't the null language and doesn't have a blatant 'eval'
01:27:34 <oerjan> if it's "trivial" doesn't that amount to having eval...
01:37:58 <oklopol> perhaps he doesn't like the word.
01:38:51 <ehird`> oerjan: well, less trivial than eval()
01:39:05 <ehird`> maybe i should say: simpl
01:40:11 <oerjan> well lisp has a simple self-interpreter, which just happens to be included under the name "eval"
01:40:25 <ehird`> lisp's self interpreter isn't that simple.
01:40:30 <oklopol> add the p combinator to unlambda, a combinator that parses an input string as an unlambda program
01:41:24 <oklopol> input string would of course be represented as a list of peano numbers or smth, but anywayz
01:43:00 <ehird`> but that's basically eval.
01:44:05 -!- Slereah has quit (Read error: 110 (Connection timed out)).
01:45:31 <oklopol> ehird`: the parser is done in an eval fashion there, yes
01:46:27 -!- sebbu has quit ("@+").
02:18:51 -!- ehird` has changed nick to ehirdsleep.
02:19:08 -!- ehirdsleep has quit.
02:20:32 -!- ehirdsleep has joined.
04:19:44 -!- lifthrasiir has joined.
04:35:56 -!- slereah_ has changed nick to Slereah.
04:36:12 * Slereah tries to make a factorial function.
04:36:18 <Slereah> But it doesn't seem to ever stop!
04:46:07 -!- oerjan has quit (Remote closed the connection).
04:52:14 -!- oerjan has joined.
05:16:59 <Slereah> Hm. For a factorial using recursion, would I have to get out the result, the step, and print it if it's the last step and then deleting the recursion?
05:17:06 <Slereah> With some sort of v combinator
05:17:56 -!- oerjan has quit ("Lost terminal").
05:21:17 <Slereah> Well, so far my attempts at a factorial function never stopped.
05:47:00 -!- calamari has quit ("Leaving").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:09:34 -!- sebbu has joined.
09:58:09 -!- sebbu2 has joined.
10:05:25 -!- oerjan has joined.
10:07:56 <Slereah> One of the Turing paper uses a delta symbol in lambda calculus.
10:09:58 <Slereah> With { {delta} M } (M) = ^f[^x[{f}({f}(x))]] if M's a combinator and { {delta} M } (N) = ^f[^x[{f}(x)]] if N and M's are and N isn't M.
10:10:09 <Slereah> Anyone got any idea on the deeper meaning of it?
10:10:48 <Slereah> Since mister T said "We have not as yet assigned any meanings to our formulaes, and we do not intend to do so in general"
10:13:02 <oerjan> it's an equality testing predicate
10:13:06 -!- sebbu has quit (Read error: 110 (Connection timed out)).
10:13:33 <Slereah> Oh. It's impossible to do one with only lambdas?
10:13:43 <oerjan> i assume he later proves it's inconsistent that it exists
10:14:30 <Slereah> When I say "different", I don't mean that you can convert one into the other.
10:14:49 <Slereah> Well, it is that, but much restricted. Only to alpha conversion.
10:15:45 <Slereah> "If N and M are in normal form, are not transformable into one another by repeated application of (i), and have no free variables"
10:15:50 <oerjan> ok maybe delta M itself is not considered a combinator. ah, it's the usual delta function
10:16:17 -!- sebbu2 has changed nick to sebbu.
10:16:18 <oerjan> except with result defined as combinators instead of numbers
10:16:36 <Slereah> Well, (dM)N can be replaced by the combinator 1 or 2.
10:16:52 <Slereah> What's the delta function?
10:17:04 <oerjan> usually delta_x(y) = 0 if x /= y, 1 otherwise
10:17:05 <Slereah> Or which one, more accurately.
10:20:34 -!- Hiato has joined.
10:20:57 <Hiato> GergorR, are you paying attention today?
10:21:29 <Hiato> Where you on last night with the 1l_AOI spec?
10:22:16 <Slereah> Depends if you need logs or my memory.
10:22:26 <Hiato> lol, well your memory
10:22:32 <Hiato> and then you opinion
10:22:40 * oerjan assumes GregorR is still sleeping. also if you want him to notice you better spell his nick correctly.
10:22:58 <Hiato> lol, thanks orejan
10:23:13 <Hiato> ok well Slereah, and possible orejan (if he's interested)
10:23:25 <Hiato> you know that the 1l spec is incomplete
10:23:28 <Slereah> [11:22] [GregorR TIME reply]: Mon Jan 7 02:22:57
10:24:00 <Hiato> anyway, the 1l Angle of Incidence was such a cool idea
10:24:08 <Hiato> an esolang with 1 symbol!
10:24:23 <Hiato> so I couldn't help but complete the spec
10:24:25 <Hiato> http://rafb.net/p/VMGMTC23.txt
10:24:50 <Slereah> The only such idea I had was a lazy Gdel numbering of the program
10:24:52 <Hiato> essentially, it's like befunge where you ave a command pointer moving though the code
10:25:31 <Hiato> then, depending on whether it passes through or by a + sign
10:25:35 <Hiato> various things happen
10:25:52 <Hiato> if it passes by, it gets deflected if the current cell is non-zero
10:26:05 <Hiato> and anything not a + is a nop and comment
10:26:17 <Hiato> if it passes through a plus
10:26:31 <Hiato> and it is turing complete
10:26:37 <Hiato> because it is essentially BF
10:27:09 <Hiato> oh, and execution halts when the CP pases through the top or right hand edge of the code
10:27:28 <Slereah> Do you have a sample program?
10:27:29 <Hiato> there is no bottom or left edge
10:27:35 <Hiato> unfortunately, not
10:27:40 <Hiato> but I am working on one
10:27:49 <Slereah> I'm having a hard time reading it.
10:27:53 <Hiato> it's just difficult to see the stuff
10:27:55 <Slereah> Well, just use a bunch of +'s!
10:28:15 <Hiato> I want to output the letter A
10:28:36 <Hiato> but, it will be wasy easier in this one
10:28:42 <Hiato> as you can just have a line of stuff
10:29:06 <Hiato> but I will be back in ~1hour 30mins
10:29:14 <Hiato> and hopefully will show you the prog
10:29:21 -!- Hiato has quit ("Leaving.").
12:22:24 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
12:22:28 -!- puzzlet has joined.
13:23:31 -!- Hiato has joined.
13:24:05 <Hiato> ok here we are http://rafb.net/p/e7f7cE36.txt with an example
13:24:22 <Hiato> I was too lazy to do otherwise
13:25:00 <Hiato> Do you know what the whole "L" language group is about?
13:25:33 <Hiato> its attempting to implement BF in a funge like manner using minimal commands
13:25:51 <Slereah> 1 is pretty minimal I guess!
13:26:08 <Hiato> This is why I wanted to show GregorR
13:26:14 <Slereah> Unless you make some sort of 0 command language.
13:26:19 <Hiato> has 3 commands, and 1l_a/105 has 2
13:26:29 <Slereah> But it's hard to make them Turing complete.
13:26:39 <Hiato> yes, although this one is
13:26:51 <Slereah> I was talking about 0 commands!
13:26:55 <Hiato> it is trivial to convert any given BF programme into 1l_AOI
13:27:03 <Hiato> that would be very difficult :P
13:27:25 <Slereah> 99 has zero instructions, but isn't very TC!
13:27:49 <Hiato> there is an error in the prog
13:28:31 <Hiato> actually, it's a problem with the spec
13:31:23 <Hiato> http://rafb.net/p/wJ5SQL87.txt
13:31:30 <Hiato> there was another catch 22
13:32:13 <Hiato> in order to get to a specific cell, you would have to turn, but in order to turn, that cell would have to be non-zero, and in order for it to be non-zero, you would have to turn :P
13:33:23 <Hiato> gonna fetch the CD's
13:33:40 <Slereah> Wow, you know Ubuntu himself?
13:36:16 <Hiato> why did I order Ubuntu 7.10
13:36:23 <Hiato> I wanted Kubuntu :( :(
13:36:30 <Hiato> I already have ubuntu
13:36:42 <Hiato> I got stickers though, on the plus side :D
13:37:35 <Hiato> how do you check someones time, Slereah?
13:37:45 <Hiato> you did it earlier
13:38:24 <Hiato> "/time" just gives me the server's time ...
13:39:52 <Slereah> Well, right-click on the name, CTCP, time
13:40:13 <oerjan> /ctcp ... TIME possibly
13:40:44 <Hiato> unknown command for me
13:40:53 <Hiato> bets I get is "/time"
13:41:09 <oerjan> you don't have /ctcp ?
13:41:17 <Hiato> nope, not in pidgin
13:41:52 <oerjan> can you insert ^A control chars in your messages?
13:42:14 <Hiato> not sure what that means
13:42:30 <Hiato> amm.... that didn't work
13:42:50 <Hiato> nope, no ASCII code's allowed for me
13:42:52 <oerjan> although your client did not respond to my /ctcp time ...
13:43:57 <oerjan> can you at least do /me commands? not that it helps with this
13:44:39 <oerjan> what happens if you press ctrl-V ctrl-A ?
13:45:03 <Hiato> as in paste, select all?
13:45:19 <oerjan> did that come out as an action?
13:45:28 <Hiato> (3:45:32 PM) ***oerjan tests
13:46:06 <oerjan> well if it actually does paste and select all then it's not what i mean
13:46:23 <Hiato> yep, well that's what happens ;)
13:46:25 <oerjan> in my client ^V^A inserts a ^A control
13:46:42 <Hiato> nope, sorry, which client are you using?
13:46:54 <Hiato> (Pidgin is kinda incomplete)
13:47:13 <Hiato> maybe I should move to miranda or something
13:47:38 <oerjan> if you could insert ^A characters then you could /msg someone ^ATIME^A
13:47:42 <Hiato> because I need Gtalk + MSN + IRC
13:47:59 <oerjan> although possibly you would not see the response
13:48:18 <Hiato> hrmm, did you get something?
13:48:38 <oerjan> but Slereah's client responded
13:48:40 <Hiato> I tryd /msg oerjan TIME
13:48:55 <Hiato> I'll get Miranda now
13:48:55 <oerjan> no i did not see that but i don't think i'm supposed to
13:49:09 <Hiato> oh, well I didn't see anything either
13:49:33 <oerjan> you are not registered
13:49:42 <Hiato> registered in what
13:49:50 <oerjan> only registered nicks can send private messages on freenode
13:50:06 <Hiato> aha, well, I can send them to myself
13:50:11 <Hiato> do I need to register?
13:51:07 <oerjan> sending private messages, keeping others from using your nick
13:51:18 <Hiato> cool, then I'll register
13:51:23 <oerjan> it's an automated thing
13:51:55 <Hiato> how do I initiate it?
13:51:59 <oerjan> although if your client is primitive you may have to send the password manually when you log on
13:52:14 <Hiato> well, miranda is way better
13:52:19 <oerjan> you send messages to nickserv
13:52:37 <oerjan> start with help i guess
13:52:52 <oerjan> oh, and check the freenode webpage perhaps
13:53:11 <oerjan> it has some tips on this
13:53:21 <Hiato> well, im gonna log out, and come back in ith miranda
13:53:28 -!- Hiato has left (?).
13:58:26 -!- Hiato has joined.
13:58:59 <Hiato> Well, Miranda is way Cooler :D
13:59:26 <Hiato> Meh, I cant do either now
13:59:36 * Hiato ponders if /me will work
13:59:56 <Hiato> I was trying to invoke the time command
14:00:22 <oerjan> try /ctcp Slereah TIME
14:00:32 <Slereah> How come it even allows sending a / sentence without the use of ctrl?
14:00:37 <oerjan> you still haven't registered
14:01:51 <oerjan> isn't / entirely in the client...
14:02:22 <Slereah> Well, I've used mIRC for... 7 years now.
14:02:35 <Hiato> I have no idea what is going on here anymore :P
14:04:39 <Hiato> Miranda sucks for IRC
14:05:04 <Hiato> and for just abut everything
14:05:10 <Hiato> I'm gonna go back tp pidgin :(
14:05:15 -!- Hiato has quit ("Blah").
14:06:06 -!- Hiato has joined.
14:11:33 -!- Jontte has joined.
14:20:51 -!- Hiato has left (?).
14:39:49 -!- Hiato has joined.
14:42:03 <Hiato> I think I registered :)
14:42:38 <Hiato> [16:42] CTCP TIME reply from Slereah: Mon Jan 07 15:42:19 2008
14:43:24 <Slereah> Now we can chat in private!
14:43:32 <Slereah> And diss the others in secret!
14:43:41 <Slereah> YOU OTHER PEOPLE HAVEN'T READ THAT
14:43:47 <Hiato> Oh yeah, my childgood dream come true
14:44:02 <Slereah> You're going to be an astronaut?
14:44:14 <Hiato> No, but gonna dis people in private :P
14:44:32 <Slereah> Weren't you already doing that as a child?
14:49:41 <Hiato> Hrmm, let me check if I cant use Pidgin now that Im registered
14:49:49 -!- Hiato has quit ("Blah").
14:50:10 -!- Hiato has joined.
14:50:19 -!- Hiato has left (?).
14:50:58 -!- Hiato has joined.
14:51:21 <Hiato> ctcp is still unknown
14:56:02 <Hiato> ok there is a plugin pack
14:56:07 <Hiato> which I am downloading
14:56:21 <Hiato> that will fix all of these stupid issues in pidgin - hooray :D
14:56:50 <oerjan> that, and world peace.
14:57:11 <Slereah> Hiato : Are you aware that you most probably won't use time more than once every two months?
14:59:29 <Slereah> That's a whole lot of efforts for that!
14:59:31 <Hiato> But Slereah, I can't even log in with Pidgin
14:59:46 <Hiato> I have to manually go /msg balh blah
14:59:56 <Hiato> and pidign>miranda
15:00:00 <Hiato> for many many reasons
15:00:03 <Slereah> That's also what I have to do.
15:03:06 <oerjan> Slereah: HAH! UR CLIENT SUXORZ!!!!
15:03:37 <Slereah> I mostly talk on mIRC, so I don't care.
15:04:47 <Slereah> Since my computer tries not to go off, I just need two keys to log in.
15:05:05 <Slereah> "Up" and "enter" in the server window.
15:06:37 <Hiato> ok, installing plugins, brb
15:06:41 -!- Hiato has quit ("Leaving.").
15:07:34 -!- jix has joined.
15:08:07 -!- Hiato has joined.
15:08:21 <Hiato> Ok, time to put hings to the test
15:08:33 <Hiato> damn, ctcp is still unknown
15:08:40 <Hiato> oh well, what can you do...
15:09:21 <Hiato> that's about all that is left to do :)
15:09:43 <oerjan> you don't happen to have an escape character for inserting controls now?
15:09:59 <Hiato> nope, not that I can see
15:12:02 <Hiato> "Adds additional IRC features, including a customizable quit message, a customizable CTCP VERSION reply, and the / notice command for notices." - I have no idea what that is on about, but that is the description of the plugin
15:13:35 <Hiato> why can't I do it.... boohoooo :( :(
15:23:51 -!- timotiis has joined.
15:25:31 -!- ehirdsleep has changed nick to ehird.
15:27:12 <ehird> idea for what-BASIC-could-have-been
15:27:34 <ehird> 'goto' was dropped early on, and replaced with 'superblocks'
15:27:47 <ehird> could contain multiple commands
15:27:55 <ehird> and there were several commands that could 'jump out' of a superblock
15:28:14 <ehird> (COND X>5 \n PRINT "X = ", X \n X = X + 1 \n NEXT)
15:28:21 <ehird> NEXT is a thinly vailed goto :)
15:28:27 <ehird> to the start of the innermost superblock
15:29:34 -!- jix has quit (Nick collision from services.).
15:29:44 -!- jix has joined.
15:29:58 <ehird> actually, an 'alternate history' esolang family would be interesting
15:30:09 -!- slereah_ has joined.
15:30:10 <ehird> i.e. start from an alternate FORTRAN and Lisp, and evolve from there up to the present day
15:30:31 <ehird> don't like my idea?
15:32:42 <slereah_> I disconnected before hearing it.
15:32:42 <slereah_> [16:27] <ehird> idea for what-BASIC-could-have-been
15:32:42 <slereah_> [16:27] <Slereah> Written in German.
15:32:42 <slereah_> [16:27] <Slereah> If the Nazis won WWII.
15:32:56 <ehird> aww, i followed that up actually
15:33:00 <ehird> you said that yesterday
15:33:12 <ehird> ircbrowse.com, see today's logs for #esoteric, read what i sid
15:34:43 -!- Hiato has quit (Read error: 110 (Connection timed out)).
15:36:44 <slereah_> That's because all alternative history is about the nazis winning WWII.
15:36:44 <slereah_> Or at least involves the nazis at some point.
15:38:12 <slereah_> Hm. What about a language developped from the Analytic Engine?
15:38:24 <ehird> i was thinking less-ancient than that
15:38:29 <ehird> at the time FORTRAN was invented, something changed
15:38:38 <ehird> which influenced LISP to be a lot different
15:38:48 <ehird> and so on -- everything in the modern day completely different
15:39:01 <slereah_> WHAT ABOUT AN ABACCUS BASED LANGUAGE
15:39:09 <oerjan> slereah_: actually some are about the confederates winning the american civil war. or the roman empire never ending.
15:39:27 <oerjan> but that's it, really. ;)
15:39:34 <slereah_> I've got one about discovering stable anti-matter in the 18th century!
15:40:32 * ehird wonders what to name his toy haskell irc client
15:42:31 -!- oerjan has quit ("Good night").
15:45:57 -!- Slereah has quit (Read error: 110 (Connection timed out)).
15:47:30 -!- Slereah has joined.
15:49:45 <ehird> gui libs for haskell!
15:49:58 <ehird> but he disappeared
15:50:43 <Slereah> I can offer all my knowledge on the subject.
15:50:50 <Slereah> But boy, are you in for a disappointment!
16:05:23 -!- slereah_ has quit (Read error: 110 (Connection timed out)).
17:12:30 <Slereah> http://esoteric.voxelperfect.net/wiki/Object_disoriented
17:12:43 <Slereah> Was this especially created to include "fap fap fap" in the code?
17:45:05 <ehird> zsh: bus error ./example
17:45:07 <ehird> my stack smashing has work to do
18:08:11 -!- Hiato has joined.
18:08:35 <Hiato> Wassup all, power went down for the most part of today....
18:14:52 <Hiato> GregorR, can I talk to you?
19:21:30 <ehird> oklopol: I take your scheme interpreter in Python and raise you a fully-R5RS compliant interpreter in Haskell
19:21:34 <ehird> [not yet written, admittedly]
20:00:30 <ehird> 'If a second argument is given, then each element is initialized to fill. Otherwise the initial contents of each element is unspecified.'
20:00:34 <ehird> i think i'll take that literally.
20:00:47 <ehird> (make-vector 3) -> #(unspecified. unspecified unspecified)
20:15:20 -!- Sgeo has joined.
20:37:04 <Hiato> 3 cheers for Midsomer Murders, the best murder mystery show by far :P
20:39:13 <Hiato> but it's soo good :)
20:39:30 <Hiato> compared to african that is ;)
20:55:47 <Hiato> +++[>>+>+<<<-]>>>[<<<+>>>-]<[<<[>>>+>+<<<<-]>>>>[<<<<+>>>>-]<<-]
20:55:57 <Hiato> I think that that is right :)
20:56:04 -!- RedDak has joined.
20:56:08 <Hiato> My second ever BF Prog
21:07:28 -!- timotiis_ has joined.
21:07:32 -!- ehird has changed nick to ehird`.
21:08:34 <oklopol> i got three courses in the uni instead of one!
21:14:28 <oklopol> have to admit only one of them doesn't suck
21:17:46 -!- jix has quit ("CommandQ").
21:20:30 -!- AnMaster has quit ("quitting to restart xorg for new x config").
21:34:14 -!- timotiis has quit (Read error: 110 (Connection timed out)).
21:34:20 -!- puzzlet has quit (Remote closed the connection).
21:34:24 -!- puzzlet has joined.
22:03:42 <ehird`> oklopol: i found the one case that makes my 'functions = tables of infinite size, precalculated' different from the traditional model
22:03:51 <ehird`> oklopol: it makes quicksort, bubblesort and the rest equivilent.
22:04:01 <ehird`> they all map the same values to the same values.
22:04:27 <ehird`> compared to each other, each one is only better because it's efficient at the imagined 'initial calculation'
22:04:38 <ehird`> even if that calculation is lazy :)
22:04:46 <Hiato> What is an easy way to find the two largest possible factors of a number, who's product is the number?
22:05:17 <Hiato> ie should I give 36, it should reply with 6 & 6
22:05:32 <Hiato> should I say 12, it should say 3 &4 not 2 $ 6
22:06:08 <oklopol> Hiato: factorize and take the two biggest...
22:06:11 <Hiato> if there is no easy way, how would I just traditionally factorise a number (being able to deal with 1 and Prime)
22:06:18 <Hiato> yes, but algorithmically
22:06:38 <Hiato> loop trhough everyhting <1/2
22:07:08 <oklopol> let's assume a number is not a prime
22:07:32 <oklopol> now, if n/2-x is one of it's factors, where x is a small integer
22:07:44 <oklopol> let's say n/2 is one of it's factors
22:08:16 -!- RedDak has quit ("I'm quitting... Bye all").
22:08:26 <oklopol> there is another limit for smallest factor.
22:09:03 <oklopol> let's say a number has two factors (if it has more, the factors are no doubt smaller than in the case of two factors, and if it just has itself as a factor, it's a prime)
22:09:23 <oklopol> no, in which case would these two factors be smallest?
22:09:54 <Hiato> when the number is a small integer
22:10:04 <Hiato> because than anything is integer and integer/2
22:10:07 <oklopol> asdf, hard to explain anything clearly when it takes a minute for the test to appear after i've written it..
22:10:22 <oklopol> Hiato: we think in terms of big numbers
22:10:33 <oklopol> since small numbers are trivial cases.
22:10:48 <Hiato> ok, well then Im not sure I get it, when will a big number's 2 factors be smallest?
22:10:52 <Hiato> si that the question
22:11:20 <oklopol> let's say the other factor is /n2
22:11:47 <Hiato> so when it is even
22:12:25 <oklopol> so, let's say the other factor is n/3
22:13:19 <oklopol> (if it has two factors, these factors multiplied amount to the original number)
22:13:38 <Hiato> where n is the number...
22:13:48 <oklopol> (x * n/3 = n <=> x = 3n/n = 3)
22:14:01 <oklopol> sorry, wrote that about a second after my last comment
22:14:27 <oklopol> so, sdo you see in general why the other factor being big amounts to the other one being small?
22:14:29 <Hiato> then I did get it :)
22:14:58 <Hiato> so now, we need to tell which 2 factors tend closest to each other
22:15:17 <oklopol> so... in the case where the two factors are as big as possible
22:15:38 <oklopol> (i mean, as close to each other as possible)
22:15:43 <Hiato> that's if it's square
22:16:14 <Hiato> that's easy though
22:16:21 <Hiato> it's already part of the function
22:16:31 <Hiato> the first line picks up squares and quits if it is...
22:16:50 <Hiato> if Sqr(Trunc(Sqrt(n1)))=n1 then begin result := IntToStr(n1)+' '+IntToStr(n1); exit; end;
22:17:42 <Hiato> oklopol, you there?
22:18:07 <oklopol> yes, but i was waiting for the text to reappear
22:18:17 <oklopol> i think i need to restart xchat
22:18:44 <Hiato> I have a pretty good idea how
22:18:54 <Hiato> get the approximate Sqrt of a num
22:19:01 -!- oklopol_ has joined.
22:19:04 <Hiato> until you find a number
22:19:09 <Hiato> (12:19:02 AM) Hiato: ooh
22:19:10 <Hiato> (12:19:07 AM) Hiato: I have a pretty good idea how
22:19:10 <Hiato> (12:19:17 AM) Hiato: get the approximate Sqrt of a num
22:19:10 <Hiato> (12:19:22 AM) Hiato: and go up/down
22:19:13 <Hiato> (12:19:27 AM) Hiato: until you find a number
22:19:37 <Hiato> does that get the oklopol stamp of approval?
22:20:09 <oklopol_> Hiato: no need to repaste, i always read the logs if i'm away for more than a second :)
22:20:15 -!- bsmntbombdood_ has joined.
22:20:26 <Hiato> lol, sorry, sure :)
22:20:53 -!- bsmntbombdood has quit (Connection timed out).
22:20:55 <Hiato> what is going on here?
22:21:03 <Hiato> and now you're back
22:21:33 <Hiato> anyway, algorithm, like my idea?
22:21:33 <oklopol_> yes i didn't close the other xchat yet
22:21:49 <oklopol_> there are many ways to find a square root
22:22:18 -!- oklopol has quit ("for the need to encumber").
22:22:47 <oklopol_> first time i see my own quit message
22:22:49 <Hiato> what I meant was, I want to return the 2 closest factors of a number, so what I'll do, is assuming it's non-square and non-prime, find the approx square root (easy) then go say down from theat number until I find a factor
22:23:02 <Hiato> then use that and it's compliemtn as the solution
22:23:33 <Hiato> I think that is the easiest way to find the closest two factors of a non-square, non-prime number
22:23:42 <Hiato> actually, it will work for primes!
22:25:21 <oklopol_> you could just loop from 2 to sqrt_of_n
22:25:29 <Hiato> yes, but his is shorter
22:25:34 <oklopol_> because otherwise you'll also find compound factors
22:25:47 <Hiato> assuming that the two closest factors are on either side of root n
22:25:52 <oklopol_> you didn't specify *prime* factors, i just assumed for some reason
22:26:07 <Hiato> lol, sure no problem
22:26:19 <Hiato> I don't need prime factors
22:26:45 <oklopol_> oh, right, then use that algo.
22:27:11 <Hiato> Thanks a tone oklopol (_) :D
22:27:23 <oklopol_> although, in case the number has a lot of small factors, starting from 2 might still be faster....
22:28:02 <Hiato> I don't think so, because I'm working down from root n and stopping on the first factor below or on root n
22:28:04 <oklopol_> since you'd just find them all at once, unlike if starting from the square, in which case you may have to iterate a certain percentage of the number to find the first factor.
22:28:14 -!- AnMaster has joined.
22:28:14 <Hiato> and then dividng to find it's compliment
22:28:48 <Hiato> but starting from 2, I would go through many small factors in a non-prim number
22:28:59 <Hiato> gradually getting bigger
22:29:16 <Hiato> whereas I start more or less where I need to be, and get smaller only if necessary
22:29:51 <oklopol_> hmm... so if you have 60, would you want 30 and 20, or two factors that actually, when multiplied, produce the original number?
22:30:10 <Hiato> so it would be around 10 and 6
22:30:13 <oklopol_> if you want the two *greatest* compound primes, the best way is to factorize.
22:30:33 <oklopol_> good, in that case my advice was of some use.
22:30:57 <Hiato> what is approx root 60?
22:31:20 <Hiato> 1 iteration to solve for 60
22:31:42 <Hiato> p := Trunc(Sqrt(n1));
22:31:42 <Hiato> while frac(n1 / p)<>) do dec(p);
22:31:42 <Hiato> result := IntToStr(p)+' '+IntToStr(n1 div p);
22:31:55 <Hiato> thanks oklopol_ :D
22:32:06 <Hiato> doesn't matter, Trunc, not round ;)
22:32:17 -!- oklopol_ has changed nick to oklopol.
22:32:35 <Hiato> "oklopol_ is now known as oklopol"
22:32:43 <Hiato> is what I was referring to, ps
22:33:06 <oklopol> "about time you realized it was nice that it worked!"
22:33:26 <oklopol> i need to do something... what
22:33:39 <Hiato> amm, work on... er....
22:33:53 <oklopol> i've been thinking about writing a tutorial on continuations in finnish, but there seems to be no term for it :D
22:34:06 <oklopol> and continuation doesn't really fit the language as a loanword
22:34:16 <Hiato> one would assume :P
22:34:38 <Hiato> coin it, become famous etc etc
22:34:45 <oklopol> well, i actually made up a word for it, but it's verrrry comical :)
22:34:53 <oklopol> not that that has ever stopped me before.
22:35:09 <Hiato> I can't say I'd get the joke if you told me it, but sure, hey :)
22:35:14 <oklopol> most unfortunate you wouldn't understand it's funniness if i told it to ya :<
22:35:43 <Hiato> Aha, make a limerick about something or other :)
22:35:55 <Hiato> they're always fun to read (if well done)
22:37:57 <oklopol> looked limerick up on answers (for examples, i knew what it was)
22:37:59 <oklopol> There once was a young man from Kew
22:37:59 <oklopol> Who found a dead mouse in his stew.
22:37:59 <oklopol> Said the waiter, “Don't shout
22:37:59 <oklopol> Or the rest will be wanting one too!”
22:38:11 <oklopol> this one was in roald dahl's matilda
22:38:16 <oklopol> which i read when i was a kid
22:38:25 <oklopol> the translation was unbelievably bad :D
22:38:39 <Hiato> lol, I can believe that :D :D
22:38:41 <oklopol> i haven't realized what the poem meant until now
22:39:15 <Hiato> hrmm... I wrote one somehere
22:39:33 -!- bsmntbombdood_ has quit (Read error: 110 (Connection timed out)).
22:40:05 <Hiato> There was a young schoolboy of
22:40:05 <Hiato> Sakes, who enjoyed writing limericks at
22:40:05 <Hiato> breaks. A fault that would
22:40:05 <Hiato> lurk in all of his
22:40:05 <Hiato> work, was his horrible use of line breaks!
22:40:06 -!- bsmntbombdood_ has joined.
22:40:38 <oklopol> i think "break" rhymes well with "break" :)
22:40:44 <oklopol> although that's not very nice :)
22:41:17 <Hiato> I couldn't say line feeds! :D
22:41:26 <oklopol> all i can do really is point out stuff like that, i don't really have opinions on poetry :P
22:41:28 <Hiato> or carriage returns
22:41:34 <oklopol> but, i always like a metareference
22:41:42 <Hiato> Ha, sure, no problem in that case
22:41:59 <Hiato> therefore, I'll accept you insightful observation as a compliment :P
22:42:35 * Hiato curses his slow enter button pushing habit...
22:43:11 <oklopol> i'll try writing something
22:43:54 <Hiato> I'd like to see what you can come up with, not as a competition but out of interest if someone smart can write poetry :)
22:44:49 * Hiato is sure of that fact ;)
22:45:05 * Hiato is especially impressed with the show of spelling
22:48:16 <oklopol> hmm, this one was a bit perverted, i'll try another approach
22:48:30 <oklopol> after a while, i need to do a thing first ->
22:48:51 <Hiato> perhaps that would be a good idea
22:59:58 <oklopol> could write about malbolge if i knew how it's pronounced.
23:00:24 <Hiato> it's hard to explain
23:01:14 <Hiato> Mell as in the name, with a slight a sound, short though, like sAlt
23:01:32 <Hiato> if that makes sense :)
23:01:53 <Hiato> ok, finished the first algorithm for Text2BF
23:02:13 <Hiato> but it is slightly longer than should be with normal text2bf programmes....
23:02:31 <Hiato> but hey, it was an experiment, now for the next algorithm, that should be shorter by all means
23:03:00 <ehird`> .bf_txtgen Hello, world!
23:03:27 <Hiato> you want to see the generated hello world?
23:03:40 <ehird`> !bf_txtgen Hello, world!
23:03:43 <ehird`> i want to show you egobot's
23:04:03 <Hiato> aha, well, were should I search for this?
23:04:05 <oklopol> gimme a name rhyming with brainfuck, and i can show you my sucky limerick.
23:04:12 -!- timotiis_ has quit ("leaving").
23:04:49 <ehird`> Brainfuck/does not rhyme with hiccup/this is not a haiku
23:05:10 <Hiato> it does, it's called a technical rhyme ;)
23:05:13 <oklopol> ehird`: it's not that strict
23:05:36 <oklopol> it's structure is so bad that makes up for a bad rhyme...
23:06:10 <oklopol> hiccup is not a name though.
23:06:37 <Hiato> and it's also spelled hiccough, but hey ;)
23:06:46 <oklopol> There once was a man called Merlock
23:06:46 <oklopol> Who tried to get employed coding brainfuck
23:06:46 <oklopol> Got depressed and is now hooked on prozak
23:07:20 <Hiato> now, for the critique, Merlock and the rest don't rhyme
23:07:30 <ehird`> that is a program that examines the nature of the universe
23:07:43 <Hiato> cool, is it in oklotalk? :P
23:08:05 <ehird`> if it was in oklotalk, it would be *at least* 5 characters shorter
23:09:32 <oklopol> merlock definately rhymes with brainfuck
23:09:37 <oklopol> you're just pronouncing it wrong
23:11:20 <oklopol> ehird`: it's about 4 characters and a stib in oklotalk.
23:12:09 <oklopol> the real problem with my poem is the forth line has one syllable too many.
23:12:46 <Hiato> yes, well, if you consider that the real problem :P
23:12:53 <ehird`> limerick/dick/now it's a dirty limerick
23:13:52 <Hiato> http://rafb.net/p/EUeKri48.txt
23:14:10 <Hiato> describes the algorithm using the algorithm
23:14:20 <Hiato> run it :) PLEASE ;)
23:15:03 <Hiato> lol, I like frainbuck ;)
23:15:29 <Hiato> there is a typo :P
23:15:37 <Hiato> it says taught, instead of thaught
23:16:23 <ehird`> frainbuck compiles that to 1563 lines of c
23:16:34 <ehird`> after the first section it mostly looks like this
23:16:58 <Hiato> that''s so awesome though :D
23:17:13 <ehird`> t[p+0] += 101; /* i dread to think of this program without my optimizations */
23:17:29 <ehird`> the program takes 0.005sec to run :P
23:17:36 <Hiato> well, actually, it does multiplication
23:17:54 <oklopol> There once was a sensitive poet
23:17:54 <oklopol> Who tried to get a chick he would covet
23:17:54 <oklopol> He wrote a poem for the dame
23:17:54 <oklopol> For nothing good rhymed with "Get in my bed"
23:18:19 <Hiato> but poet and covet don't rhyme ;)
23:18:27 <Hiato> but otherwise it's awesome :D
23:18:36 <ehird`> where's that brainfuck oop code
23:18:50 <Hiato> what, you made ehird`
23:19:01 <oklopol> they do rhyme, stop pronouncing words correctly!
23:19:17 <ehird`> and i want to see allocation, stack management, and pointers in my compiler output :D
23:19:43 <Hiato> oklopol: Sure, my bad ;)
23:19:43 <Hiato> ehird`: You are crazy, don't worry, the nice men in white coats will pick you up soon to go to happy happy fun land :P
23:19:56 <ehird`> once i find it i'll show you
23:20:26 -!- oerjan has joined.
23:20:43 <ehird`> http://www.angelfire.com/tx4/cus/shapes/brain.html
23:21:18 <Hiato> NO WAYS! THIS GUY IS CRAZIEE
23:21:25 <Hiato> holy mother of cheese and whipped cream
23:21:44 <Hiato> well, I believe you now.....
23:21:56 <ehird`> 0.056sec to compile it to C with my compiler :D
23:22:07 <ehird`> Hiato: you know there's a C compiler that compiles to brainfuck, right?
23:22:11 <ehird`> c2bf. GregorR wrote it.
23:22:32 <ehird`> 6193 oop.c <-- only 6x your output code :P
23:22:43 <oerjan> <ehird> gui libs for haskell!
23:22:45 <oerjan> I hear gtk2hs recommended
23:23:09 <Hiato> ehird`: where can I lay my hands on this??
23:23:15 <ehird`> oerjan: yeah but it's gtk.
23:23:28 <ehird`> Hiato: http://esolangs.org/wiki/C2BF
23:23:47 <ehird`> algorithms for procedure calls, heaps and stacks, ... are very standard in BF nowadays
23:24:04 <Hiato> ...lol.... no ways :D :D He-hay :D
23:24:27 <ehird`> VAL 1 VAL 1 VAL 1 ... VAL 1 VAL 0
23:24:50 <Hiato> it's a bit too late now to concentarte on this
23:25:05 <ehird`> c only appears hard to compile because of the syntax.
23:25:07 <Hiato> I will definitely dive into it tomorrow though (well, it is tomorrow ;) )
23:25:11 <ehird`> once you get a parse tree it's trivial :)
23:25:38 <Hiato> heh.. I have my doubts... but then again, you've never been wrong, so I'll believe you on this one :)
23:25:52 <Hiato> anyway, late = tired = typos = annoying
23:26:16 <ehird`> you can write a malloc and free in a few lines though
23:26:23 <ehird`> but networking? haha ;)
23:26:27 <Hiato> will check tomorrow
23:26:30 <oklopol> does it support recursion?
23:26:34 <Hiato> I'll leave it to you
23:26:41 -!- Hiato has quit ("Leaving.").
23:26:49 <oklopol> or actually any kind of continuations...
23:27:04 <oklopol> i don't see how it would if a function just marks the next function to run
23:27:39 <ehird`> i dunno how it does it
23:27:46 <ehird`> but it DOES suppor tit
23:28:16 <ehird`> just, compiled to asm-alike, then CALL -> two functions, and pass the next one
23:28:24 <ehird`> well, don't pass the next one as such
23:28:27 <ehird`> but have a call stack, with it.
23:29:06 <oklopol> i guess you could just split a function into two at every point of a further function call, and then just have a stack
23:29:14 <oklopol> and... there is a stack anyway
23:29:34 <ehird`> i wonder what the opposite of intercal is
23:31:19 <ehird`> i mean: what would it be
23:31:27 <oerjan> like incubus vs. succubus
23:31:28 <ehird`> actually, is there an unlambda compiler out there yet?
23:32:05 <oklopol> i can make you an unlambda to unlambda one
23:32:18 <ehird`> oerjan: not this again
23:32:22 <oerjan> and then have a look at my ocaml one to see if it fits your definition :)
23:32:37 <ehird`> OK apart from that one :-)
23:32:46 <ehird`> (because I want to write an unlambda->C just because it's so damn impractical)
23:33:05 <oerjan> since it is not faster than an interpreter, i assume it doesn't really count...
23:33:46 <ehird`> ... is that even POSSIBLE, short of almost-interpreter?
23:33:54 <oerjan> i understand Mandelson's C interpreter is closer. unfortunately he gets some semantics wrong, d doesn't work properly iirc
23:34:27 <ehird`> is this kind of like befunge was a while ago?
23:34:33 <oerjan> i didn't look too hard at it after i realized it failed on some programs
23:35:40 <ehird`> hmm damnit, i was just about to try underload to c instead
23:35:43 <oerjan> well scheme pioneered CPS compilation a long time ago
23:36:20 <oerjan> i assume a _real_ unlambda compiler would do abstraction _un_elimination
23:36:21 <ehird`> is there a clever trick i could use to support ^ without having an eval?
23:36:34 <ehird`> i could compile everything in (...)s, but push a tuple (func,str)
23:36:37 <ehird`> so you can still do output
23:36:48 <oklopol> isn't ^ then only form of flow control?
23:37:05 <oklopol> and, does it return after the call?
23:37:23 <oklopol> i'll read the underload page
23:37:24 <ehird`> ^ pops the first element off the stack
23:37:28 <ehird`> then puts it after the ^
23:37:49 <ehird`> stack=[], prog=(x)^ ->
23:38:22 <oklopol> (so it does return after the call, btw)
23:38:24 <oerjan> the question (i don't recall) is whether you can construct ()'s at runtime?
23:38:41 <oerjan> if not, compiling all of them should be possible i gues
23:39:00 <ehird`> so, (...) -> compile ..., and push (compiled,"...")
23:39:51 <oklopol> a Encloses the top element of the stack in a pair of parentheses.
23:40:02 <oklopol> * Concatenate the top element of the stack to the end of the second element of the stack.
23:40:11 <ehird`> that still should be compilable
23:40:20 <ehird`> since you could then do ^
23:40:37 <ehird`> wait, i think it might be ok
23:41:02 <ehird`> you can express the latter as (second . top)
23:41:07 <ehird`> where . is composition
23:41:10 <oklopol> it'd be interesting if you could compile programs that use that for flow control *in a certain way* into straightforward C code
23:41:15 <ehird`> and a is (wrapper-func top)
23:41:15 <oerjan> is the semantics of running the concatenation the same as running the parts in order, always?
23:41:18 <ehird`> now we just need to express those in c
23:41:26 <ehird`> oerjan: that is correct
23:41:44 <ehird`> impossible to have unmatching ()s
23:41:55 <oerjan> like unsplitting a loop or the like
23:42:40 <ehird`> a linnked list of all the stack_elem_in_parens to call
23:43:18 <ehird`> a is also trivial, i think
23:43:45 <ehird`> oerjan: i think that's all correct
23:44:30 <ehird`> oerjan: hurry up, tell me how clever i am
23:45:07 <oklopol> oh, right, you can print stuff
23:45:51 <ehird`> oerjan: hurry up you! ;)
23:46:11 <oerjan> i had to look up underload first :D
23:47:18 <ehird`> the hard part is all the manual allocation i have to do
23:48:26 <oerjan> actually a tree might be easier than a linked list
23:48:35 <oerjan> since * is always pairing things
23:49:30 <oerjan> don't you mean the stack contains (abc) ?
23:49:41 <oerjan> er, notation may be confusing
23:50:17 <oerjan> what i mean is, you could still store that as cons a (cons b c)
23:50:17 <ehird`> this is pasted on what S says
23:50:48 <oerjan> i mean, consider (a)(b)*(c)(d)**
23:51:46 <oklopol> (a)(b) -> stack=[(a), (b)]
23:51:59 <oklopol> based on the "hello world" example
23:53:10 <oklopol> and what would (ab) do then?
23:53:12 <ehird`> so, instead of a full list i just need cons.
23:53:24 <ehird`> oerjan: what about NIL?
23:53:29 <ehird`> hey look, we got ourselves a scheme linked list.
23:53:30 <oerjan> but that is a single stack element
23:53:43 <oerjan> you don't need NIL, is my point
23:53:51 <ehird`> I think i'll have: void *(*fp)();
23:53:54 <ehird`> and just realloc it when needed
23:54:25 <oerjan> my point is if you do * as a linked list you will have to do linked list concatenation which is O(n)
23:54:35 <oerjan> while if you just pair, it is O(1)
23:54:56 <ehird`> and i'll add an array length to it
23:55:25 <oerjan> concatenating too arrays is O(n), obviously
23:55:41 <oklopol> it seems once again i'm just being a second oerjan
23:55:53 <ehird`> oerjan: so i would do the (a)(b)*S -> ab on output-time?
23:55:57 <oerjan> my long lost evil twin
23:56:12 <ehird`> oerjan: what about (x)a
23:56:16 <oklopol> ehird`: you don't need to store the string, i think, you can just get the string in real time
23:56:20 <ehird`> void (*fp)(); char *str;
23:56:25 <ehird`> and i have a cons-tree of them
23:56:25 <oklopol> you can unparse the tree into a string
23:56:38 <ehird`> oklopol: as long as i have a string at the end
23:56:42 <ehird`> because (abc)S should output abc
23:56:51 <oerjan> ok that needs some tagging
23:56:57 <ehird`> we need a motto: Compiling Unlambda Is Not Trivial, Your Compiler Has A Bug
23:57:02 <oerjan> to distinguish sublists for elements
23:57:32 <oerjan> i suppose this all depends on what kind of programs you compile
23:57:40 <ehird`> oerjan: all unlambda programs
23:57:44 <oerjan> whether linked lists or trees will be more efficient
23:57:58 <ehird`> typedef struct _ul_obj { void (*fp)(); char *str; struct _ul_obj *cdr; } ul_obj;
23:58:22 <ehird`> (a)(b)* -> (a) with cdr as (b) with cdr as NULL
23:58:45 <oerjan> oh. for unlambda i would _definitely_ expect a tree to be better
23:59:30 <oerjan> i wasn't looking at your struct
23:59:57 <ehird`> (a)(b)(c)*(d)** -> (cons a (cons (cons b c) d))