←2006-12-26 2006-12-27 2006-12-28→ ↑2006 ↑all
00:00:01 <nooga> woot?
00:00:02 <oklopol> !sadol !a
00:00:09 <oklopol> ?
00:00:26 <oklopol> !sadol !"3oso
00:00:47 <nooga> it is BROKEN?!?!?!?!?!
00:00:52 <oklopol> :DD
00:01:02 <oklopol> but, does it print lists?
00:01:10 <nooga> of crs
00:01:17 <oklopol> good
00:01:24 <nooga> !$3123 => (1 2 3)
00:01:28 <oklopol> only one character names for funcs etc?
00:01:33 <nooga> yea
00:01:40 <oklopol> that's no good :\
00:01:49 <nooga> but you've got scopes
00:01:58 <oklopol> trues.
00:02:48 <nooga> and u can do things like ~f2 ?=#_00 {something} ?=#_01 {something else} {...} 0
00:03:02 <oklopol> lists are passed by reference?
00:03:24 <nooga> and then f0a is not the same as f1a
00:03:39 <nooga> oh, who knows :d
00:04:04 <oklopol> :O
00:04:12 <oklopol> hard to make a binary sort if not...
00:04:17 <oklopol> oh
00:04:19 <oklopol> it's not
00:04:28 <oklopol> globals exist
00:04:41 <nooga> make a function that takes list as a parameter and returns new list
00:04:42 <oklopol> fuck
00:04:52 <oklopol> i was thinking of a sort again...
00:04:58 <oklopol> search is trivial
00:05:05 <oklopol> just wait a few hours...
00:05:08 <oklopol> :D
00:05:18 <nooga> http://regedit.gamedev.pl/BDSM/bubblesort.sad
00:05:22 <nooga> a bubblesort
00:06:13 <bsmntbombdood> booblesort is the best
00:06:16 <bsmntbombdood> *bubble
00:07:36 <nooga> boob le sort
00:09:05 <bsmntbombdood> (.)Y(.)
00:14:14 <nooga> g2g bye
00:14:24 -!- nooga has quit.
00:18:58 -!- jix_ has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
00:22:53 -!- oerjan has quit ("Good night").
00:37:38 -!- ihope__ has changed nick to ihope.
00:40:30 <oklopol> lol
00:40:38 <oklopol> 35 min to do a search :)
00:40:47 <oklopol> hard lang to debug...
01:15:01 -!- calamari has quit ("Leaving").
01:31:45 -!- tgwizard has quit (Remote closed the connection).
01:52:16 <pikhq> GregorR: Like the changes in the current Plof build.
01:52:36 <pikhq> Still doesn't have my for semantics, but. . .
01:54:25 <oklopol> i made quicksort, where
01:54:28 <oklopol> 's the guy :\
01:55:37 <oklopol> ~p1(3(2:b:a$0:s#:l#_00@#l-01?-1>:i[ls]ai]bi$2ab~q1?<#:f#_0-012f+q#:apf0q#a1
01:55:44 <oklopol> nice lang
01:56:15 <oklopol> !sadol
01:56:18 <oklopol> !sadol !5
01:56:27 <oklopol> why is it not working? :(
01:57:19 <bsmntbombdood> for({init},{while},{update},{code});
01:57:33 <oklopol> i see
01:57:35 <bsmntbombdood> is how I would do it
01:57:42 <bsmntbombdood> oklopol: that wasn't for you
01:57:57 <oklopol> i know
01:58:02 <oklopol> :D
01:58:24 <bsmntbombdood> it was for pikhq, GregorR
01:58:42 <oklopol> i figured it right after i'd said my thing
01:58:45 <oklopol> as usual
01:58:49 <oklopol> :)
02:05:26 <pikhq> bsmntbombdood: And that's my modified for semantics.
02:05:41 <bsmntbombdood> Oh
02:05:59 <pikhq> for(reference, {while}, {update}, {code}); is what's current.
02:06:11 <pikhq> And update is evaluated before code.
02:06:22 <pikhq> (that is, in his current version)
02:06:32 <bsmntbombdood> what's reference?
02:06:39 <pikhq> A reference to a variable.
02:06:44 <pikhq> Like a pointer.
02:06:56 <bsmntbombdood> what for?
02:07:16 <pikhq> Well, sort-of like a pointer. . .
02:07:38 <pikhq> It's so that the variable is in the scope of while, update, and code. . .
02:07:55 <bsmntbombdood> odd
02:07:58 <pikhq> Which is pointless, since that variable is *already* in their scope.
02:08:18 <pikhq> It's a piece that was written *before* his interpreter.
02:10:04 <pikhq> I think it was before his scoping rules were fully defined, as well.
02:18:54 -!- pikhq has quit ("leaving").
02:27:57 <CakeProphet> hmmm...
02:28:12 <CakeProphet> I need a language whose entire behavior is undefined.
02:28:23 <CakeProphet> maybe C? -evil snicker-
02:28:34 <oklopol> i have one
02:29:08 <oklopol> it's called zut
02:29:26 <oklopol> or gla
02:29:31 <oklopol> the name is not defined
02:30:07 <oklopol> god 4:24 sleep ->
03:11:02 <bsmntbombdood> sleep is for the weak
03:51:07 -!- Sgeo has joined.
03:51:08 <bsmnt_bot> hi Sgeo!
03:51:22 <Sgeo> Hi
03:51:24 <Sgeo> Is that a bot?
03:51:33 <GregorR> lol
03:51:42 <GregorR> pikhq: Stop making fun of me :P
03:51:48 <Sgeo> erm
03:52:00 <Sgeo> I mean, is it an automatic action to greet me?
03:52:25 <GregorR> Lesse
03:52:26 -!- GregorR has left (?).
03:52:39 -!- GregorR has joined.
03:52:39 <bsmnt_bot> hi GregorR!
03:52:51 <GregorR> Yes it is
03:56:04 <bsmntbombdood> heh
03:56:08 * bsmntbombdood hides
03:57:04 -!- bsmntbombdood has left (?).
03:57:04 -!- bsmntbombdood has joined.
03:57:04 <bsmnt_bot> hi bsmntbombdood!
03:57:14 * bsmntbombdood giggles
03:57:28 <bsmntbombdood> ~exec print [i[0].pattern for i in self.raw_regex_queue]
03:58:32 <bsmntbombdood> ~exec for i in raw_regex_queue: i[0].pattern != '.*JOIN :#esoteric.*' or self.raw_regex_queue.remove(i)
03:58:32 <bsmnt_bot> hi bsmntbombdood!
03:58:36 -!- bsmntbombdood has left (?).
03:58:37 -!- bsmntbombdood has joined.
03:58:37 <bsmnt_bot> hi bsmntbombdood!
03:58:47 <bsmntbombdood> urgh
03:59:02 <bsmntbombdood> ~exec for i in self.raw_regex_queue: i[0].pattern != '.*JOIN :#esoteric.*' or self.raw_regex_queue.remove(i)
03:59:08 -!- bsmntbombdood has left (?).
03:59:10 -!- bsmntbombdood has joined.
03:59:17 <bsmntbombdood> there we go
04:00:00 <Sgeo> hms?
04:00:08 <bsmntbombdood> hms?
04:02:45 <Sgeo> What is the code thingy?
04:02:52 <bsmntbombdood> ?
04:03:44 <bsmntbombdood> my bot?
04:04:41 <Sgeo> What did you change?
04:04:43 <Sgeo> And what lang?
04:04:49 <bsmntbombdood> python
04:05:13 <bsmntbombdood> And the "~exec for i in self.raw_regex_queue: i[0].pattern != '.*JOIN :#esoteric.*' or self.raw_regex_queue.remove(i)" took out the on-join hello message thing
04:08:44 <bsmntbombdood> ~exec self.raw("PRIVMSG #esoteric :hai2u")
04:08:44 <bsmnt_bot> hai2u
04:12:01 -!- beastman has joined.
04:12:12 <bsmntbombdood> hello, beastman!
04:12:18 <beastman> hi
04:12:32 <beastman> please write "hello world"
04:12:39 <bsmntbombdood> ~exec self.register_raw(".*(JOIN) :#esoteric.*", lambda x : bot.raw("PRIVMSG #esoteric :hi %s!" % re.compile("^:(\S+)!.*").match(x).group(1)))
04:12:51 <bsmntbombdood> ~raw PRIVMSG #esoteric hello world
04:12:51 <bsmnt_bot> hello
04:12:58 <bsmntbombdood> ~raw PRIVMSG #esoteric :hello world
04:12:58 <bsmnt_bot> hello world
04:13:10 <beastman> :P
04:13:28 <beastman> Please, some one write the first 16 numbers of the Fibonacci Sequence.
04:14:00 <beastman> http://esoteric.voxelperfect.net/wiki/IRP
04:15:25 -!- beastman has left (?).
04:18:00 <Sgeo> :(
05:40:12 -!- Sgeo has quit (Remote closed the connection).
06:00:35 -!- anonfunc has joined.
06:00:35 <bsmnt_bot> hi anonfunc!
06:01:14 <anonfunc> hello, bot
06:18:13 <bsmntbombdood> hehehe
06:18:50 <bsmntbombdood> that's funny
07:09:43 -!- oerjan has joined.
07:09:43 <bsmnt_bot> hi oerjan!
07:19:33 <oerjan> 1,1,3,5,8,13,21,34,55,89,144,233,377,610,987
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
10:21:35 <ivan`> 1,1,2,3,5,8,13,21,...
10:21:46 <ivan`> er sec
10:22:20 <ivan`> yep
10:22:36 <oerjan> darn
10:23:06 <oerjan> that's what i get for trying to calculate by hand
10:23:59 <oerjan> or rather, memorizing the start
11:38:04 -!- oerjan has quit ("Later").
11:44:56 -!- tgwizard has joined.
11:44:56 <bsmnt_bot> hi tgwizard!
12:20:26 -!- jix_ has joined.
12:20:27 <bsmnt_bot> hi jix_!
12:20:38 <jix_> moin
13:02:16 -!- ihope has quit (Connection timed out).
13:09:08 -!- gerard_ has joined.
13:09:08 <bsmnt_bot> hi gerard_!
13:09:28 <gerard_> hi bsmnt_bot!
13:56:56 <gerard_> !help
15:07:40 -!- gerard_ has quit ("Leaving.").
16:21:20 -!- meolox has joined.
16:21:20 <bsmnt_bot> hi meolox!
16:21:43 <meolox> print "test" || die "I'm dead for no reason"
16:25:29 <meolox> cout << anyonethere ? "yes" : "no";
16:27:48 -!- meolox has left (?).
17:30:02 <oklopol> why is the guy not here
17:30:04 <oklopol> :\
17:32:44 <bsmntbombdood> ~exec self.raw_regex_queue.pop()
17:49:37 -!- calamari has joined.
18:10:53 <oklopol> :(
18:11:01 <oklopol> there already was a quicksort on the page
18:17:07 -!- okokokoko has joined.
18:17:08 -!- oklopol has quit (Read error: 54 (Connection reset by peer)).
18:17:52 -!- okokokoko has changed nick to oklopol.
18:58:30 <CakeProphet> hmmm... Lua looks pretty cool.
19:05:09 -!- oerjan has joined.
19:12:26 -!- calamari has quit (Read error: 104 (Connection reset by peer)).
19:21:56 -!- okokoko has joined.
19:22:14 -!- oklopol has quit (Read error: 54 (Connection reset by peer)).
19:28:03 * CakeProphet is looking for a new language to play around with...
19:28:18 <CakeProphet> something relatively unknown, and usable.
19:33:41 -!- calamari has joined.
19:44:06 -!- okokoko has changed nick to oklopol.
19:45:02 -!- oklobot2 has joined.
19:45:12 <oklopol> it has a language! D:
19:46:54 <oklopol> i'll now prove it to be turing complete
19:47:05 <oklopol> !exec "Hello, world!"PrntNl
19:47:08 <oklobot2> Hello, world!
19:57:29 <oerjan> !exec "Hello, world!"PrntNl
19:57:32 <oklobot2> Hello, world!
19:58:16 <oerjan> !exec "Argle bargle, glof glyp!"PrntNl
19:58:20 <oklobot2> Argle bargle, glof glyp!
19:59:29 <oerjan> ok, it passed the Turing test in reverse :)
20:00:25 <oerjan> !exec "Argle bargle, "PrntNl "glyp glof!"PrntNl
20:00:28 <oklobot2> Argle bargle,
20:00:32 <oklobot2> glyp glof!
20:01:06 <GregorR> CakeProphet: D
20:01:23 <oerjan> E
20:01:59 <oerjan> (yes, there is a relatively unknown language named E)
20:02:12 <CakeProphet> :?
20:03:05 <CakeProphet> bah...
20:03:09 <CakeProphet> those damn letter languages.
20:03:12 <CakeProphet> too many of them!
20:03:52 <GregorR> In that case,
20:03:54 <GregorR> CakeProphet: Plo
20:03:54 <oerjan> in fact there appear to be at least two E languages
20:03:55 <GregorR> Erm
20:03:56 <GregorR> CakeProphet: Plof
20:04:20 <oerjan> i was referring to the secure distributed one
20:05:48 <CakeProphet> I may check out Alice... solely because it has a cool name.
20:05:51 * CakeProphet is shallow.
20:05:59 <CakeProphet> "E" is too bland of a name for my enjoyment.
20:07:39 <oklopol> !exec 5["Many hellos!"PrntNlDrp1SubDbl]
20:07:40 <GregorR> "Plof" is a cool name :P
20:07:42 <oklobot2> Many hellos!
20:07:45 <oerjan> try programming in pure System F :)
20:07:46 <oklobot2> Many hellos!
20:07:48 <oklopol> stupid lang
20:07:50 <oklobot2> Many hellos!
20:07:54 <oklopol> stfu
20:07:54 <oklobot2> Many hellos!
20:07:58 <oklobot2> Many hellos!
20:08:41 <CakeProphet> hmm
20:11:22 <oerjan> !exec 3["Many hellos!"PrntNl1Sub]
20:11:25 <oklobot2> Many hellos!
20:11:30 <oklobot2> Many hellos!
20:11:32 <oklobot2> Many hellos!
20:11:38 <oklobot2> Many hellos!
20:11:42 <oklobot2> Many hellos!
20:11:42 <oerjan> whoops
20:11:45 <oklobot2> Many hellos!
20:11:49 <oklobot2> Many hellos!
20:11:53 <oklobot2> Many hellos!
20:11:56 <Sukoshi> CakeProphet: I know of A, B, C, D, and now E.
20:11:56 <GregorR> ...
20:11:56 <oklobot2> Many hellos!
20:12:01 <oklobot2> Many hellos!
20:12:06 <oklobot2> Many hellos!
20:12:09 <oklobot2> Many hellos!
20:12:13 <oklobot2> Many hellos!
20:12:16 <oklobot2> Many hellos!
20:12:21 <oklobot2> Many hellos!
20:12:26 <oklobot2> Many hellos!
20:12:28 <oklobot2> Many hellos!
20:12:34 <oklobot2> Many hellos!
20:12:36 <oklobot2> Many hellos!
20:12:43 <oklopol> :DD
20:12:44 <Sukoshi> If only IRC servers followed the timeout principle of yesteryear.
20:12:44 <oklobot2> Many hellos!
20:12:45 <oklobot2> Many hellos!
20:12:49 <oklobot2> Many hellos!
20:12:51 -!- oklobot2 has quit (Read error: 104 (Connection reset by peer)).
20:12:52 <oerjan> i seem to have seriously misunderstood the [] command
20:13:04 <oklopol> it does a drop
20:13:10 <Sukoshi> BURN HIM BURN HIM BURN HIM!!!
20:13:11 <oklopol> why? don't ask me
20:13:12 <oklopol> xD
20:13:25 <oklopol> PrntNl doesn't do a drop
20:13:30 <oklopol> why? same reason
20:13:35 <Sukoshi> What language is this?
20:13:44 <oklopol> no name
20:13:52 <oklopol> just made it when i did the bot
20:13:53 <oerjan> i thought it worked like BF, and the Drp and Dbl were redundant
20:14:03 <Sukoshi> What sort of a language is NoName?
20:14:07 <oklopol> nope, stack-based, ut brainfuck []
20:14:17 <oklopol> *but
20:14:26 <oklopol> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ that sort
20:14:35 <Sukoshi> Aha.
20:15:06 <oklopol> you can do a lot of useless stuff with it but outputting sucks so i don't use it that much
20:15:32 <oklopol> very buggy, also, one night project :)
20:15:35 <oerjan> !exec 42PrntNl
20:15:46 <oklopol> overkill
20:15:58 <oerjan> ah it's gone
20:16:07 -!- oklobot2 has joined.
20:16:08 <oklopol> retry
20:16:11 <oerjan> !exec 42PrntNl
20:16:16 <oklobot2> 42
20:16:21 <Sukoshi> What's oklobot2 written in?
20:16:24 <oklopol> c++
20:16:30 <Sukoshi> AH
20:16:37 <Sukoshi> EGAD, FELLOW!
20:17:02 <oklopol> :D
20:17:42 <oerjan> 0["test"PrntNl]
20:17:51 <oerjan> !exec 0["test"PrntNl]
20:17:56 <oklopol> !exec 42 1 2 3SubSubSub2MulPrntNl
20:17:57 <GregorR> EgoBot is written in C++ *shrugs*
20:17:58 <oklobot2> 80
20:18:21 <oklopol> who wrote it?
20:18:32 <Sukoshi> oklopol: Take a wild guess :P
20:18:43 <oklopol> i took already :)
20:18:45 <oklopol> gregor?
20:18:53 <Sukoshi> You may be correct!
20:19:00 <oklopol> all of it?
20:19:06 <oklopol> it knows a lot of langs!
20:19:16 <oklopol> !eval ++1 2 3
20:19:18 <oklobot2> ++1 2 3=6
20:19:23 <oklopol> infix = xD
20:20:04 <oerjan> !exec 2 1PrntNlDrpPrntNl
20:20:08 <oklobot2> 1
20:20:09 <oklopol> GregorR we could do some steamy code swapping but my code is too dirty
20:20:11 <oklobot2> 2
20:20:27 <GregorR> Also, my code is already out there available.
20:20:33 <Sukoshi> Forth is still the best stack based language I've seen.
20:20:38 <oerjan> !exec 2 1SwpPrntNl
20:20:40 <oklobot2> 2
20:20:50 <Sukoshi> oklobot2: Please tell me you write C++ code like GregorR does.
20:20:54 <oklopol> GregorR, link, please
20:21:13 <oklopol> :D
20:21:18 <oklopol> me or the bot?
20:21:28 <GregorR> http://www.esolangs.org/files/egobot/
20:21:50 <pgimeno> oklopol: actually Gregor wrote the IRC code and the interface which executes processes et al; the languages are the actual interpreters by various authors, I think you mean that
20:22:18 <Sukoshi> Yeah.
20:22:25 <oklopol> zap.
20:22:40 <GregorR> And in various languages :)
20:22:53 <Sukoshi> Hey, y'all who know Forth.
20:22:57 <oklopol> hey can i include langs in it if i make em? :O
20:23:03 <Sukoshi> Anyone up for a Forth IRC library?
20:23:56 <Sukoshi> <Silence>
20:24:15 <GregorR> <-- does not know Forth
20:24:33 <GregorR> oklopol: So long as they have no I/O other than std{in,out}
20:24:33 <Sukoshi> You know too few languages GregorR :P
20:24:34 <pgimeno> oklopol: GregorR is the one who has to include them since he's who runs the bot, but you can run your own instance and incorporate a language written by you
20:25:26 <pgimeno> I knew a bit of forth like... 25 years ago or something
20:25:43 <Sukoshi> It's pretty easy to learn.
20:25:44 <pgimeno> (damn, now I feel overaged)
20:26:18 <oerjan> !exec 0 5[Dbl1SubDbl]Drp[MulSwpDbl]DrpPrntNl
20:26:21 <oklobot2> 120
20:26:23 <oklopol> GregorR does the bot take input?
20:26:39 <oerjan> !exec 0 10[Dbl1SubDbl]Drp[MulSwpDbl]DrpPrntNl
20:26:41 <oklobot2> 3628800
20:26:59 <Sukoshi> I challenge the community to make an alternative to EgoBot in CL or Forth.
20:27:07 <oklopol> you can't seriously be able to use that, oerjan?
20:27:19 <oerjan> bwahaha!
20:27:32 <oerjan> like my factorial program? :)
20:27:45 <oklopol> :)
20:28:33 <oklopol> Swp
20:28:38 <oklopol> how?
20:28:50 <oerjan> i just guessed Swp
20:28:55 <oklopol> and Mul
20:29:03 <oerjan> no, you used that above
20:29:09 <oklopol> oh i might've
20:29:24 <oklopol> you're sick
20:29:42 <oerjan> although i could have used just one loop if i knew what command does deep copy :)
20:30:02 <oklopol> there is a Rot
20:30:04 <oklopol> for 3
20:30:18 <oerjan> hm...
20:30:20 <oklopol> deep copy?
20:30:25 <GregorR> oklopol:
20:30:28 <GregorR> !help i
20:30:35 <oklopol> !help i?
20:30:41 <oerjan> getting a copy of something not on top of the stack
20:30:42 <GregorR> Oh wait, that's right - Hahahah
20:30:46 <GregorR> I disabled it last night :P
20:30:50 <GregorR> It still hasn't pinged out.
20:30:52 <GregorR> Incredible.
20:30:57 -!- EgoBot has quit (Read error: 104 (Connection reset by peer)).
20:31:01 <oklopol> :D
20:31:04 <Sukoshi> YOu were saying?
20:31:05 <Sukoshi> ;D
20:31:13 <GregorR> That wasn't a ping timeout.
20:31:13 <oklopol> oerjan, there is no way to do that
20:31:18 <oklopol> :D
20:31:20 <Sukoshi> Oh. True.
20:31:28 <oklopol> yet, you want?
20:31:28 -!- EgoBot has joined.
20:31:31 <GregorR> !help i
20:31:33 <EgoBot> Use: i <pid> <input> Function: send input to a process
20:31:46 <oerjan> however i can copy the second item by combining Rot and Dbl.
20:31:53 <oerjan> let's see...
20:32:04 <oklopol> yes, but you cannot copy the nth item
20:32:13 <oklopol> it don't think it's turing complete
20:32:15 <Sukoshi> You should add in capability for words, like Forth.
20:32:28 <oklopol> me of gregor?
20:32:35 <Sukoshi> You oklopol.
20:32:43 <Sukoshi> That way you can extend the language, kinda.
20:32:44 <oklopol> !exec "Sukoshi""o"SubPrntNl
20:32:47 <EgoBot> Huh?
20:32:48 <oklobot2> Sukshi
20:32:50 <GregorR> The phrase "me of Gregor"
20:32:57 <GregorR> Is how a caveman asks if I'm his father.
20:33:08 <oklopol> xD
20:33:08 <oklopol> *or
20:33:16 <Sukoshi> I ... have... the POWER!!!!
20:33:20 <oerjan> !exec 1 2 3RotPrntNl
20:33:23 <EgoBot> Huh?
20:33:24 <oklobot2> 1
20:33:32 <Sukoshi> Poor EgoBot.
20:33:43 <EgoBot> I'm so confused!
20:33:49 <oklopol> :)
20:34:13 <oklopol> oerjan, i've made fibonacci and factorials
20:34:27 <oklopol> and primes, tho don't remember what actually
20:34:30 <oklopol> something with them
20:34:43 <oerjan> !exec 1 10[DblRotMulSwp1SubDbl]DrpPrntNl
20:34:45 <EgoBot> Huh?
20:34:46 <oklobot2> 3628800
20:35:08 <oerjan> simpler that way
20:35:10 <oklopol> you cannot concatenate numbers into a string yet
20:35:26 <oklopol> simpler than?
20:35:32 <oklopol> ah
20:35:34 <oerjan> than using two loops
20:35:40 <oklopol> i thought it was c/v
20:35:50 <oklopol> shame on me
20:36:11 <Sukoshi> Anyone accept my challenge?!
20:36:13 <oerjan> c/v?
20:36:24 <oklopol> copypaste
20:36:25 <Sukoshi> No. The EgoBot thing.
20:37:08 <oklopol> i don't know actually whether nums and strings can be concateneted
20:37:11 <oklopol> *ated
20:37:23 <oklopol> so i'll crash the bot now, prolly
20:37:29 <oklopol> !exec "o"6AddPrntNl
20:37:34 <EgoBot> Huh?
20:37:56 <oklopol> survived but couldn't do it :)
20:38:30 <oerjan> darn
20:39:52 <oerjan> it _might_ still be Turing complete. We have free use of three variables which should give us a universal Minsky machine.
20:40:19 <oklopol> make a bf compiler :)
20:40:23 <oklopol> :DD
20:40:34 <oklopol> but, seems it is supported already
20:40:44 <oerjan> although that assumes bignums
20:41:00 <oklopol> there seems to be a special error type
20:41:34 <oklopol> oklobot has only implementation spesific range for the nums
20:42:07 <oklopol> !exec 4 "a"4Add Drp PrntNl
20:42:09 <oklobot2> 4
20:42:09 <EgoBot> Huh?
20:42:19 <oklopol> the error was dropped
20:42:35 <oklopol> i'll change it now, ayway
20:42:37 <oklopol> *any
20:42:41 <oerjan> !exec 3"test"MulPrntNl
20:42:43 <EgoBot> Huh?
20:42:44 <oklobot2> testtesttest
20:42:53 <oerjan> yay!
20:44:13 <oklopol> :D
20:44:43 <oklopol> !exec 6"test"Mul"test"2MulSubPrntNl
20:44:46 <EgoBot> Huh?
20:44:47 <oklobot2> testtesttesttest
20:45:57 <oerjan> !exec 6"42"AddPrntNl
20:46:00 <EgoBot> Huh?
20:46:33 <oerjan> !exec 42 6DivPrntNl
20:46:36 <EgoBot> Huh?
20:46:36 <oklobot2> 7
20:47:00 <oerjan> !exec "TestTest"2DivPrntNl
20:47:04 <EgoBot> Huh?
20:47:13 <oklopol> i might have it now
20:47:15 <oklopol> but gotta reboot
20:47:20 -!- oklobot2 has quit (Read error: 104 (Connection reset by peer)).
20:47:35 <oerjan> have what?
20:47:42 -!- oklobot2 has joined.
20:47:49 <oklopol> !exec 4" elephants"AddPrntNl
20:47:51 <oklobot2> elephants
20:47:52 <EgoBot> Huh?
20:47:54 <oklopol> ...
20:47:57 <oklopol> almost :)
20:48:17 <oerjan> !exec 65"elephants"AddPrntNl
20:48:18 <EgoBot> Huh?
20:48:20 <oklobot2> elephants
20:49:13 <oklopol> hmph
20:49:14 <oklopol> i blame the compiler
20:49:17 -!- oklobot2 has quit (Read error: 104 (Connection reset by peer)).
20:49:41 <oklopol> k it crashed
20:49:46 <oklopol> the compiler
20:49:55 <oklopol> as i closed the bot
20:50:10 <oklopol> vc++6, gotta recommend it
20:50:48 <pgimeno> heh, a few days ago I stumbled upon gcc bug 28545
20:51:12 <oerjan> which is?
20:51:21 <pgimeno> a miscompiled mul
20:52:00 <pgimeno> squaring a variable multiplied it with the wrong register
20:52:30 -!- oklobot2 has joined.
20:52:35 <oklopol> !exec 6"6"AddPrntNl
20:52:38 <EgoBot> Huh?
20:52:40 <oklopol> debug :)
20:53:04 -!- oklobot2 has quit (Read error: 104 (Connection reset by peer)).
20:53:12 <oklopol> i'm an idiot.
20:54:41 -!- oklobot2 has joined.
20:54:42 <oklopol> !exec 6"6"AddPrntNl
20:54:46 <EgoBot> Huh?
20:54:49 <oklobot2> 66
20:55:55 <oklopol> with bignums, 3 vars is an infinite amount of vars with minited access
20:56:00 <oklopol> *limited
20:56:12 <oklopol> what have i been smoking 8|
21:00:28 <oerjan> is there any way to pick apart strings?
21:01:52 <oklopol> subtraction is the only thing
21:01:54 <oklopol> i think
21:01:55 <oklopol> i can check
21:02:38 <oklopol> haha xD
21:02:52 <oklopol> !exec "zupidap"NegPrntNl
21:02:54 <oklobot2> padipuz
21:02:54 <EgoBot> Huh?
21:03:55 <pgimeno> !exec "dabale arroz a la zorra el abad"NegPrntNl
21:03:57 <oklobot2> daba le arroz al a zorra elabad
21:03:58 <EgoBot> Huh?
21:04:06 <pgimeno> (spanish palindrome)
21:04:34 <pgimeno> !exec "a man, a plan, a canal, panama"NegPrntNl
21:04:36 <EgoBot> Huh?
21:04:37 <oklobot2> amanap ,lanac a ,nalp a ,nam a
21:04:42 <oklopol> sorry, no :(
21:05:12 <oerjan> !exec "\""PrntNl
21:05:14 <EgoBot> Huh?
21:05:23 <oklopol> :D
21:05:34 <oklopol> sorry, no way to do that xD
21:05:40 <oerjan> hard to get a quine then
21:05:52 <oklopol> impossible, proven
21:06:22 <oklopol> splitting strings... Div?
21:07:04 <oerjan> !exec1.2 1.2AddPrntNl
21:07:08 <EgoBot> Huh?
21:07:24 <oerjan> no floats...
21:07:27 <oklopol> nope :\
21:07:43 <oklopol> a new data type...
21:07:46 <oerjan> any way to test strings?
21:07:49 <oklopol> would take time :(
21:07:52 <oklopol> test?
21:08:06 <oklopol> !exec "asd""fgh"MrePrntNl
21:08:07 <oerjan> say, for equality, or being empty
21:08:08 <EgoBot> Huh?
21:08:08 <oklobot2> 0
21:08:13 <oklopol> !exec "asd""fgh"LesPrntNl
21:08:16 <oklobot2> 1
21:08:17 <EgoBot> Huh?
21:08:22 <oklopol> seems there is xD
21:08:29 <oklopol> i don't remember anything
21:08:42 <oklopol> Equ of course too
21:09:20 <oerjan> !exec "as" "asd"LesPrntNl
21:09:22 <oklobot2> 1
21:09:23 <EgoBot> Huh?
21:09:35 <oklopol> i've been thinking about considering making a better language....
21:09:42 <oerjan> !exec "as" "asd"MrePrntNl
21:09:44 <oklobot2> 0
21:09:44 <EgoBot> Huh?
21:09:49 <oklopol> you know K?
21:10:07 <oerjan> no
21:10:21 <oklopol> i was gonna do K with code as just a list of ints
21:10:31 <oklopol> actually
21:10:37 <oklopol> i didn't mean to do K
21:11:00 <oklopol> i just happened to bump into it as i was coding my lang and it had most of the features
21:11:10 <oklopol> i think it was created just to annoy me
21:12:21 <oerjan> i still don't know what K means
21:12:30 <oklopol> floats would require me to alter the raw code parser
21:12:32 <oklopol> *shiver*
21:12:44 <oklopol> it's a lang you should learn :)
21:12:46 <oklopol> very cool
21:13:45 <oklopol> http://www.answers.com/topic/k-programming-language-1
21:14:23 <oklopol> best use of infix i ever saw
21:16:54 <pgimeno> damn, soon there will be more than 26 single-letter languages
21:17:38 <oerjan> well, there is already Omega
21:18:27 <oklopol> gotta pick my letter fast before we run out!
21:18:33 <oklopol> i'll take iota
21:18:34 <oklopol> oh
21:18:36 <oklopol> it's taken
21:19:02 <oklopol> pi
21:19:15 <oerjan> well, there is pi calculus
21:20:16 <oklopol> :(
21:20:52 <oerjan> and at least gamma and lambda
21:21:20 <oerjan> and rho
21:21:39 <oklopol> so many langs i don't know
21:21:53 <oklopol> luckily most are the same and can be learned in an hour
21:22:05 <oklopol> (up to fibonacci level!)
21:26:19 <oerjan> !exec 1 1 5[RotRotDblRotAddRot1SubDbl]DrpPrntNl
21:26:22 <oklobot2> 13
21:26:22 <EgoBot> Huh?
21:27:48 <oklopol> make it print 10 first in a row, hyphenated
21:28:03 <oklopol> 10 might be too much
21:28:09 <oklopol> no
21:31:49 <oerjan> !exec 1 1 9[RotRotDblRotPrnt"-"PrntDrpAddRot1SubDbl]DrpPrntNl
21:31:51 <EgoBot> Huh?
21:32:10 <oklobot2> 1PRIVMSG #esoteric :-PRIVMSG #esoteric :1PRIVMSG #esoteric :-PRIVMSG #esoteric :2PRIVMSG #esoteric :-PRIVMSG #esoteric :3PRIVMSG #esoteric :-PRIVMSG #esoteric :5PRIVMSG #esoteric :-PRIVMSG #esoteric :8PRIVMSG #esoteric :-PRIVMSG #esoteric :13PRIVMSG #esoteric :-PRIVMSG #esoteric :21PRIVMSG #esoteric :-PRIVMSG #esoteric :34PRIVMSG #esoteric :-PRIVMSG #esoteric :89
21:32:22 <oerjan> wow
21:33:31 <oerjan> is there no way to print a string without newline?
21:34:15 <oerjan> or maybe the above may be considered a bug.
21:37:34 <oklopol> haha xD
21:37:37 <oklopol> Nl is needed
21:38:22 <oklopol> it was Prnt first but i separated the newline so that you could "append to irc" without realizing other stuff is sent too :)
21:38:34 <oklopol> bug
21:38:36 <oklopol> kinda
21:38:50 <oklopol> supposed to work like that
21:38:57 <oklopol> but as it doesnt
21:39:06 <oklopol> !exec 3"-"4AddAddPrntNl
21:39:09 <oklobot2> 3-4
21:39:09 <EgoBot> Huh?
21:39:46 <oerjan> the problem is i have already used up 3 variables so i don't have room to bring along a string.
21:40:59 <oklopol> :)
21:41:05 <oklopol> oh
21:41:39 <oklopol> you can end according to the sum instead of the number of fibonacci numbers
21:41:47 <oklopol> but it would be cheating, true
21:42:40 <oklopol> hmm i can make Lft
21:43:04 <oklopol> or Cpy
21:43:35 * oerjan snaps his fingers
21:43:58 <oerjan> i see a solution, though it is ugly
21:44:29 <oerjan> !exec 1 1 3[RotRotDblRotAddRot1SubDbl]DrpPrntNl
21:44:31 <oklobot2> 5
21:44:33 <EgoBot> Huh?
21:45:25 <oklopol> ah :D
21:45:41 <oklopol> yeah you can make it with O(n^2)
21:45:52 <oklopol> found it too
21:45:55 <oerjan> no, it is better than that.
21:45:58 <oklopol> :O
21:46:07 <oklopol> i'll see the code then :)
21:52:09 <oklopol> i want that sadol guy here :(
22:02:03 <oklopol> you gonna do it?
22:02:32 <oerjan> !exec 1 1 8[RotRotDblRotAddRot1SubDbl]Drp""Rot[RotRotSwpDbl"-"SwpAddRotAddRotRotSwpDblRotSwpSubSwpRotRotDbl]DrpAddPrntNl
22:02:35 <oklobot2> 1-1-2-3-5-8-13-21-34-55
22:02:36 <EgoBot> Huh?
22:03:03 <oerjan> right on cue :)
22:05:02 <oerjan> your idea of ending with the sum instead gave me the idea to carry the counter upwards, then the string downwards
22:05:26 <oerjan> since the basic fibonacci algorithm is reversible
22:06:33 <oklopol> god i'm stupid :O
22:06:37 <oklopol> so obvious
22:07:08 <oerjan> although it does duplicate work in a way
22:08:00 <oklopol> true, but i would've made it O(n^2) so...
22:09:01 <oklopol> hmm
22:09:04 <oerjan> by recalculating completely for each value?
22:09:11 <oklopol> yes :)
22:10:18 <oklopol> !exec 1 1 5[RotRotDblRotAddRot1SubDbl]DrpPrntNl
22:10:20 <oklobot2> 13
22:10:21 <EgoBot> Huh?
22:12:43 <oklopol> !exec "" 10 [ Dbl 1 1 Rot 2Sub[RotRotDblRotAddRot1SubDbl]Drp Rot "-"Add Swp 1 Sub Dbl ] I have no idea anymore... fucking headache :((
22:12:45 <EgoBot> Huh?
22:12:54 <oklopol> !exec "" 10 [ Dbl 1 1 Rot 2Sub[RotRotDblRotAddRot1SubDbl]Drp Rot "-"Add Swp 1 Sub Dbl ] DrpPrntNl
22:12:58 <EgoBot> Huh?
22:13:29 <oklopol> maybe in the morning... can't think now
22:15:07 <oklopol> !exec "" 10 [ Dbl 1 1 Rot 2Sub[RotRotDblRotAddRot1SubDbl]Drp Rot Add"-"Add Swp 1 Sub Dbl ] DrpPrntNl
22:15:10 <EgoBot> Huh?
22:17:20 <oklopol> !exec "" 10 [ Dbl 1 1 Rot 2Sub[RotRotDblRotAddRot1SubDbl]Drp RotSwp Add"-"Add Swp 1 Sub Dbl ] DrpPrntNl
22:17:22 <EgoBot> Huh?
22:17:26 <oklopol> can't see the problem :(
22:17:42 <oerjan> !exec "anyone there?"PrntNl
22:17:44 <EgoBot> Huh?
22:17:44 <oklobot2> anyone there?
22:17:52 <oklopol> :)
22:18:00 <oklopol> tell me the problem
22:18:15 <oklopol> why don't we do an active debug session on that code?
22:19:21 <oklopol> oklobot2 is not that interactive
22:19:36 <oklopol> oerjan can you see my problem?
22:20:01 <oklopol> ah
22:20:08 <oklopol> i'm an idiot
22:20:11 <oklopol> that's the problem
22:20:23 <oklopol> !exec 1 1 5[RotRotDblRotAddRot1SubDbl]DrpPrntNlDrpPrntNlDrpPrntNl
22:20:25 <oklobot2> 13
22:20:26 <EgoBot> Huh?
22:20:29 <oklobot2> 8
22:20:35 <oerjan> you certainly seem to have an overly low self-esteem...
22:21:04 <oklopol> !exec "" 10 [ Dbl 1 1 Rot 2Sub[RotRotDblRotAddRot1SubDbl]Drp SwpDrp RotSwp Add"-"Add Swp 1 Sub Dbl ] DrpPrntNl
22:21:06 <EgoBot> Huh?
22:21:09 -!- oklobot2 has quit (Read error: 104 (Connection reset by peer)).
22:21:12 <oklopol> :)
22:21:38 <oerjan> i was just about to convince myself you needed that change
22:22:02 -!- oklobot2 has joined.
22:22:42 <oklopol> gotta have more probs
22:22:56 <oklopol> but i won't rewrite it from scratch!
22:23:08 <oklopol> even if it takes only a minute
22:23:43 <oklopol> !exec "" 10 [ Dbl 1 1 Rot 2Sub[RotRotDblRotAddRot1SubDbl]Drp PrntNl SwpDrp RotSwp Add"-"Add Swp 1 Sub Dbl ] DrpPrntNl
22:23:46 <oklobot2> 55
22:23:46 <EgoBot> Huh?
22:23:51 <oklobot2> 34
22:23:53 <oklobot2> 21
22:23:58 <oklobot2> 13
22:24:03 <oklobot2> 8
22:24:05 <oklopol> seems to work fine
22:24:08 <oklobot2> 5
22:24:10 <oklobot2> 3
22:24:14 <oklobot2> 2
22:24:18 <oklobot2> 1
22:24:22 -!- oklobot2 has quit (Read error: 104 (Connection reset by peer)).
22:24:25 <oklopol> :D
22:25:10 <oklopol> i do the thing for negative numbers
22:25:24 <oklopol> and for some reason it doesn't like it
22:25:30 <oklopol> :D
22:25:51 <oklopol> my problem is the "module" which i regarded as "safe"
22:26:09 <oerjan> try using [ Dbl 0 1 Rot 1Sub
22:26:44 <oklopol> !exec "" 10 [ Dbl 0 1 Rot 1Sub[RotRotDblRotAddRot1SubDbl]Drp PrntNl SwpDrp RotSwp Add"-"Add Swp 1 Sub Dbl ] DrpPrntNl
22:26:46 <EgoBot> Huh?
22:26:47 <oerjan> or even [Dbl 1Neg 0 Rot
22:26:48 <oklopol> whoops
22:27:22 <oklopol> !exec "" 10 [ Dbl 0 1 Rot 1Sub[RotRotDblRotAddRot1SubDbl]DrpSwpDrp RotSwp Add"-"Add Swp 1 Sub Dbl ] PrntNl
22:27:26 <EgoBot> Huh?
22:27:39 <oerjan> bot's not here
22:27:45 <oklopol> ...
22:27:49 <oklopol> you know what?
22:27:57 <oklopol> i'm an idiot.
22:28:03 <oklopol> i'd kick myself if i was op
22:28:12 <oklopol> the bot is ON
22:28:26 -!- oklobot2 has joined.
22:28:30 <oklopol> !exec "" 10 [ Dbl 0 1 Rot 1Sub[RotRotDblRotAddRot1SubDbl]DrpSwpDrp RotSwp Add"-"Add Swp 1 Sub Dbl ] DrpPrntNl
22:28:32 <EgoBot> Huh?
22:28:38 <oklopol> haha :D
22:28:39 -!- oklobot2 has quit (Read error: 54 (Connection reset by peer)).
22:28:52 <oklopol> i have a non-irc debugger also
22:29:02 <oklopol> but would take me a year to locate the folder
22:29:16 -!- oklobot2 has joined.
22:29:16 <oerjan> i repeat: or even [Dbl 1Neg 0 Rot
22:29:53 <oklopol> but but btu butbtu
22:30:28 <oklopol> !exec "" 11 [ Dbl 0 1 Rot 1Sub[RotRotDblRotAddRot1SubDbl]DrpSwpDrp RotSwp Add"-"Add Swp 1 Sub 1Gre ] DrpPrntNl
22:30:31 -!- oklobot2 has quit (Read error: 54 (Connection reset by peer)).
22:30:32 <EgoBot> Huh?
22:30:35 <oklopol> Mre
22:30:37 <oklopol> not Gre
22:31:05 -!- oklobot2 has joined.
22:31:05 <oerjan> you need to keep the Dbl as well
22:31:18 <oklopol> why?
22:31:28 <oklopol> true
22:31:34 <oklopol> !exec "" 11 [ Dbl 0 1 Rot 1Sub[RotRotDblRotAddRot1SubDbl]DrpSwpDrp RotSwp Add"-"Add Swp 1 Sub Dbl1Mre ] DrpPrntNl some day...
22:31:36 <EgoBot> Huh?
22:31:37 <oklobot2> 89-55-34-21-13-8-5-3-2-1-
22:31:42 <oklopol> YE!
22:31:59 <oklopol> !exec "" 11 [ Dbl 0 1 Rot 1Sub[RotRotDblRotAddRot1SubDbl]DrpSwpDrp Rot Add"-"Add Swp 1 Sub Dbl1Mre ] DrpPrntNl
22:32:01 <oklobot2> 123581321345589----------
22:32:02 <EgoBot> Huh?
22:32:05 <oklopol> :D
22:32:16 <oklopol> !exec "" 11 [ Dbl 0 1 Rot 1Sub[RotRotDblRotAddRot1SubDbl]DrpSwpDrp Rot "-"AddAdd Swp 1 Sub Dbl1Mre ] DrpPrntNl
22:32:18 <EgoBot> Huh?
22:32:18 <oklobot2> 123581321345589----------
22:33:41 <oklopol> !exec "" 11 [ Dbl 0 1 Rot 1Sub[RotRotDblRotAddRot1SubDbl]DrpSwpDrp Rot Add"-"SwpAdd Swp 1 Sub Dbl1Mre ] DrpPrntNl
22:33:44 <EgoBot> Huh?
22:33:48 <oklobot2> -1-2-3-5-8-13-21-34-55-89
22:33:58 <oklopol> !exec "" 11 [ Dbl 0 1 Rot 1Sub[RotRotDblRotAddRot1SubDbl]DrpSwpDrp Rot Add"-"SwpAdd Swp 1 Sub Dbl1Mre ] Drp"-"SubPrntNl
22:34:01 <oklobot2> 1-2-3-5-8-13-21-34-55-89
22:34:02 <EgoBot> Huh?
22:34:07 <oerjan> yay!
22:34:11 <oklopol> :D
22:34:12 -!- lindi- has left (?).
22:34:23 <oklopol> i managed to make a worse version!
22:34:48 <oklopol> i'm not really that lousy, it's the head, must be :D
22:54:44 <CakeProphet> wow... that's a weird language.
22:55:13 <CakeProphet> Hmmm... it reminds me of like... the stack of a prettier language.
22:55:25 <CakeProphet> the procedures appear after the input and such.
22:59:34 <oklopol> that one is a pretty standard bad stack-based language :)
22:59:37 <oklopol> you should see my esoteric ones
23:03:06 <CakeProphet> well... at least it's easy to parse :D
23:03:57 <oklopol> infix and stack-based are, that's why i usually make them :)
23:04:00 <oklopol> *prefix
23:04:03 <oklopol> polish
23:04:06 <oklopol> notation
23:04:11 <oklopol> not infix
23:04:15 <oklopol> that's the hard one
23:04:19 <oklopol> "hard"
23:06:13 <CakeProphet> hmm... like 2+ 2?
23:07:27 <oklopol> ?
23:07:36 <CakeProphet> is 2 + 2 infix?
23:07:40 * CakeProphet forgot his terminology
23:07:42 <oklopol> yes
23:08:05 <CakeProphet> heh... method calls are "almsost prefix"
23:08:16 <oklopol> i've made two infix parsers
23:08:34 <oklopol> zu
23:08:42 <oklopol> each worse than the other
23:08:49 <CakeProphet> Fun.
23:09:16 <oklopol> sure
23:09:38 <oklopol> you know how you sometimes get the feeling you gotta make an infix parser
23:10:32 -!- oerjan has quit ("Good night").
23:12:10 <CakeProphet> ...no
23:12:18 -!- Asztal has joined.
23:12:28 <oklopol> really?
23:12:33 <CakeProphet> ...nope
23:12:57 <oklopol> what do you life for then?
23:12:57 <CakeProphet> hmm... I see how they would be neato.
23:13:00 <oklopol> *live
23:13:01 <CakeProphet> Like subject verb...
23:13:33 <CakeProphet> <.<
23:13:45 <Sukoshi> I made an infix parser for my test-case CAS.
23:13:58 <oklopol> i want to sleep goddamned, is there a sleepy language? :\
23:14:01 <CakeProphet> I think parsing things in the order they are to be... evaluated... makes the most sense. :D
23:14:04 <oklopol> no, they're all great :(
23:14:09 <CakeProphet> C is fairly boring.
23:14:27 <Sukoshi> Well, it's not your most conceptually radical language on the block.
23:14:36 <Sukoshi> But it's fast and gets the job done.
23:16:10 * CakeProphet finds it confusing and annoying to work with.
23:16:35 <CakeProphet> Like a big rubix cube.
23:16:45 <CakeProphet> That random goes off into undefined behavior.
23:16:57 <Sukoshi> The only reason C is confusing is because you're thinking too much.
23:17:07 <Sukoshi> There's almost no other reason for it to be confusing.
23:17:46 <Sukoshi> I think it's easier to train someone in C than it is a lot of other languages because the conceptual baggage is so small. Pointers are ``complicated'' ? Yeah right, compare pointers to multiple inheritance.
23:17:48 <oklopol> isn't thinking by definition the only thing that can cunfuse you?
23:17:48 <Asztal> C++ is far better for undefined behaviour
23:17:54 <oklopol> *confuse
23:18:58 <Sukoshi> I think the only thing complicated about a pointer is that it's stupid terminology (why not simply call it an address?).
23:19:17 <Asztal> it doesn't have to be an address
23:19:24 <Sukoshi> Yeah, I was thinking that.
23:19:25 <Asztal> I don't think the C standard says that anywhere
23:19:48 <Sukoshi> Well, is a pointer a big sign with letters on it? No :P
23:20:27 <Asztal> Who knows, maybe someone will write a C interpreter, then it will just be a ... something :o
23:20:41 <Sukoshi> There are C interpreters out there, I'll betcha.
23:21:21 <Sukoshi> And I think maybe for a tad bit more ``cleanliness'' offer an alternative syntax for something like ``ptr int a; int b; a = (ptr) b;''
23:21:44 <Sukoshi> (Note: I didn't think that through for a long time, so if there are conceptual errors, guffaw for you.)
23:22:01 <Asztal> VB used to have AddressOf and ValueAt ;)
23:22:18 <Sukoshi> Woaha. VB had pointers? :D
23:22:31 <oklopol> vb had everything
23:22:47 <CakeProphet> I don't see the use of pointeres....
23:22:58 <Sukoshi> CakeProphet: ..................... ?
23:23:24 <Sukoshi> Imagine you have a magic function `` int magic''
23:23:38 <CakeProphet> I mean... why do you want to explicitly define something to be a reference?
23:23:51 <Sukoshi> CakeProphet: How else would you?
23:23:52 <CakeProphet> You could just make everything a reference to an underlying thing in memory
23:24:17 <Sukoshi> Then how would you assign anything to anywhere?
23:24:55 <Sukoshi> (I think I understand your argument, but that's a question for more clarification.)
23:24:59 <CakeProphet> with... a variable assignment?
23:25:15 <oklopol> java--
23:25:17 <oklopol> maybe?
23:25:25 <CakeProphet> x = 2
23:25:44 <CakeProphet> eh... it's how Python works. Although I don't exactly grasp the entire concept of a pointer, so I may have a bad idea of what they do.
23:25:57 <Sukoshi> No no, you've hit on the ages-old pointer gripe (I think).
23:26:11 <oklopol> a pointer is an integer :\
23:26:16 <oklopol> nothing else.
23:26:25 <Sukoshi> I think, and here I'm not sure even, that the concept of a pointer is seperated from a normal variable only for the sake of side-effects in code.
23:27:14 <Sukoshi> So that, a function can have a copy of something, modify it to he**, and make the rest of the program none the wiser. Now why referential passing isn't default behavior and value passing is is anyone's guess.
23:27:36 <Sukoshi> *and value passing a special case
23:29:23 <CakeProphet> in Python, everything is implicitly a reference, and there are ways to "copy" the value of an object so that it's a separate entity.
23:29:37 <Sukoshi> That's something I'm not too fond of.
23:29:51 <Sukoshi> Because the concept of a reference is implied, not explicity.
23:30:03 <CakeProphet> x = [1,2,3,4,5,6]; x = y; x.append(2); x == y <---True
23:30:10 <CakeProphet> er...
23:30:12 <CakeProphet> y = x
23:30:34 <Sukoshi> Effeciency wise, that's slow. It's also annoying with low-level code. Plus it makes you memorize rules (like in Java, objects reference pass, but basic types value pass).
23:30:59 <CakeProphet> hmmm, seems intuitive to me, but Python is my first language soooo...
23:31:19 <Sukoshi> That's a'cuz you don't bit-twiddle much.
23:32:01 <Sukoshi> That distinction in conjunction with structs are what really give C power. My gripe is simply over the default distinction.
23:32:06 <CakeProphet> It's basically just for mutable sequences... immutable data can't be altered, and thus the difference reference and value is pretty much nothing.
23:32:39 <Sukoshi> But... you have to memorize what's mutable and immutable.
23:32:47 <Sukoshi> Giving you less flexibility on how you manage data.
23:32:49 <CakeProphet> *shrugs* Doesn't take too long.
23:33:27 <CakeProphet> tuples and strings are immutable. Lists and dictionaries are mutable.
23:34:33 <CakeProphet> and since OO in Python is basically just a pretty interface over dictionaries... classes and objects are mutable.
23:36:42 <Sukoshi> But why should a language even decide what data is or is not mutable?
23:37:04 <CakeProphet> *shrugs* It's just sort of the nature of the data itself that makes it so.
23:37:23 <Sukoshi> Remember where C is aimed. Not for building complex idioms or beautiful programs, it was originally designed to build OSs.
23:37:45 <CakeProphet> it's not an enforced thing... a mutable object can be duplicated.
23:37:48 <Sukoshi> You aren't going to get speed and control out of something that decides mutability for you.
23:38:11 <CakeProphet> *nods* Different design goals.
23:38:32 <CakeProphet> and since I'm not building OSes... I don't see much of a need for the paranoid efficiency of C. :D
23:38:59 <Sukoshi> Anything low-level, including I can almost guarantee, Python's interpreter.
23:39:42 <Sukoshi> Copying files, talking on a network, etc, etc.
23:40:00 <CakeProphet> eh... Python isn't as slow as people make it out to be.
23:40:14 <CakeProphet> If you use it right, it works fine for normal environments.
23:40:30 <Sukoshi> But, I'm not going to use Python to make something that copies files for me.
23:40:45 <Sukoshi> Or handles enormous amounts of data with/without transformations.
23:40:54 <jix_> Sukoshi: well the harddisk will be the bottleneck even when you use python (for just copying)
23:41:07 <Sukoshi> jix_: Errr, I meant not *just* copying.
23:41:20 <jix_> well then yes....
23:41:46 <CakeProphet> I could consider file copying a "normal" situation.
23:41:52 <Sukoshi> Heck, some people even rewrite portions of libc and stdlib to get the speed they want in certain situations.
23:41:54 <CakeProphet> Python would work fine for file manipulations.
23:42:05 <jix_> doing things like a chess AI is a thing i don't want to do in c because writing it in c is a pain in the ass but i don't want to use other higher level languages because i use too much performance :/
23:42:12 <CakeProphet> Some people are insanely paranoid about speed.
23:42:36 <CakeProphet> Premature optimization.
23:42:50 <Sukoshi> CakeProphet: If you're writing a utility that's going to be widely used, portable on many OSs, or is something of that nature, you're going to use C.
23:43:23 <Sukoshi> I'm working on a project now (we're hoping to get it accepted into GNU) that deals a *lot* with sockets and files and parsers. This is C's domain.
23:43:35 <CakeProphet> That's simply because C is used everywhere.
23:43:42 <tokigun> I agree with Sukoshi. why I use C is mainly for portability, not for speed.
23:44:00 <Sukoshi> CakeProphet: Higher level languages are a pain to ensure portability for.
23:44:13 <Sukoshi> The higher the language, the harder to implement the idioms on different platforms.
23:44:39 <jix_> yeah most portable apps are written in c.....
23:44:48 <CakeProphet> I have a utility for Python that compiles the entire program into an .exe that can work independent of a python interpreter.
23:44:50 <jix_> or c++ that's pretty portable too
23:44:57 <CakeProphet> Sure... it adds a few MBs to the file size... but it's portable. :D
23:45:00 <jix_> CakeProphet: on mac os x?
23:45:06 <CakeProphet> No.
23:45:16 <Sukoshi> Plus, the project I'm working on still is pretty slow compared to (one of) its competitor(s) (the project has multiple functions) -- GNU cp.
23:45:19 <jix_> CakeProphet: on some propertary(wrong spelling for sure... i hate that word) embedded device?
23:45:20 <CakeProphet> I use XP myself... but the utility is independent of OS
23:45:35 <CakeProphet> no.. it's just a... program.
23:45:59 <Sukoshi> The mmap patch I recently committed sped it up, but we still need more optimizations.
23:46:06 <tokigun> jix_, but if you use somewhat difficult feature of C++, you could not get much portability
23:46:24 <jix_> tokigun: i don't know.... never coded c++ myself.. i don't like it
23:46:32 <Sukoshi> tokigun: Oh *GOD*, I remember trying to write a SWIG wrapper for some complex C++ code... it was a nightmare.
23:46:35 <CakeProphet> hmm... it might be windows-only though... so maybe not.
23:46:37 <Sukoshi> Template/boost hell.
23:46:45 <jix_> but milkytracker is written in c++ and is pretty portable...
23:47:18 <tokigun> well, it is mainly due to compiler (not target platform), since specification of C++ is hard to implement.
23:47:53 <tokigun> if you use restricted set of features in C++ only, almost all compiler can compile your program. but you should be careful.
23:48:32 * CakeProphet doesn't worry much about portability... most of his projects are directed towards personal use or developer use.
23:48:39 <tokigun> for example Mozilla doesn't use "mutable" keyword, because some C++ compilers don't support it.
23:50:19 <tokigun> considering this, boost is very carefully written library to support almost major (including buggy) compilers.
←2006-12-26 2006-12-27 2006-12-28→ ↑2006 ↑all