←2008-01-01 2008-01-02 2008-01-03→ ↑2008 ↑all
00:17:21 <Sgeo> pikhq, Slereah Overand oklopol others
00:17:22 <Sgeo> http://trac2.assembla.com/psox/browser/trunk/ex/example_domain.py
00:34:29 -!- jix has quit (Read error: 131 (Connection reset by peer)).
00:37:54 -!- jix has joined.
00:58:06 <Sgeo> Bye all
00:59:17 -!- Sgeo has quit (Remote closed the connection).
01:31:48 -!- pikhq has quit (Read error: 104 (Connection reset by peer)).
01:33:58 -!- pikhq has joined.
01:38:56 -!- oklofok has joined.
01:39:05 <oklofok> mörning y'all
01:39:13 <Slereah> Well, it's 2 AM here.
01:39:19 <oklofok> here too
01:39:22 <oklofok> oh
01:39:24 <oklofok> 4,
01:39:26 <oklofok> lol
01:39:32 <oerjan> good mourning
01:40:04 <Slereah> But mrning.
01:40:04 <oklofok> i think it's coding time now.
01:40:23 <oklofok> lucky i found this computer
01:40:34 <Slereah> In your dreams?
01:40:46 <oklofok> ...my dreams?
01:40:55 <Slereah> Well, it is 4 AM!
01:41:00 <oklofok> :o
01:41:03 <oklofok> oh my god...
01:41:09 <oklofok> non ascii ...mileys
01:41:14 <oklofok> *smileys...
01:41:16 <Slereah> :
01:41:43 <oklofok> i instaneously hate any client that has the option for that.
01:41:54 <oklofok> who wants to see a yellow idiot.
01:42:18 <tejeez> 8--D
01:42:32 <Slereah> Even if it's this little fellow?
01:42:36 <Slereah> http://www.encyclopediadramatica.com/%E0%B2%A0_%E0%B2%A0
01:45:35 <oklofok> 07:12:01 <oklopol> i wish i were as cool as you all <<< i love reading random #esoteric logs <3
01:46:47 <oklofok> it's a bit scary i usually remember every conversation
01:47:55 <oklofok> 11:31:22 <oerjan> i guess if your head explodes from laughing that would a lollipop.
01:47:57 <oklofok> xD
01:48:16 <oklofok> waking people up here lolling.
01:48:31 <oklofok> guess i'm tired or something
01:48:34 <oklofok> OK, i'll stop now
01:55:56 <oklofok> heh, can't find a text editor in vista :)
01:55:57 <oklofok> )
01:56:23 <Slereah> What, no Notepad?
01:56:38 <oklofok> no, just idiot user.
01:56:48 <oklofok> does someone have vista experience?
01:56:56 <oklofok> hey
01:57:00 <oklofok> windows\!
01:57:06 <Slereah> I didn't hear many good things from Vista.
01:57:10 <oerjan> windows, yes.
01:57:16 <Slereah> So I'm not buying it.
01:57:35 <oerjan> i saw this great link, think it was in the IWC forum...
01:57:59 <oklofok> found notepad
01:59:36 <oerjan> this was it: http://dotnet.org.za/codingsanity/archive/2007/12/14/review-windows-xp.aspx
02:01:05 <oklofok> (+ a 0) {a}
02:01:07 <oklofok> (+ a (S b)) {+ (S a) b}
02:01:08 <oklofok> [@-#2 @-#1]
02:01:33 <oklofok> the syntax is mostly from graphica, which none of you know... but it's pretty intuitive ;-)
02:01:45 <oklofok> the [...] is the part of interest
02:02:00 <oklofok> it describes the mechanism to *reverse* addition
02:02:31 <Slereah> The unholy process of substraction?
02:02:45 <oklofok> with an equation that finds the original params given the result and part of the params.
02:03:11 <oklofok> Slereah: yes, but reversing subtraction is a bit more complex
02:03:19 <oklofok> and real functions are *very*
02:04:24 <Slereah> Very what?
02:05:10 <oklofok> (- a 0) {a}
02:05:12 <oklofok> (- (S a) (S b)) {- a b}
02:05:14 <oklofok> [@+#2 #1-@]
02:05:27 <oklofok> lol, was soooo hard to solve a-b=c for b xD
02:05:39 <oklofok> @ is the result.
02:05:50 <Slereah> Is this Oklotalk or something?
02:05:54 <oklofok> no
02:06:04 <oklofok> this is something we discussed earlier with hiato
02:06:04 <Slereah> Reminds me of recursive functions.
02:06:13 <oklofok> well, sure
02:06:21 <Slereah> With the silly f(a,b) notation for operatos
02:06:23 <oklofok> the interesting part is the pattern matching thingie.
02:06:50 <oklofok> i'm not reinventing the whole way we think about computation when i make a language...
02:07:58 <oklofok> numbers can be described with anything that can be inc'd, dec'd and checked for null, tuples offer a trivial way
02:08:08 <oklofok> oh, right, multiplication and division
02:08:20 <oklofok> or at least multiplication :-)
02:08:31 <oerjan> go forth and multiply!
02:08:44 <Slereah> Even adders?
02:08:52 <Slereah> I heard they need logs to multiply.
02:08:54 <oerjan> use a log table, silly!
02:09:23 <oklofok> oerjan: much easier with peano arithmetic! thanks, why didn't i think of that...
02:09:46 <oklofok> hmm... even divisors might be interesting when it comes to pattern matching...
02:10:02 <Slereah> Wlel, it is quite easy with Peano!
02:10:04 <Slereah> http://membres.lycos.fr/bewulf/Russell/Calc9.txt
02:10:21 <oklofok> the pattern n@(_%3) would only pmatch numbers divisible by 3
02:10:24 <Slereah> I should finish that Peano calculator someday.
02:10:31 <oklofok> @ is what it is in haskell
02:10:54 <oklofok> if division is only defined when numbers actually are divisible, that is.
02:11:49 <oklofok> it'd be nice if that actually arose naturally from what i'm currently doing here... but i don't think it's possible to get even trivial stuff like that to work...
02:11:52 <oklofok> we'll see i guess
02:12:45 <oklofok> (- 0 b) :(
02:12:50 <oklofok> nice syntax for failing? :P
02:21:26 <oklofok> (/ a 0) (/ a@(a<b) b) <>
02:21:27 <oklofok> (/ 0 b) {0} (/ (a+b) b@(S bt)) {S a*bt}
02:21:29 <oklofok> {- a/b=c <=> a=bc <=> b=a/c -}
02:21:31 <oklofok> [@*b @/a]
02:21:39 <oklofok> shall i explain?
02:21:51 <oklofok> i shall.
02:22:25 <oklofok> a function consists basically of patterns
02:22:33 <oklofok> (...) is a pattern
02:22:56 <oklofok> if a pattern matches the argument, the vars are set and the next {...} after that is evaluated
02:23:16 <oklofok> unless before that, a <> is found
02:23:23 <oklofok> in which case the whole function fails.
02:23:37 <oklofok> so, if it was used in a pattern match or something, that would fail.
02:23:52 <oklofok> now, division fails when a number is divided by another number bigger than it
02:24:00 <oklofok> and, if you divide by zero
02:24:14 <oklofok> also, it's wrong... whoops
02:25:14 <oklofok> second line should be (/ 0 b) {0} (/ a (S 0)) {a} (/ (a+b) b@(S bt)) {S a/bt}
02:26:00 <oklofok> so, zero divided by something is 0, something divided by one is something, and the last is the general case
02:26:11 <oklofok> notice the (a+b) pattern there
02:27:03 <oklofok> it would first find b, which gets the value of the second arg, while bt get's that-1, after that, the a pattern (a+b) gets the value of b
02:27:14 <oklofok> now, we defined the inverse of addition earlier
02:27:22 -!- jix has quit ("This computer has gone to sleep").
02:27:23 <oklofok> that will be used to find the value of a for a given b
02:27:29 <oklofok> anyone at all interested?
02:28:04 <oklofok> (a<b) is interesting, basically booleans are represented as fail/no fail
02:29:09 <Slereah> Hm.
02:29:23 <Slereah> Maybe I should try some interpreter for recursive functions.
02:29:27 <Slereah> For the lulz.
02:31:37 <oklofok> haha, cons works without any code, actually xD
02:32:00 <Slereah> Cons?
02:32:24 <oklofok> (Cons a b) will produce the tuple (Atom(cons) ... ...); if there is no pattern starting with that atom, there will be no substitution and that will just stay as it is!
02:32:29 <oklofok> i love tree rewriting <3
02:32:31 <oklofok> Cons?
02:32:44 <oklofok> the cons lisp uses to represent lists
02:32:51 <oklofok> among other langas
02:32:55 <oklofok> *langies
02:32:57 <Slereah> I don't speak Lisp.
02:33:25 <oklofok> [1, 2, 3] -> (Cons 1 (Cons 2 (Cons 3 Nil)))
02:33:43 <oklofok> basically just a way to use tuples for lists.
02:34:08 <oklofok> although in list cons is lowercase, but i guess not important
02:36:44 <oklofok> *lisp
02:49:41 <oklofok> (Qsort list@(Scramble (++ (lpart@(PivotBy <=! list pivot)
02:49:43 <oklofok> pivot:rpart@@(PivotBy >! list pivot)))) {(Qsort lpart)++pivot:(Qsort rpart)}
02:49:44 <oklofok> (PivotBy Test (Scramble list)@(Reduce (Test pivot) list) pivot) {list}
02:49:57 <oklofok> xD
02:50:11 <oklofok> i have to rethink a bit ;)
02:50:35 <oklofok> but, i think it's entirely possible to do quicksort by pattern matching, guess i should see how prolog does it
02:51:11 <oklofok> the part to notice there is lpart++pivot:rpart, letting the interps choose how to cut it :D
02:51:29 <oklofok> could be random by default, when ambiguous match.
02:51:49 <oklofok> also, @@->@
02:52:49 <oklofok> the function that scrambles a list in random order, Scramble, can be used to signify there is no information about the list's structure, and it can be bruteforced to fit the rest of the pattern
02:54:31 <oklofok> where the actual quicksort algo comes in, is that the brute force will instantly find the solution for a single step, since it knows the whole list needs to be cut in to rpart, pivot and lpart (defined in ++...) and the rules do not overlap
02:55:54 <oklofok> but, requires a lot of increase in sophistication of course.
02:57:48 <oklofok> oh, right, i could call Scramble Perm like prolog... would sound a bit less hacky :)
02:57:53 <oklofok> hacky as in hack'y
03:06:51 <oklofok> okay, some operations are used for their failure detection, like < and == sometimes
03:06:57 <oklofok> and others just for their result.
03:07:06 <oklofok> some operators, however, need both
03:07:26 <oklofok> i was thinking <! for the "strict" one which may fail
03:07:34 <oerjan> General failure eating hard disk
03:07:38 <oklofok> but then again, <? for "does this work? :\"
03:08:06 <oklofok> what do ya think? this is just convention, so feel free to answer without much thinking.
03:10:07 <oklofok> hmm... actually, booleans could be failure/identity
03:10:14 <oklofok> so you could match on (> n 3)
03:10:30 <oklofok> to get anything bigger than 3 in, and failing otherwise
03:17:04 -!- oerjan has quit ("Good night").
03:18:11 <oklofok> (Tobin 0) {0} (Tobin 1) {1}
03:18:13 <oklofok> (ToBin n*!2) {0:(ToBin n)}
03:18:15 <oklofok> (ToBin n*2) {1:(ToBin n)}
03:19:01 <oklofok> actually...
03:19:21 <oklofok> i have no idea what it means for multiplication to be strict... :)
03:20:44 <oklofok> oh, right...
03:21:07 <oklofok> non strict multiplication can produce either 4 or 5 when 2 is multiplied by 2 :)
03:31:32 <Slereah> What's the difference between [a,b] and (a,b) on the snake?
03:31:48 <Slereah> I suddenly get parenthesis when I was expecting some list brackets.
03:32:01 <oklofok> list, tuple
03:32:07 <oklofok> in that order
03:32:43 <Slereah> Why do I suddenly get tuples?
03:33:09 <oklofok> i have no idea.
03:33:27 <oklofok> you obviously have () where you should have [] somewhere?
03:34:54 <Slereah> Well, I don't use use [] or ().
03:35:03 <Slereah> Just sequence functions.
03:35:10 <oklofok> oh
03:35:16 <Slereah> But well, let's just cheat.
03:35:37 <oklofok> yeah
03:35:40 <oklofok> let's
03:37:12 <Slereah> Poifect.
03:41:43 <Slereah> [[['plus', ['n1', '0']], ['p', ['1', '1'], 'n1']], [['plus', ['n1', ['s', 'n2']]], ['s', [['p', ['3', '3'], ['n1', 'n2', ['plus', ['n1', 'n2']]]]]]]]
03:41:46 <Slereah> Thar.
03:41:51 <Slereah> That should do it.
03:42:00 <Slereah> Now, to make stuff with that.
03:42:23 <oklofok> p [1 1] n1?
03:42:36 <Slereah> It's from this :
03:42:37 <Slereah> plus(n1,0()) = p(1,1)(n1)
03:42:37 <Slereah> plus(n1,s(n2)) = s(p(3,3)(n1,n2,plus(n1,n2)))
03:43:13 <oklofok> oh, right, aren't those trivial recursive functinos?
03:43:16 <oklofok> functions
03:44:09 <Slereah> Primitive, even.
03:44:15 <oklofok> errr, right
03:44:25 <oklofok> sounded a bit weird
03:44:45 <oklofok> but all i could think was partial or trivial
03:52:29 <oklofok> okay, my second idea for the night
03:52:43 <oklofok> this is for Cise, my conciseness oriented lang
03:52:47 <oklofok> Afl*2+
03:52:49 <oklofok> 1,0,0,1,1 -> 19
03:52:50 <oklofok> (((((1*2 + 1)*2 + 0)*2 + 0)*2 + 0)*2 + 1)
03:53:01 <oklofok> Afl takes two functions, and a list
03:54:04 <oklofok> it then makes the list's head "result", then continuously applies the first function to the list and combines it with the next element of the list with the second function
03:54:10 <oklofok> now, the beauty lies in parsing.
03:55:33 <oklofok> so...
03:56:10 <oklofok> Afl needs two functions as params. if it should parse what follows it as (Afl * 2), it would only get one function
03:56:17 <oklofok> so it gathers 2 muct belong to *
03:56:31 <oklofok> so, this becomes (Afl (* 2) +)
03:56:34 <oklofok> which is correct.
03:56:51 <oklofok> currying + prefix - spaces == rox
03:57:01 <oklofok> rox as in cool, i guess
03:57:21 <oklofok> also type inference to determine parsing :)
03:57:44 <oklofok> blah
03:58:21 <oklofok> you're not getting at al excited :-)
03:58:25 <oklofok> *all
03:58:33 <oklofok> gonna do another invention ->
03:58:41 <oklofok> this time something totally awesome.
04:10:14 <oklofok> hmm, think i got it
04:38:56 <oklofok> 10:33:34 <lament> people put in in the url in programming-related channels because of flooding
04:38:57 <oklofok> 10:33:38 <lament> i don't think we ever had that problem
04:52:38 <Slereah> Man. That primitive function idea is harder than originally thougt!
04:54:36 <oklofok> hehe
04:54:41 <oklofok> i think i need to sleep a while.
04:54:44 <oklofok> cya ->
04:55:06 <Slereah> Bye.
04:55:15 -!- GreaseMonkey has quit ("Welcome to 2008. I will be your tour guide.").
05:03:01 -!- calamari has quit ("Leaving").
06:39:26 -!- Slereah has quit (Read error: 110 (Connection timed out)).
06:52:02 -!- slereah_ has joined.
06:52:13 -!- slereah_ has changed nick to Slereah.
06:52:15 -!- Slereah has changed nick to slereah_.
06:52:36 -!- slereah_ has changed nick to Slereah.
07:10:26 -!- slereah_ has joined.
07:19:57 <slereah_> "It is not immediate that the predecessor function can be reduced to an iteration, and hence is representable in the ?-Calculus. It was Kleene [1935] who saw how to do this, apparently during a visit to the dentist."
07:19:59 <slereah_> Heh.
07:28:12 -!- Slereah has quit (Read error: 110 (Connection timed out)).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:44:37 -!- faxathisia has joined.
09:43:20 -!- Hiato has joined.
09:50:11 <Hiato> Wassabi
09:56:24 <Hiato> Oklopol, did you get time yesterday to start on the spec? Or were you too busy ;) (heh)
10:15:16 -!- Hiato has quit ("Leaving.").
12:11:45 -!- Sgeo has joined.
12:12:08 <Sgeo> I think I dreamed about PSOX last night :/
12:13:37 <faxathisia> hehe
12:15:59 -!- jix has joined.
12:17:22 <Sgeo> Hi [PSOX] jix [MUST.. WORK.. ON.. PSOX!!!]
12:21:42 <Sgeo> I considered taking a hiatus from PSOX, but can't help thinking that I shouldn't do that until PSOX 1.0
12:21:55 <jix> hi
12:21:57 <jix> brb
12:21:58 -!- jix has quit ("CommandQ").
12:22:26 -!- jix has joined.
12:23:41 <Sgeo> wb
12:24:17 -!- helios_24c3 has joined.
12:24:28 -!- helios_24c3 has quit (Connection reset by peer).
12:54:23 -!- Sgeo has quit (Remote closed the connection).
13:16:35 -!- Sgeo has joined.
13:16:52 * Sgeo wonders if he can finish the core of PSOX.py today
13:17:02 <Sgeo> Then all that would be left is speccing and implementing the builtin domains
13:21:01 -!- oerjan has joined.
13:28:12 -!- pikhq_ has joined.
13:28:59 -!- pikhq has quit (Read error: 104 (Connection reset by peer)).
13:29:52 <oerjan> slereah_: kleene's dentist had this weird habit of removing all his teeth and then reinserting those that were healthy.
14:15:55 -!- jix has quit ("CommandQ").
14:20:03 -!- RedDak has joined.
14:25:48 <Sgeo> Hi RedDak
14:25:56 * Sgeo makes healthy progress on PSOX
14:26:08 <Sgeo> Although I'm starting to think that PSOX may be bad for my health
14:27:28 -!- mwizard has joined.
14:27:54 -!- mwizard has left (?).
15:51:05 <Sgeo> PSOX.py is for Python 2.5 now
15:56:01 -!- puzzlet has quit (Remote closed the connection).
15:56:08 -!- puzzlet has joined.
16:06:05 -!- puzzlet has quit ("Lost terminal").
16:06:25 -!- puzzlet has joined.
16:21:32 -!- RedDak has quit (Remote closed the connection).
16:25:28 -!- pikhq_ has changed nick to pikhq.
16:26:36 -!- puzzlet has quit (Remote closed the connection).
16:26:43 -!- puzzlet has joined.
16:41:00 * slereah_ just received this book : http://www.amazon.com/Undecidable-Propositions-Unsolvable-Computable-Functions/dp/0486432289/ref=pd_bbs_sr_1/002-0209491-2396801?ie=UTF8&s=books&qid=1191580925&sr=8-1
16:42:02 <faxathisia> oh that looks well good
16:42:05 <faxathisia> I want that
16:43:19 -!- faxathisia has quit ("Leaving").
16:44:50 <slereah_> The cover seems to be made of those m-functions of Turing
16:45:49 -!- pikhq has quit (Read error: 104 (Connection reset by peer)).
16:50:04 -!- tesseracter has quit (Remote closed the connection).
16:50:24 -!- pikhq has joined.
16:55:46 -!- oerjan has quit ("Fnord, er Food").
16:56:25 -!- slereah_ has changed nick to Slereah.
16:58:49 <Sgeo> Hi pikhq
16:59:00 <Sgeo> Is it ok if PSOX.py requires Python 2.5?
17:00:18 <Slereah> "No, start over!"
17:01:59 -!- pikhq_ has joined.
17:02:10 -!- pikhq has quit (Nick collision from services.).
17:02:15 -!- pikhq_ has changed nick to pikhq.
17:06:15 -!- puzzlet has quit (Remote closed the connection).
17:06:19 -!- puzzlet has joined.
17:06:48 -!- wooby has joined.
17:10:52 -!- wooby has quit (Client Quit).
17:11:30 -!- tesseracter has joined.
17:23:02 -!- RedDak has joined.
17:28:30 -!- puzzlet has quit (Remote closed the connection).
17:28:37 -!- puzzlet has joined.
17:55:53 -!- puzzlet has quit (Remote closed the connection).
17:56:01 -!- puzzlet has joined.
18:07:53 <Sgeo> http://trac2.assembla.com/psox/browser/trunk/impl/psox/psoxtypes.py
18:09:07 <Sgeo> Anyone awake?
18:09:44 <Slereah> I'm typing in my sleep.
18:40:20 <SimonRC> hi
18:40:57 * SimonRC wonders if LL actually have enough cash to handle everyone withdrawing their L$ at once...
18:42:25 -!- puzzlet_ has joined.
18:42:30 -!- puzzlet has quit (Remote closed the connection).
19:09:40 -!- jix has joined.
19:25:04 -!- ihope has joined.
19:25:15 <ihope> Ello.
19:25:25 -!- ihope has quit (Client Quit).
19:26:51 -!- ihope has joined.
19:26:57 <ihope> Well, that was interesting.
19:27:22 <ihope> I guess freenode and ircatwork don't like each other right now.
19:27:42 <ihope> Anyway, is there any hope of me being able to make an esolang based on knot theory?
19:31:07 <ihope> I'm considering tossing out the knots and making it links of unknots.
19:36:04 <ihope> Or have a tape of "strings" forming an infinite braid.
19:36:08 <Sgeo> re ihope
19:36:17 * Sgeo is working on PSOX
19:36:29 <Sgeo> I got psoxtypes.py down
19:36:39 <Sgeo> First part of the implementation that's FINISHED
19:36:50 <Sgeo> http://trac2.assembla.com/psox/browser/trunk/impl/psox/psoxtypes.py
19:36:51 <ihope> Yay :-)
19:37:10 <Sgeo> Also, is http://trac2.assembla.com/psox/browser/trunk/impl/psox/fd.py sane?
19:47:56 <ihope> Oh, if you orient each unknot and span them with surfaces, you can count the number of times each unknot goes through each other unknot's surface and in which direction, and say that opposite directions cancel each other out...
19:49:38 <Sgeo> There is a definate lack of ihope in Sine
19:50:38 <ihope> Indeed.
19:51:43 <ihope> What was that CGI:IRC one?
19:57:37 -!- puzzlet_ has quit (Read error: 104 (Connection reset by peer)).
19:57:42 -!- puzzlet has joined.
20:04:26 -!- pikhq_ has joined.
20:04:39 -!- puzzlet has quit (Remote closed the connection).
20:04:42 -!- puzzlet has joined.
20:05:48 -!- pikhq has quit (Read error: 104 (Connection reset by peer)).
20:07:16 -!- pikhq_ has changed nick to pikhq.
20:12:40 -!- puzzlet has quit (Remote closed the connection).
20:12:44 -!- puzzlet has joined.
20:17:06 -!- Jontte has joined.
20:58:28 -!- pikhq has quit (Read error: 104 (Connection reset by peer)).
21:01:55 -!- pikhq has joined.
21:05:31 -!- jix has quit (Nick collision from services.).
21:05:41 -!- jix has joined.
21:11:19 -!- puzzlet_ has joined.
21:11:24 -!- puzzlet has quit (Remote closed the connection).
21:27:59 -!- jix has quit (Nick collision from services.).
21:28:09 -!- jix has joined.
21:44:47 -!- calamari has joined.
21:46:37 -!- oerjan has joined.
21:55:07 -!- jix has quit (Nick collision from services.).
21:55:17 -!- jix has joined.
22:24:20 -!- GreaseMonkey has joined.
22:28:53 -!- oklofok has left (?).
22:33:32 -!- Jontte has quit ("Konversation terminated!").
22:36:18 -!- Jontte has joined.
22:47:18 -!- Jontte has quit (Remote closed the connection).
22:49:53 -!- Jontte has joined.
23:55:12 -!- jix has quit ("CommandQ").
23:58:31 -!- RedDak has quit (Remote closed the connection).
←2008-01-01 2008-01-02 2008-01-03→ ↑2008 ↑all