←2006-12-28 2006-12-29 2006-12-30→ ↑2006 ↑all
00:03:56 <CakeProphet> Ima test the iterator thing to see if it works without the list.
00:08:46 <CakeProphet> {(Nil)[(iter),][(null?)1]} {(Con) [(c__)a2=b1=] [(car)a*] [(cdr)b*] [(null?)0] [(iter)(_fun)1=,a*(_fun)*?(_fun)*b(iter).?] } {M[m(_o)O! ! "H" "e" "l" "l" "o" " " "W" "o" "r" "l" "d" "!"(_a)(Con)! (_a)(Con)!(_a)(Con)!(_a)(Con)!(_a)(Con)!(_a)(Con) (_o)o.(_a)(iter).]}
00:09:00 <CakeProphet> !glass {(Con) [(c__)a2=b1=] [(car)a*] [(cdr)b*] [(null?)0] [(iter)(_fun)1=,a*(_fun)*?(_fun)*b(iter).?] } {M[m(_o)O! ! "H" "e" "l" "l" "o" " " "W" "o" "r" "l" "d" "!"(_a)(Con)! (_a)(Con)!(_a)(Con)!(_a)(Con)!(_a)(Con)!(_a)(Con) (_o)o.(_a)(iter).]}
00:13:05 <CakeProphet> !glass {(Con) [(c__)a2=b1=] [(car)a*] [(cdr)b*] [(null?)0] [(iter)(_fun)1=,(car)*?(_fun)*?(cdr)*?(iter)*?] } {M[m(_o)O! ! "H" "e" "l" "l" "o" " " "W" "o" "r" "l" "d" "!"(_a)(Con)! (_a)(Con)!(_a)(Con)!(_a)(Con)!(_a)(Con)!(_a)(Con) (_o)o.(_a)(iter).]}
00:30:25 <CakeProphet> !ps
00:30:28 <EgoBot> 2 CakeProphet: ps
00:37:30 -!- bsmnt_bot has quit (Read error: 110 (Connection timed out)).
00:38:35 -!- bsmntbombdood has quit (Read error: 110 (Connection timed out)).
00:41:46 <CakeProphet> !glass {(BFfeed) [(c__) (_i)I! (code)(_l)l.?= (pos)=<1>] [(next)(_s)S! (_a)!a (code)*(pos)*(_s)i.? (pos)(pos)*<1>(_a)a.=]} ((Array)(c__
00:41:49 <EgoBot> OK
00:42:07 <oklopol> !ps
00:42:11 <EgoBot> 2 oklopol: ps
00:42:21 <CakeProphet> Building a BF interpreter in Glass :D
00:42:24 <oklopol> :D
00:42:28 <oklopol> i thought so
00:42:35 <oklopol> now what is !ps?
00:42:44 <CakeProphet> Shows the process list.
00:42:57 <CakeProphet> Oh my...
00:43:01 <oklopol> huh?
00:43:33 <CakeProphet> I have no clue how to implement an array without using a linked list or something.
00:43:41 <CakeProphet> and my list constructor is still buggy :/
00:44:16 <CakeProphet> hmmm... I could use the stack as my array.
00:44:21 <oklopol> no
00:44:27 <oklopol> don't :\
00:44:54 <oklopol> make an array class for numbers, easy! :D
00:45:08 <CakeProphet> hmmm... yeah that would be hard to handle if it were right on the stack.
00:45:21 <oklopol> hmm
00:45:26 <oklopol> you could make it a string
00:45:39 <oklopol> you can extract a char from a string
00:45:43 <CakeProphet> Split by whitespace?
00:45:45 <oklopol> and convert it to a number
00:45:50 <oklopol> no
00:45:57 <oklopol> each character is a number
00:46:13 <CakeProphet> You would need some symbol to specify where one number begins and where the next ends.
00:46:25 <CakeProphet> such as.... space :D
00:46:41 <pikhq> CakeProphet: I thought Gregor had that as a glass example.
00:47:13 <CakeProphet> I haven't seen it.
00:47:14 <pikhq> CakeProphet: Such as, like, realising that a string is an array of chars.
00:47:33 <CakeProphet> Oh... *thumpforehead*
00:47:48 <CakeProphet> For some reason I was thinking it HAD to be in numbers.
00:47:58 <CakeProphet> the thought never occured to me that I could use the CHARACTERS.
00:48:15 <CakeProphet> hmmm... can Glass strings represent non-printing characters?
00:48:16 <oklopol> i tried to tell you but i was too tired :(
00:48:24 <oklopol> yes
00:48:30 <oklopol> i mean, obviously
00:48:47 <pikhq> It's stored internally as a C++ string, which is stored internally in <string> as C strings with metadata.
00:48:59 <CakeProphet> shush.
00:49:12 <oklopol> you can't have 0?
00:49:28 <pikhq> oklopol: Part of the metadata in a C++ string is size.
00:49:43 <pikhq> Meaning that a string of 0's is perfectly acceptable.
00:49:45 <oklopol> oh i misunderstood you, sorry
00:49:48 <oklopol> yep
01:00:40 <CakeProphet> Hmmm...
01:00:54 <CakeProphet> in Glass... slicing is the equivalent to C slicing, no?
01:00:59 <CakeProphet> starting a 0?
01:13:23 <oklopol> yes
01:13:29 <oklopol> i mean, obviously
01:13:35 <CakeProphet> ....
01:13:36 <oklopol> :D
01:13:41 <CakeProphet> NOT EVERYTHING IS OBVIOUS.
01:13:44 <CakeProphet> >.<
01:14:46 <oklopol> !glass {M[m"abc"1(_o)O!(_s)0S!s.?(_o)o.]}
01:14:47 <oklopol> ...
01:15:03 <oklopol> !glass {M[m"abc"1(_o)O!0(_s)S!s.?(_o)o.]}
01:15:43 <oklopol> !glass {M[m"abc"1(_o)O!(_s)0S!d.?(_o)o.]}
01:16:04 <oklopol> !glass {M[m"abc"1(_o)O!(_s)0S!d.?(_o)o.?]}
01:16:07 <EgoBot> abc
01:16:15 <oklopol> !glass {M[m"abc"2(_o)O!(_s)0S!d.?(_o)o.?]}
01:16:17 <EgoBot> abc
01:16:18 <CakeProphet> {(BFfeed) [(c__) (_i)I! (code)(_l)l.?= (pos)=<1>] [(next)(_s)S! (_a)!a (code)*(pos)*(_s)i.? (pos)(pos)*<1>(_a)a.=]} {(StringSpam)[(lol)(_a)A!(_s)S!(str)2=(num)1=(outstr)""=/(num)(outstr)(outstr)*(str)*(_s)a.?(pos)(pos)*<1>(_a)a.?\(outstr)*]} ((Array)[(c__ ) (_mul)(StringSpam)!(_s)S! (array)<0>(_s)(ns)<15000>= (ptr)<0>=] [(set)(_s)S! (_ps)2= (_str)1(_s)(ns).?= (array)*(_ps)(_s)d.? (_be)1=...
01:16:20 <CakeProphet> ...(_af)1= (array)(_be)*(_str)*(_af)*(_s)a.?(_s)a.?=] [(move)(_a)A! (_inc)1= (ptr)(ptr)*1(_inc)(_a)a.?=] [(get) (_s)S! (_s)i.}
01:16:21 <CakeProphet> Is what I've got so far.
01:17:06 <oklopol> !glass {M[m"abc"<2>(_o)O!(_s)0S!d.?(_o)o.?]}
01:17:07 <EgoBot> c
01:17:14 <oklopol> !glass {M[m"abc"<1>(_o)O!(_s)0S!d.?(_o)o.?]}
01:17:17 <EgoBot> bc
01:17:19 <oklopol> !glass {M[m"abc"<0>(_o)O!(_s)0S!d.?(_o)o.?]}
01:17:23 <EgoBot> abc
01:17:47 <oklopol> i don't read glass that fluently yet :)
01:17:54 <oklopol> but i can read that
01:18:00 <pikhq> Nobody really does.
01:18:10 <CakeProphet> I can read my own.
01:18:14 <CakeProphet> but other peoples becomes difficult.
01:18:22 -!- jix_ has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
01:18:26 * pikhq doesn't do Brainfuck, either. . .
01:18:32 <pikhq> And I code in it nearly daily.
01:19:34 <CakeProphet> You sorta have to think of it as dumping shit onto a big pile.
01:19:41 <CakeProphet> and then when you see certain symbols... start moving it around.
01:20:01 <CakeProphet> usually you see the action before you see the subject... but not in postfix.
01:20:28 <oklopol> [(c__) (_i)I! (code)(_l)l.?= (pos)=<1>]
01:20:33 <oklopol> sure about this?
01:20:46 <CakeProphet> typo
01:20:47 <oklopol> can you explain it?
01:20:51 <CakeProphet> should (_i)i.
01:21:00 <oklopol> that i thought
01:21:06 <oklopol> (pos)=<1>?
01:21:37 <CakeProphet> hmmm..
01:21:39 <CakeProphet> should be 0
01:21:49 <oklopol> (pos)<0>=
01:21:49 <CakeProphet> I was thinking Glass might have moved up the slice notation a notch.
01:21:51 <oklopol> ?
01:21:51 <CakeProphet> for some reason.
01:21:56 <CakeProphet> yeah
01:22:29 <oklopol> k first func read and debugged :)
01:22:53 <CakeProphet> StringSpam is just a little thing for "string multiplication"
01:23:11 <CakeProphet> so I can fill up a string with 15000 void characters quickly.
01:23:26 <oklopol> [(next)(_s)S! (_a)!a (code)*(pos)*(_s)i.? (pos)(pos)*<1>(_a)a.=]
01:23:27 <oklopol> k
01:23:36 <oklopol> (_a)!a -> (_a)A! ?
01:23:50 <CakeProphet> Yah
01:24:30 <oklopol> you should take advantage of oo!
01:24:46 <CakeProphet> I'm trying to
01:24:50 <oklopol> don't use an int as the pointer, have a class with .(inc) and so on
01:24:57 <CakeProphet> ....
01:25:04 <oklopol> (pos)(pos)*<1>(_a)a.=
01:25:06 <CakeProphet> that would take way more coding.
01:25:07 <oklopol> not pretty
01:25:15 <oklopol> (pos)(inc).?
01:25:22 <CakeProphet> It's prettier than going through the trouble of making a class.
01:25:25 <oklopol> tho everything is immutable
01:25:37 <oklopol> that's not the point, use OO! :D
01:25:39 <oklopol> :DD
01:25:40 <oklopol> .DDDDDD
01:25:44 <oklopol> k
01:25:51 <oklopol> that way is good
01:25:51 <CakeProphet> ....there's only so much abstraction that's nessicary.
01:26:12 <oklopol> *necessary
01:26:15 <CakeProphet> Glass is so terrible because it forces you to abstract fairly low-level operations.
01:26:16 <oklopol> (sorry)
01:26:20 <Sukoshi> 15,000 void characters?
01:26:30 <CakeProphet> Yeah, a BF array initialized to 0
01:26:31 <oklopol> 30000 is teh standard! :D
01:26:37 <CakeProphet> oh fine... 30000
01:26:39 <CakeProphet> :P
01:26:40 <Sukoshi> Oh. You mean null characters.
01:27:44 <oklopol> BfFeed will be expanded later on with loopz right?
01:28:01 <Sukoshi> CakeProphet: Expand as you go along.
01:28:12 <Sukoshi> 30,000 bytes is a greedy amount of memory.
01:28:14 <oklopol> Sukoshi, can be done later
01:28:32 <Sukoshi> Hey, if I can make expanding arrays in INTERCAL.....
01:28:40 <oklopol> :D
01:28:51 <oklopol> i wanna sleep, why can't i :(
01:29:05 <Sukoshi> Who wants to sleep? :O
01:29:13 <Sukoshi> I sleep out of mental neccessity.
01:29:22 <oklopol> true, but i have to wake up early
01:29:28 <Sukoshi> How early?
01:29:31 <oklopol> 9
01:29:34 <oklopol> 3:23 now
01:29:38 <Sukoshi> ...........................
01:29:54 <oklopol> i usually wake up 13.00 or 14.00
01:30:07 <oklopol> and i ALWAYS have an alarm clock on at 10.00
01:30:25 <oklopol> just never wakes me up... maybe i'm lucky tomorrow
01:30:57 <Sukoshi> I sleep at 3, wake up at 6:30, with one 30 min nap in the day.
01:31:11 <oklopol> well, i envy you then
01:31:46 <oklopol> less sleep, longer life
01:31:51 <CakeProphet> {(BFfeed) [(c__) (_i)I! (code)(_i)i.?= (pos)=<0>] [(next)(_s)S! (_a)!A (code)*(pos)*(_s)i.? (pos)(pos)*<1>(_a)a.=]} {(StringSpam)[(lol)(_a)A!(_s)S!(str)2=(num)1=(outstr)""=/(num)(outstr)(outstr)*(str)*(_s)a.?(pos)(pos)*<1>(_a)a.?\(outstr)*]} ((Array)[(c__ ) (_mul)(StringSpam)!(_s)S! (array)<0>(_s)(ns).?<30000>(_mul)(lol).?= (ptr)<0>=] [(set)(_s)S! (_ps)2= (_str)1(_s)(ns).?= (array)*(_ps)(_s)d.
01:31:52 <CakeProphet> ? (_be)1= (_af)1= (array)(_be)*(_str)*(_af)*(_s)a.?(_s)a.?=] [(move)(_a)A! (_inc)1= (ptr)(ptr)*1(_inc)(_a)a.?=] [(get) (_s)S! (array)*(ptr)*(_s)i.]}
01:32:04 <CakeProphet> mmm... Glass looks deliciously nonsential.
01:32:08 <oklopol> you didn't fix them :)
01:32:10 <oklopol> you didn't fix them :)
01:32:11 <oklopol> you didn't fix them :)
01:32:11 <oklopol> you didn't fix them :)
01:32:14 <CakeProphet> fix wha?
01:32:19 <oklopol> (pos)=<0>
01:32:22 <oklopol> (_a)!A
01:32:29 <CakeProphet> ...yes I did.
01:32:32 <oklopol> oh :(
01:32:38 <CakeProphet> :P
01:32:40 <CakeProphet> You lose.
01:32:54 <oklopol> why do i see them there then? :O
01:33:03 <CakeProphet> >.>
01:33:09 <CakeProphet> Insanity?
01:33:15 <oklopol> must be
01:33:51 <CakeProphet> {(BFfeed) [(c__) (_i)I! (code)(_i)i.?= (pos)<0>=] [(next)(_s)S! (_a)A! (code)*(pos)*(_s)i.? (pos)(pos)*<1>(_a)a.=]} {(StringSpam)[(lol)(_a)A!(_s)S!(str)2=(num)1=(outstr)""=/(num)(outstr)(outstr)*(str)*(_s)a.?(pos)(pos)*<1>(_a)a.?\(outstr)*]} ((Array)[(c__ ) (_mul)(StringSpam)!(_s)S! (array)<0>(_s)(ns).?<30000>(_mul)(lol).?= (ptr)<0>=] [(set)(_s)S! (_ps)2= (_str)1(_s)(ns).?= (array)*(_ps)(_s)d.
01:33:53 <CakeProphet> ? (_be)1= (_af)1= (array)(_be)*(_str)*(_af)*(_s)a.?(_s)a.?=] [(move)(_a)A! (_inc)1= (ptr)(ptr)*1(_inc)(_a)a.?=] [(get) (_s)S! (array)*(ptr)*(_s)i.]}
01:33:56 <CakeProphet> :P
01:34:33 <CakeProphet> I should start on that double-ended queue language.
01:35:07 <oklopol> why do you inc pos?
01:35:10 <oklopol> /(num)(outstr)(outstr)*(str)*(_s)a.?(pos)(pos)*<1>(_a)a.?\
01:35:18 <oklopol> shouldn't you dec num?
01:35:36 <oklopol> /(num)(outstr)(outstr)*(str)*(_s)a.?(num)(num)*<1>(_a)s.?\
01:35:49 <oklopol> in stringspam
01:35:58 <oklopol> i'm starting to be able to read that
01:36:24 <oklopol> ((Array)
01:36:32 <oklopol> should be { the first one
01:39:58 <oklopol> hmm
01:40:22 <oklopol> i can't see the use of your splitting the array in (Array)
01:40:31 <oklopol> in (set)
01:40:33 <CakeProphet> (pos) represents the number you're multiplying it by
01:40:49 <CakeProphet> poorly named.
01:40:54 <oklopol> really?
01:41:04 <oklopol> where is it inited?
01:41:12 <oklopol> and when will the loop end?
01:41:46 <CakeProphet> "Lolerskates" * 5 ----------- "Lolerskates" <5> (_ss)StringSpam!(_ss)?
01:41:51 <CakeProphet> When pos is 0
01:42:03 <CakeProphet> pos is decremented each loop.
01:42:07 <Sukoshi> Might I reccomend Pastebin?
01:42:24 <CakeProphet> Spam never hurt anybody. :P
01:42:53 <oklopol> {(StringSpam)[(lol)(_a)A!(_s)S!(str)2=(num)1=(outstr)""=/(num)(outstr)(outstr)*(str)*(_s)a.?(pos)(pos)*<1>(_a)a.?\(outstr)*]} << why would the loop end?
01:43:11 <oklopol> no operation is done to num
01:43:16 <CakeProphet> {(BFfeed) [(c__) (_i)I! (code)(_i)i.?= (pos)<0>=] [(next)(_s)S! (_a)A! (code)*(pos)*(_s)i.? (pos)(pos)*<1>(_a)a.=]} {(StringSpam)[(lol)(_a)A!(_s)S!(str)2=(num)1=(outstr)""=/(num)(outstr)(outstr)*(str)*(_s)a.?(num)(num)*<1>(_a)a.?\(outstr)*]} ((Array)[(c__ ) (_mul)(StringSpam)!(_s)S! (array)<0>(_s)(ns).?<30000>(_mul)(lol).?= (ptr)<0>=] [(set)(_s)S! (_ps)2= (_str)1(_s)(ns).?= (array)*(_ps)(_s)d.
01:43:18 <CakeProphet> ? (_be)1= (_af)1= (array)(_be)*(_str)*(_af)*(_s)a.?(_s)a.?=] [(move)(_a)A! (_inc)1= (ptr)(ptr)*1(_inc)(_a)a.?=] [(get) (_s)S! (array)*(ptr)*(_s)i.]}
01:43:20 <CakeProphet> ack
01:43:22 <CakeProphet> yeah
01:43:30 <CakeProphet> should be (num) instead of (pos)
01:43:33 <CakeProphet> hehe
01:43:40 <oklopol> /(num)(outstr)(outstr)*(str)*(_s)a.?(num)(num)*<1>(_a)a.?\ -> /(num)(outstr)(outstr)*(str)*(_s)a.?(num)(num)*<1>(_a)s.?\
01:43:44 <CakeProphet> (pos) is the position we're on in the input.
01:43:46 <oklopol> then i'm happy
01:43:52 <oklopol> i know, i'm not blind
01:43:53 <oklopol> :)
01:44:04 <oklopol> (i am an ass, tho)
01:44:21 <CakeProphet> eh... everyone is an asshole is some point.
01:44:47 <oklopol> yeah, i'd really like to sleep but i can't :(
01:45:18 <oklopol> k wtf does (set) do?
01:45:24 <Sukoshi> CakeProphet: Uh... please use Pastebin.
01:45:37 <Sukoshi> It's also easier to read for a lot of people.
01:46:51 <CakeProphet> oklopol, set sets (_ps) in (array) to (_str)
01:47:49 <oklopol> you do know _str is "1" and (_ps) is 2?
01:48:03 <oklopol> it sets 2 in (array) to "1"?
01:48:24 <CakeProphet> 1 means "element 1 on the stack"
01:48:49 <oklopol> it isn't ready yet, then?
01:49:07 <oklopol> i mean, it takes those as params and doesn't set them in the function?
01:49:34 <CakeProphet> It does.
01:49:47 <oklopol> take them as params?
01:50:28 <CakeProphet> To set a value in the array... we have to split it at (_ps) and concatenate the first half with (_str) and then concatenate those two with the second half.
01:50:47 <CakeProphet> yeah.. they're params
01:50:53 <oklopol> then i'm happy
01:50:57 <CakeProphet> indeed.
01:51:18 <oklopol> i just read code as a compiler with only a minor autodebug
01:52:04 <oklopol> so if you put test values in, i don't understand
01:52:05 <oklopol> too hard
01:52:14 <oklopol> oh my eyes hurt
01:53:13 <oklopol> (if you made a (Counter)-class, you'd get rid of TWO ugly additions!)
01:53:34 <oklopol> you have two functions whose main purpose is to inc a var :)
01:53:51 <oklopol> actually, the sole purpose of the other
01:54:21 <oklopol> hey btw
01:54:38 <oklopol> why didn't you tell me i was wrong a while ago
01:54:40 <oklopol> :O
01:55:00 <oklopol> maybe because i make no sence and mostly talk to myself :)
01:55:16 <CakeProphet> What ugly additions?
01:55:24 <oklopol> i'll now reread that one part keeping in mind 2 != <2> xD
01:55:26 <CakeProphet> and how is it conceptually possible to get rid of anything ugly with GLASS?
01:55:40 <oklopol> (_inc)1= (ptr)(ptr)*1(_inc)(_a)a.?=
01:55:45 <oklopol> conseptually ugly!
01:55:56 <oklopol> but
01:56:14 <CakeProphet> A pointer class would just add to the overhead.
01:56:23 <oklopol> as i once again misparsed, 1 IS A FUCKING LIFT, not a number xD
01:56:27 <CakeProphet> and bloat the whole program.
01:56:55 <oklopol> i hate being a human
01:57:01 <oklopol> mistake after mistake
01:57:07 <CakeProphet> It's pretty fun.
01:57:14 <CakeProphet> programmers are kind of insane though.
01:57:59 <oklopol> (_af)1= in (set) should be (_af)0=
01:58:04 <CakeProphet> oklopol, Did you seem my implementation of a Lisp pair in Glass?
01:58:26 <CakeProphet> hmmm... I thought pushing something from the stack decrement the position of everything.
01:58:28 <oklopol> i did, but i didn't read it because i had this craaaaaazy idea of going to sleep
01:58:44 <oklopol> huh?
01:58:48 <oklopol> it does
01:59:03 <CakeProphet> so then why's it wrong? :/
01:59:07 <oklopol> but (_bf)1= takes off what it puts in
01:59:37 <oklopol> 1 if the first part, 0 is the second part, so naturally (_bf)1= (_af)0=
01:59:43 <CakeProphet> The stack item is removed when its pushed back in?
01:59:44 <oklopol> or
01:59:57 <CakeProphet> Glass is -not- intuitive. :P
02:00:01 <oklopol> actually i don't know whether = leaves anything on the stack
02:00:04 <CakeProphet> do not even attempt to think naturally.
02:00:17 <oklopol> = pops the name and the value off
02:00:18 <oklopol> as i thought
02:00:20 <CakeProphet> numbers leave things on the stack.
02:00:24 <CakeProphet> oh.
02:00:26 <CakeProphet> alright :P
02:00:34 <oklopol> obviously! :D
02:00:37 <oklopol> :DDDDDDD
02:00:55 <oklopol> (i looked it up, but it's ONLY because i'm tired)
02:01:05 <oklopol> (it's very obvious)
02:01:20 <CakeProphet> {(BFfeed) [(c__) (_i)I! (code)(_i)i.?= (pos)<0>=] [(next)(_s)S! (_a)A! (code)*(pos)*(_s)i.? (pos)(pos)*<1>(_a)a.=]} {(StringSpam)[(lol)(_a)A!(_s)S!(str)2=(num)1=(outstr)""=/(num)(outstr)(outstr)*(str)*(_s)a.?(pos)(pos)*<1>(_a)a.?\(outstr)*]} ((Array)[(c__ ) (_mul)(StringSpam)!(_s)S! (array)<0>(_s)(ns).?<30000>(_mul)(lol).?= (ptr)<0>=] [(set)(_s)S! (_ps)2= (_str)1= (array)*(_ps)(_s)d.?...
02:01:21 <oklopol> but
02:01:22 <CakeProphet> ...(_be)1= (_af)0= (array)(_be)*(_str)*(_af)*(_s)a.?(_s)a.?=] [(move)(_a)A! (_inc)1= (ptr)(ptr)*1(_inc)(_a)a.?=] [(get) (_s)S! (array)*(ptr)*(_s)i.]}
02:01:23 <CakeProphet> Beautiful
02:01:50 <oklopol> why the fuck (_this)$ leaves the object on the stack :D
02:02:07 <oklopol> makes no sence because no other var oper does
02:02:17 <CakeProphet> eh...
02:02:22 <CakeProphet> I'm sure there's a reason
02:02:31 <CakeProphet> or maybe not
02:02:35 <CakeProphet> it could also just be there to confuse you.
02:02:36 <oklopol> i don't get it
02:02:46 <CakeProphet> so... help me think of how a double-ended queue language should work.
02:02:56 <oklopol> the this-pointer must always be both pushed and set into a var
02:02:59 <oklopol> why?
02:03:04 <CakeProphet> boredom?
02:03:09 <oklopol> you never need both, you must have both
02:03:11 <oklopol> weird :\
02:03:12 <CakeProphet> it would be fun... like a merry-go-round
02:03:26 <oklopol> but
02:03:34 <CakeProphet> and you could evaluate different things at different places... it would be kind of weird.
02:03:34 <oklopol> a two-way queue?
02:03:40 <CakeProphet> Yeah.
02:03:47 <oklopol> i have some thoughts
02:03:57 <CakeProphet> push1, pop1, push2, pop2, rotate (being a push2 of pop1)
02:03:57 <oklopol> but i'm not sure if i can take them out
02:04:28 <oklopol> k, that's basically a stack-based lang where you control pop's and pushes right?
02:04:37 <CakeProphet> Kinda...
02:04:38 <oklopol> kinda like... brainfuck
02:04:40 <oklopol> :)
02:04:42 <CakeProphet> NO
02:04:43 <CakeProphet> LIAR
02:04:45 <CakeProphet> FOOL
02:04:48 <oklopol> wait!
02:04:52 <oklopol> there's more!
02:04:57 <CakeProphet> It would be different.
02:05:19 <CakeProphet> You wouldn't control the pushes and pops.
02:05:30 <CakeProphet> it would just... kinda shift around as you code.
02:05:36 <oklopol> brainfuck goes too far! you can make sence into it by making only the queue part, not also the ridiculously hard inc&dec-only system
02:05:52 <CakeProphet> You might be able to swap which end of the cue the pushes and pops occur...
02:05:57 <CakeProphet> but... you don't order them specifically.
02:06:06 <oklopol> ah okay, you should then be able to make it go around in different places
02:06:16 <CakeProphet> Yeah.... see it would be neat.
02:06:37 <oklopol> very non-modular if there is just one queue with a rolling tape
02:06:43 <oklopol> and that's often boring
02:06:45 <CakeProphet> Swapping which end you get values from would kind of reverse the evaluation order.
02:06:46 <oklopol> BUT
02:06:52 <oklopol> huh?
02:06:58 <oklopol> ah
02:07:13 <oklopol> i misunderstood the whole queue thing :)
02:07:22 <CakeProphet> yeah... I'm not sure how it'll work either.
02:07:32 <oklopol> i thought like a circle where you can go around freely
02:07:42 <CakeProphet> it could rotate after each do-hicky.
02:07:45 <oklopol> but instead you meant a two-sided stacks?
02:07:50 <CakeProphet> nah... it won't be like brainfuck.
02:07:51 <oklopol> *stack
02:07:55 <CakeProphet> two-sided queue.
02:08:18 <oklopol> yes, but i confuse consepts
02:08:28 <oklopol> bad recall for terms
02:08:29 <oklopol> :(
02:08:41 <oklopol> i'll do some perusing on the subject now ->
02:08:52 <CakeProphet> [1,2,3,4,5,6,7,8,9] push1(0) [0,1,2,3,4,5,6,7,8,9] pop2() [0,1,2,3,4,5,6,7,8] push1(pop2()) [8,0,1,2,3,4,5,6,7]
02:09:17 <oklopol> good
02:09:37 <oklopol> anyway, functionality is that of a two-sided stack
02:09:42 <oklopol> so i'll call it that :)
02:09:50 <oklopol> same thing
02:09:57 <CakeProphet> Pretty much.
02:10:02 <CakeProphet> It can work like a stake or a queue
02:10:21 <CakeProphet> a queue language might be more fun though.
02:10:28 <oklopol> i wish i had paper... got some unbelievably cool ideas :D
02:10:37 <CakeProphet> cause... let's face it... stacks are boring.
02:10:41 <oklopol> true
02:10:45 <CakeProphet> Now... if we had tubes.
02:11:00 <oklopol> no 3d... like the one i'm gonna show you in a minute :)
02:11:03 <CakeProphet> with multidimensional arrays being pushed down them... and the data intersecting and crossing based on commands.
02:11:06 <CakeProphet> THERE'S A LANGUAGE.
02:11:30 <CakeProphet> a tubular language.
02:11:52 <CakeProphet> inputs and outputs criss-crossing and connecting... with the data getting tossed around.
02:14:34 <oklopol> :D
02:14:40 <oklopol> TUBU 1.0
02:14:43 <oklopol> can i send you?
02:14:48 <oklopol> made an ugly picture
02:14:59 <CakeProphet> hmmm?
02:15:10 <oklopol> dunno if it's unugly enough to give you the picture... i mean what i was thinking
02:15:33 <oklopol> it involves a circular tape that can be cut and rotated etc. :)
02:15:38 <CakeProphet> We could make a dataless language.
02:15:53 <oklopol> iota kinda is
02:15:56 <oklopol> unlambda
02:16:00 <oklopol> zot
02:16:02 <oklopol> jot
02:16:12 <oklopol> purely functional languages
02:16:13 <CakeProphet> Where "stuff" is sent through structures you've created for it... and somehow magically becomes data.
02:16:16 <oklopol> :D
02:16:35 <oklopol> you don't need data when the structure is perfect!
02:16:58 <CakeProphet> A spider web language?
02:16:59 <oklopol> a language with no data, no hello world, no factorials, just PERFECT structures :D
02:17:05 <oklopol> pretty much
02:17:13 <CakeProphet> no I mean
02:17:15 <oklopol> anyways, i wanna send you the ugly pic :(
02:17:18 <CakeProphet> let's talk about a spider web language.
02:17:20 <CakeProphet> alright
02:17:22 <oklopol> soon1
02:17:27 <oklopol> first send!
02:17:34 <oklopol> how to?
02:17:51 <CakeProphet> A lset-based lanauge?
02:17:53 <CakeProphet> set
02:18:21 <oklopol> it's nosence.bmp... i then realized there is a word nonsence
02:18:28 <oklopol> which would've made more sence
02:18:38 <oklopol> but then again, why should nonsence make sence?
02:18:42 <oklopol> that's just stupid
02:18:45 <oklopol> so it's nosence
02:18:53 <CakeProphet> hmmm.
02:19:01 <CakeProphet> maybe a non-determinstic language that doesn't... yanno... suck.
02:19:05 <oklopol> i can't send it, also, with this :)
02:19:31 <oklopol> can i send that another way?
02:19:43 <oklopol> it's very important!
02:19:44 <oklopol> :D
02:20:51 <oklopol> lol it makes me laugh... fuck i'm tired
02:21:25 <oklopol> spiderweb-language?
02:21:33 <oklopol> sound like a job for concurrency!
02:21:42 <oklopol> and heavy subwebbing!
02:21:54 <CakeProphet> a network language?
02:21:54 <oklopol> and a great support for tcp/ip
02:21:56 <oklopol> :D
02:22:32 <CakeProphet> nodes... with links.
02:22:36 <CakeProphet> like neurons.
02:22:40 <oklopol> yes, tons of them
02:22:51 <oklopol> kinda like a cellular automaton
02:22:57 <CakeProphet> oooh
02:23:01 <oklopol> but you can code each node differently
02:23:15 <oklopol> (there is a macro lang for that, of course)
02:23:16 <CakeProphet> a language for constructing cellular automatons.
02:23:20 <oklopol> :D
02:23:25 <pikhq> Already done.
02:23:33 <CakeProphet> that fit specifically for what you need them to do.
02:23:34 <oklopol> prolly
02:23:42 <pikhq> Seriously.
02:23:48 <oklopol> what?
02:23:51 <oklopol> i might have it
02:23:57 * CakeProphet has a Automaton class in Python that can represent any cellular automaton with a universal rule for all cells.
02:25:10 <oklopol> zu
02:25:18 <oklopol> i don't like python :(
02:25:32 <oklopol> has bad lambda support if you ask me
02:26:02 <oklopol> i mean, you have to twiddle to do even conditionals in a lambda
02:26:24 <oklopol> [(stuph) for i in [1] if (cond)]
02:26:47 <oklopol> god, now i have to sleep... really... <.smdfk ->
02:36:39 <CakeProphet> 2.5 has conditional expressions
02:36:50 <CakeProphet> (blah if condition else otherblah)
02:37:15 <CakeProphet> Most Python zealots don't consider lambda all that useful anyways...
02:37:18 <CakeProphet> I like lambda myself :D
02:44:38 <oklopol> me too :)
02:45:12 <oklopol> that's a boring condition
02:45:18 <oklopol> ?: is cooler
02:45:59 <oklopol> i've actually been trying to sleep for 2.5 hours now
02:53:13 <CakeProphet> Python makes some crappy quines. :P
02:53:22 <CakeProphet> http://www.nyx.net/~gthompso/self_pyth.txt
02:56:10 <CakeProphet> I like this one though.
02:56:15 <CakeProphet> a = ['print "a =", a', 'for s in a: print s']
02:56:16 <CakeProphet> print "a =", a
02:56:18 <CakeProphet> for s in a: print s
03:08:37 <oklopol> extendable, nice
03:08:55 <oklopol> i mean, nicely extendable
03:09:45 <oklopol> 5th time's the charm ->
03:23:47 <CakeProphet> it's fairly terse for a quine as well.
03:24:36 <CakeProphet> iterating quines are cool. :D
03:25:18 <CakeProphet> A sequence of programs that each produce the source code of the next one in the sequence.
03:25:36 <CakeProphet> and I'm guessing the last one prints the source code of the first.
03:32:48 <tokigun> one-liner quine is achieved by this code: print (lambda x:x%x)('print (lambda x:x%%x)(%r)')
03:33:09 <tokigun> good example for repr() ;)
03:45:37 <CakeProphet> ooooh yah
03:45:45 <CakeProphet> repr() would be a good way to reproduce source code.
03:45:47 <CakeProphet> since it...
03:45:52 <CakeProphet> prints... the source code.
03:50:25 <CakeProphet> that's a good one. :D
03:57:02 <CakeProphet> I would be amazed if someone built a phyiscal object that can do the same thing as an iterating quine.
03:57:37 <CakeProphet> Like a machine that builds a machine that builds a machine that builds a machine that builds the original machine.
04:00:55 <CakeProphet> You could probably use iterating quines to do a computation of some sort.
04:01:14 <CakeProphet> maybe a language whose entire function is to shell out successive source codes... which eventually will produce the original.
04:01:38 <CakeProphet> but the side effects that each one produce create a successive shift... that eventually yields some sort of useful output
04:02:51 * pikhq defines a pointless language
04:02:54 <pikhq> QUINE.
04:03:05 <pikhq> "a" outputs "a".
04:03:11 <pikhq> "b" outputs "c".
04:03:18 <pikhq> "c" outputs "d".
04:03:26 <pikhq> "d" outputs "b".
04:04:10 <pikhq> "" outputs "Sorry, gotta work one more character for that."
04:05:10 <pikhq> Thus, the shortest quine is "a".
04:05:26 <pikhq> And the shortest iterating quine is "b", "c", or "d".
04:05:44 <CakeProphet> ?/?
04:12:29 -!- ihope has quit ("http://tunes.org/~nef/logs/esoteric/06.08.09").
04:12:48 <CakeProphet> tokigun, That's the coolest quine I've seen so far.
04:12:53 <CakeProphet> Most of them look pretty boring.
04:13:05 <CakeProphet> Plus it's in one line... which is pretty awesome.
04:13:09 -!- ivan`_ has joined.
04:31:38 -!- ivan` has quit (Read error: 110 (Connection timed out)).
04:32:28 -!- ivan`_ has changed nick to ivan`.
04:36:11 <CakeProphet> hmmmm
04:36:13 <CakeProphet> oh
04:36:17 <CakeProphet> you could make two sister languages.
04:36:32 <CakeProphet> both made to produce outputs in the form of the other language...
04:36:53 -!- RW63Phi has joined.
04:36:56 <CakeProphet> A polyglottal iterative quine based language. :D
04:37:55 <RW63Phi> Could someone please repeat this command and cause it to be executed by another host?
04:38:50 <CakeProphet> Could someone please repeat this command and cause it to be executed by another host?
04:40:05 <RW63Phi> Everyone please execute a command which causes each of you to ignite and burn.
04:40:07 -!- Dangermouse has joined.
04:40:38 <RW63Phi> lol, no IRP allowed.....
04:41:02 -!- RW63Phi has left (?).
04:41:05 <CakeProphet> Could someone please give someone a command to give someone a command to repeat this command?
04:47:18 -!- Dangermouse has left (?).
05:07:38 <pikhq> Could someone please give someone a command to repeat that command?
05:10:34 <pikhq> Pretty please with sugar on top?
05:13:10 -!- theblue has quit (Read error: 113 (No route to host)).
05:14:07 <CakeProphet> Could someone please repeat that command?
05:15:21 <pikhq> Could someone please give someone a command to give someone a command to repeat this command?
05:15:29 <pikhq> SIGKILL
05:15:53 <CakeProphet> WASSAT?
05:16:13 <pikhq> It's a UNIX signal for stopping exeuction.
05:30:22 -!- calamari has quit ("Leaving").
05:32:27 -!- pikhq has quit (Read error: 54 (Connection reset by peer)).
05:33:55 -!- pikhq has joined.
05:51:07 <fizzie> SIGTERM is for stopping execution; SIGKILL is if you're feeling antisocial.
05:52:43 <pikhq> SIGKILL stops execution *now*.
05:52:49 <pikhq> SIGTERM allows for cleanup.
05:52:54 <pikhq> I'm no neatfreak.
05:55:44 <GregorR> SIGSTOP is for /stopping/ execution :)
05:55:51 <GregorR> SIGTERM is for /terminating/ execution :P
05:55:59 <GregorR> and SIGKILL is for /killing/ execution ;)
05:56:30 <fizzie> And, of course, SIGABRT is for /aborting/ execution. "Do we really need so many?"
05:57:18 <fizzie> SIGILL is for making the execution /ill/, in which case it barfs. "Dumps core", in Unix terminology.
05:58:31 <fizzie> Heh, and of course there's SIGINT for /interrupting/ execution, which kind-of fits in the original list.
05:59:22 <fizzie> And SIGQUIT for /quitting/ execution. Come to think of it, an inordinate amount of the signals seem to be about manhandling the execution somehow.
05:59:51 <fizzie> Why isn't there SIGTHANKS that you can send when a process has diligently worked and behaved in an exemplary manner?
06:25:29 <pikhq> SIGEMT sends a trained EMT for your process.
06:26:03 <pikhq> Needed after SIGSTOP, SIGTERM, SIGKILL, SIGABRT, SIGILL, SIGINT, or SIGQUIT.
06:37:14 <Sukoshi> Signals -- when you need that time-has-passed feeling.
06:51:52 -!- pikhq has quit (Read error: 110 (Connection timed out)).
06:57:20 -!- werdwerdus has joined.
07:24:32 -!- werdwerdus has quit (Read error: 110 (Connection timed out)).
07:49:33 -!- oerjan has joined.
07:53:39 <oerjan> !ps
07:53:42 <EgoBot> 2 oerjan: ps
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:01:22 <oerjan> !glass {(Nil)[(iter),][(null?)1]}{(Con) [(c__)a2=b1=,,] [(car)a*] [(cdr)b*] [(null?)0] [(iter)(_fun)1=,a*?(_fun)*?b(iter).?] }{(List)[(build)(_a)A!(_tmp)1=, (_list)(Nil)!/(_tmp)(_list)*(_list)(Con)!(_tmp)0*<1>(_a)s.?=\(_list)*] }{M[m(_o)O! (_l)(List)! "H" "e" "l" "l" "o" " " "W" "o" "r" "l" "d" "!"<12>(_l)(build).?(MyList)1=, (_o)o.(MyList)(iter).?]}
08:02:07 <oerjan> darn
08:04:25 <oerjan> !glass {(Nil)[(iter),][(null?)1]}{(Con) [(c__)a2=b1=,,] [(car)a*] [(cdr)b*] [(null?)0] [(iter)(_fun)1=,a*?(_fun)*?b(iter).?] }{(List)[(build)(_a)A!(_tmp)1=, (_list)(Nil)!/(_tmp)(_list)*(_list)(Con)!(_tmp)0*<1>(_a)s.?=\(_list)*] }{M[m(_o)O! "H" (MyList)0(Nil)!(Con)! (_o)o.(MyList)(iter).?]}
08:04:34 <oerjan> !ps
08:04:38 <EgoBot> 2 oerjan: ps
08:08:28 <oerjan> !glass {(Nil)[(iter),][(null?)1]}{(Con) [(c__)a2=b1=,,] [(car)a*] [(cdr)b*] [(null?)0] [(iter)(_fun)1=,a*?(_fun)*?b(iter).?] }{M[m(_o)O! "H" (MyList)0(Nil)!*(MyList)(Con)! (_o)o.(MyList)(iter).?]}
08:10:03 <oerjan> !glass {(Nil)[(iter),][(null?)1]}{(Con) [(c__)a2=b1=,,] [(car)a*] [(cdr)b*] [(null?)0] [(iter)(_fun)1=,a*?(_fun)*?b(iter).?] }{M[m(_o)O! "H" (MyList)0(Nil)!*(MyList)(Con)! (_o)o.(MyList)(car).?1?]}
08:10:07 <EgoBot> H
08:11:48 <oerjan> !glass {(Nil)[(iter),][(null?)1]}{(Con) [(c__)a2=b1=,,] [(car)a*] [(cdr)b*] [(null?)0] [(iter)(_fun)1=,a*?(_fun)*?b(iter).?] }{M[m(_o)O! "H" (MyList)0(Nil)!*(MyList)(Con)! (_o)o.(MyList)(cdr).?(_t)1=,(_t)(null?).?1?]}
08:11:59 <oerjan> !glass {(Nil)[(iter),][(null?)1]}{(Con) [(c__)a2=b1=,,] [(car)a*] [(cdr)b*] [(null?)0] [(iter)(_fun)1=,a*?(_fun)*?b(iter).?] }{M[m(_o)O! "H" (MyList)0(Nil)!*(MyList)(Con)! (_o)(on).(MyList)(cdr).?(_t)1=,(_t)(null?).?1?]}
08:12:03 <EgoBot> 0
08:12:11 <oerjan> whoops
08:13:16 <oerjan> !glass {(Nil)[(iter),][(null?)1]}{(Con) [(c__)a2=b1=,,] [(car)a*] [(cdr)b*] [(null?)0] [(iter)(_fun)1=,a*?(_fun)*?b(iter).?] }{M[m(_o)O! "H" (MyList)0(Nil)!*(MyList)(Con)! (_o)(o).(MyList)(cdr).?(_t)1=,(_t)(car).?1?]}
08:18:30 <oerjan> !glass {(Nil)[(iter),][(null?)1]}{(Con) [(c__)a2=b1=,,] [(car)a*] [(cdr)b*] [(null?)0] [(iter)(_fun)1=,a*?(_fun)*?b(iter).?] }{M[m(_o)O! "H" "i" (MyList)0(Nil)!*(MyList)(Con)!(MyList)*(MyList)(Con)! (_o)(o).(MyList)(cdr).?(_t)1=,(_t)(car).?1?]}
08:18:33 <EgoBot> i
08:19:08 <oerjan> !glass {(Nil)[(iter),][(null?)1]}{(Con) [(c__)a2=b1=,,] [(car)a*] [(cdr)b*] [(null?)0] [(iter)(_fun)1=,a*?(_fun)*?b(iter).?] }{M[m(_o)O! "H" "i" (MyList)0(Nil)!*(MyList)(Con)!(MyList)*(MyList)(Con)! (_o)(on).(MyList)(cdr).?(_t)1=,(_t)(null?).?1?]}
08:19:11 <EgoBot> 0
08:29:48 <oerjan> !glass {(Nil)[(iter),][(null?)1]}{(Con) [(c__)a2=b1=,,] [(car)a*] [(cdr)b*] [(null?)0] [(iter)(_fun)1=,a*?(_fun)*?b(iter).?] }{(List)[(build)(_a)A!(_tmp)1=, (_list)(Nil)!/(_tmp)(_list)*(_list)(Con)!(_tmp)0*<1>(_a)s.?=\(_list)*] }{M[m(_o)O! (_l)(List)! "H" "i" <2> (_l)(build).?(MyList)1=, (_o)(o).(MyList)(cdr).?(_t)1=,(_t)(car).?1?]}
08:29:50 -!- Arrogant has joined.
08:31:43 <oerjan> !glass {(Nil)[(iter),][(null?)1]}{(Con) [(c__)a2=b1=,,] [(car)a*] [(cdr)b*] [(null?)0] [(iter)(_fun)1=,a*?(_fun)*?b(iter).?] }{(List)[(build)(_a)A!(_tmp)1=, (_list)(Nil)!/(_tmp)(_list)*(_list)(Con)!(_tmp)0*<1>(_a)s.?=\(_list)*] }{M[m(_o)O! (_l)(List)! "H" "i" <2> (_l)(build).?(MyList)1=, (_o)(o).(MyList)(car).?1?]}
08:33:37 <oerjan> !glass {(Nil)[(iter),][(null?)1]}{(Con) [(c__)a2=b1=,,] [(car)a*] [(cdr)b*] [(null?)0] [(iter)(_fun)1=,a*?(_fun)*?b(iter).?] }{(List)[(build)(_a)A!(_tmp)1=, (_list)(Nil)!/(_tmp)(_list)*(_list)(Con)!(_tmp)0*<1>(_a)s.?=\(_list)*] }{M[m(_o)O! (_l)(List)! "H" "i" <2> (_l)(build).?(MyList)1=, (_o)(o)."test"?1?]}
08:33:46 <oerjan> !ps
08:33:49 <EgoBot> 2 oerjan: ps
08:36:21 <oerjan> !glass {(Nil)[(iter),][(null?)1]}{(Con) [(c__)a2=b1=,,] [(car)a*] [(cdr)b*] [(null?)0] [(iter)(_fun)1=,a*?(_fun)*?b(iter).?] }{(List)[(build)(_o)O!(_a)A!(_tmp)1=, (_list)(Nil)!/(_tmp)(_list)*(_list)2(_o)o.?(Con)!(_tmp)0*<1>(_a)s.?=\(_list)*] }{M[m(_o)O! (_l)(List)! "H" "i" <2> (_l)(build).?(MyList)1=, (_o)(o).(MyList)(car).?1?]}
08:36:23 <EgoBot> i
08:37:27 <oerjan> !glass {(Nil)[(iter),][(null?)1]}{(Con) [(c__)a2=b1=,,] [(car)a*] [(cdr)b*] [(null?)0] [(iter)(_fun)1=,a*?(_fun)*?b(iter).?] }{(List)[(build)(_o)O!(_a)A!(_tmp)1=, (_list)(Nil)!/(_tmp)(_list)*(_list)(_tmp)*(_o)(on).?(Con)!(_tmp)0*<1>(_a)s.?=\(_list)*] }{M[m(_o)O! (_l)(List)! "H" "i" <2> (_l)(build).?(MyList)1=, (_o)(o).(MyList)(car).?1?]}
08:37:31 <EgoBot> 2
08:38:05 <oerjan> !glass {(Nil)[(iter),][(null?)1]}{(Con) [(c__)a2=b1=,,] [(car)a*] [(cdr)b*] [(null?)0] [(iter)(_fun)1=,a*?(_fun)*?b(iter).?] }{(List)[(build)(_o)O!(_a)A!(_tmp)1=, (_list)(Nil)!/(_tmp)(_list)*(_list)(Con)!(_tmp)*(_o)(on).?(_tmp)0*<1>(_a)s.?=\(_list)*] }{M[m(_o)O! (_l)(List)! "H" "i" <2> (_l)(build).?(MyList)1=, (_o)(o).(MyList)(car).?1?]}
08:38:07 <EgoBot> 2
08:38:30 -!- Arrogant has quit ("Leaving").
08:38:58 <oerjan> !glass {(Nil)[(iter),][(null?)1]}{(Con) [(c__)a2=b1=,,] [(car)a*] [(cdr)b*] [(null?)0] [(iter)(_fun)1=,a*?(_fun)*?b(iter).?] }{(List)[(build)(_o)O!(_a)A!(_tmp)1=, (_list)(Nil)!/(_tmp)(_list)*(_list)(Con)!(_tmp)0*<1>(_a)s.?=(_tmp)*(_o)(on).?\(_list)*] }{M[m(_o)O! (_l)(List)! "H" "i" <2> (_l)(build).?(MyList)1=, (_o)(o).(MyList)(car).?1?]}
08:40:11 <oerjan> !glass {(Nil)[(iter),][(null?)1]}{(Con) [(c__)a2=b1=,,] [(car)a*] [(cdr)b*] [(null?)0] [(iter)(_fun)1=,a*?(_fun)*?b(iter).?] }{(List)[(build)(_o)O!(_a)A!(_tmp)1=, (_list)(Nil)!/(_tmp)(_list)*(_list)(Con)!(_tmp)0*<1>(_a)s.?(_tmp)*(_o)(on).?=\(_list)*] }{M[m(_o)O! (_l)(List)! "H" "i" <2> (_l)(build).?(MyList)1=, (_o)(o).(MyList)(car).?1?]}
08:40:46 <oerjan> !glass {(Nil)[(iter),][(null?)1]}{(Con) [(c__)a2=b1=,,] [(car)a*] [(cdr)b*] [(null?)0] [(iter)(_fun)1=,a*?(_fun)*?b(iter).?] }{(List)[(build)(_o)O!(_a)A!(_tmp)1=, (_list)(Nil)!/(_tmp)(_list)*(_list)(Con)!(_tmp)0*<1>(_a)s.(_tmp)*(_o)(on).??=\(_list)*] }{M[m(_o)O! (_l)(List)! "H" "i" <2> (_l)(build).?(MyList)1=, (_o)(o).(MyList)(car).?1?]}
08:41:27 <oerjan> !glass {(Nil)[(iter),][(null?)1]}{(Con) [(c__)a2=b1=,,] [(car)a*] [(cdr)b*] [(null?)0] [(iter)(_fun)1=,a*?(_fun)*?b(iter).?] }{(List)[(build)(_o)O!(_a)A!(_tmp)1=, (_list)(Nil)!/(_tmp)(_list)*(_list)(Con)!(_tmp)0*<1>(_tmp)*(_o)(on).?(_a)s.?=\(_list)*] }{M[m(_o)O! (_l)(List)! "H" "i" <2> (_l)(build).?(MyList)1=, (_o)(o).(MyList)(car).?1?]}
08:41:31 <EgoBot> 2
08:44:17 <oerjan> !glass {M[m(_a)A!(_o)O!<4><2>(_a)s.?(_o)(on).?]}
08:44:30 <oerjan> !glass {M[m(_a)A!(_o)O!<4><2>(_a)a.?(_o)(on).?]}
08:44:55 <oerjan> !glass {M[m(_a)A!(_o)O!<4><2>(_o)(on).0??]}
08:44:57 <EgoBot> 0
08:45:12 <oerjan> !ps
08:45:15 <EgoBot> 2 oerjan: ps
08:45:47 <oerjan> !glass {M[m(_a)A!(_o)O!<4><2>(_o)(on).?]}
08:45:49 <EgoBot> 2
08:46:07 <oerjan> !glass {M[m(_a)A!(_o)O!<4><2>(_a)a.,(_o)(on).?]}
08:46:56 <oerjan> something is broken with the A class...
08:47:49 <oerjan> !glass {M[m(_b)A!(_o)O!<4><2>(_b)a.,(_o)(on).?]}
08:48:02 <oerjan> !glass {M[m(_b)A!(_o)O!<4><2>(_b)m.,(_o)(on).?]}
08:48:19 <oerjan> !glass {M[m(_b)A!(_o)O!<4><2>(_o)(on).?]}
08:48:24 <EgoBot> 2
08:49:48 <oerjan> GregorR: The A class in Glass is broken.
09:00:33 <oerjan> !glass {F[f(_a)A!(_o)O!(_t)$(_n)1=,(_isle)(_n)*<2>(_a)(le).?=/(_isle)<1>^\(_n)*<1>(_a)s.?(_t)f.?(_n)*<2>(_a)s.?(_t)f.?(_a)a.?]}{M[m(_a)A!(_f)F!(_o)O!(_n)<1>=(_nlm)<1>=/(_nlm)(_n)*(_f)f.?(_o)(on).?" "(_o)o.?(_n)(_n)*<1>(_a)a.?=(_nlm)(_n)*<20>
09:00:36 <EgoBot> OK
09:00:59 <oerjan> !glass {F[f(_a)A!(_o)O!(_t)$(_n)1=,(_isle)(_n)*<2>(_a)(le).?=/(_isle)<1>^\(_n)*<1>(_a)s.?(_t)f.?(_n)*<2>(_a)s.?(_t)f.?(_a)a.?]}{M[m(_a)A!(_f)F!(_o)O!(_n)<1>=(_nlm)<1>=/(_nlm)(_n)*(_f)f.?(_o)(on).?" "(_o)o.?(_n)(_n)*<1>(_a)a.?=(_nlm)(_n)*<20>(_a)(le).?=\]}
09:01:02 <EgoBot> 0
09:01:29 <oerjan> yep, the Fibonacci program no longer works.
09:09:01 <oerjan> hm...
09:10:04 <oerjan> !glass {M[m(_o)O"Test"T$(_o)o.?]}
09:10:14 <oerjan> !glass {M[m(_o)O"Test"T$,(_o)o.?]}
09:10:30 <oerjan> !glass {M[m(_o)O!"Test"T$(_o)o.?]}
09:10:32 <EgoBot> Test
09:10:35 <oerjan> ah
09:12:26 <oerjan> !glass {M[m(_o)O!"ho""Test"T$,(_o)o.?]}
09:12:30 <EgoBot> ho
09:13:44 <oerjan> oklopol: sorry about the $ specification, it was a documentation bug
09:41:50 <oerjan> although it would probably have been in the spirit of Glass if it wasn't.
10:03:42 -!- oerjan has quit ("Later").
11:02:31 <pgimeno> oh, DM was around
12:40:30 -!- tgwizard has joined.
13:04:23 -!- pgimeno has quit ("kernel upgrade").
13:37:55 -!- pgimeno has joined.
13:39:26 -!- jix_ has joined.
16:40:44 -!- pikhq has joined.
16:43:17 * SimonRC looks at the nasty glass
16:43:21 <SimonRC> ouch
16:43:36 * pikhq thinks about making BFM shorter
16:44:38 <pikhq> basm
16:54:13 -!- oerjan has joined.
16:57:37 <SimonRC> hi
17:02:27 <oerjan> hi
17:11:18 <pikhq> 'Lo.
17:32:25 -!- pgimeno has quit (Remote closed the connection).
18:05:48 -!- ihope has joined.
18:44:51 -!- ihope_ has joined.
19:00:55 -!- pgimeno has joined.
19:01:54 -!- ihope has quit (Connection timed out).
19:59:11 -!- ivan`_ has joined.
20:06:53 -!- ivan` has quit (Read error: 60 (Operation timed out)).
20:06:54 -!- ivan`_ has changed nick to ivan`.
20:35:45 -!- ivan`_ has joined.
20:42:41 -!- ehird has joined.
20:43:09 -!- ehird has left (?).
20:43:23 -!- ivan` has quit (Read error: 145 (Connection timed out)).
20:43:26 -!- ivan`_ has changed nick to ivan`.
22:16:24 -!- Asztal has joined.
22:34:48 -!- oklopol has quit (Read error: 54 (Connection reset by peer)).
22:34:54 -!- okokoko has joined.
22:39:47 -!- Asztal has quit (Read error: 104 (Connection reset by peer)).
22:49:13 -!- ivan`_ has joined.
22:54:10 -!- oerjan has quit ("Good night.").
22:55:30 -!- ivan` has quit (Read error: 104 (Connection reset by peer)).
22:55:30 -!- ivan`_ has changed nick to ivan`.
←2006-12-28 2006-12-29 2006-12-30→ ↑2006 ↑all