←2008-06-01 2008-06-02 2008-06-03→ ↑2008 ↑all
00:40:45 -!- Sgeo has joined.
00:41:24 -!- sebbu has quit ("@+").
00:45:29 <tusho> "Well he was dumb." -- a person, on Djikstra
00:45:34 <tusho> *Dijkstra
00:46:37 <oerjan> "God is dead." -- Nietszche. "Nietszche is dead." -- God.
00:47:21 <Sgeo> Reading Uncyc?
00:49:04 <Nocta> lol
00:49:18 <tusho> Sgeo: no, that's an ancient joke
00:49:23 <tusho> and a very good one at that
00:49:32 <tusho> "Fuck." -- a person, on dying
00:49:53 <tusho> Also. It's Nietzsche.
00:53:39 <tusho> lament: frankly, #linguistics is _weak_ on the gay sex point
00:53:39 <tusho> <tusho> a disappointingly low level of gay sex in here today...
00:53:40 <tusho> * saimazoon sets ban on *!*n=tusho@91.105.124.*
00:53:40 <tusho> * You have been kicked from #linguistics by saimazoon (saimazoon)
00:54:20 <lament> maybe the response would be more positive if you said it in spanish
00:54:35 <oerjan> darn. i knew my spelling was probabilistic on that one.
00:54:37 <tusho> lament: you have a point
00:54:58 <tusho> lament: but kickbanning for gay sex? the nerve.
00:55:22 <Sgeo> Wasb;t there a pedo sympathizer in there before?
00:55:43 <tusho> was there?
00:55:48 <tusho> i'd gay sex him u- Wait what
00:56:09 <Sgeo> I mean, the other day
00:56:35 <tusho> Sgeo: beats me, what was happening?
00:56:50 <Sgeo> He was trying to justify having sex with children
00:57:18 <lament> tusho: well, you achieved your goal, people are talking about anal sex now
00:57:30 <tusho> lament: are they being kickbanned?
00:57:33 <lament> nope
00:58:01 <tusho> >saimazoon< I would like to complain about the hypocritical banning situation in #linguistics. Is anal sex a more acceptable topic than gay sex in general
00:59:05 <tusho> lament: no response, do you think he's gone off to have gay sex?
00:59:20 <lament> why are you into gay sex so much, anyway?
00:59:50 <tusho> lament: because gay sex from oklopol, bsmntbombdood and you was sooo good
00:59:52 <tusho> or something
00:59:59 <bsmntbombdood> what
01:00:09 <lament> well, we're pros
01:00:10 <tusho> bsmntbombdood: just talkin' about our orgies.
01:00:27 <tusho> lament: EXPERIENCED GAY SEXERS UNITE
01:01:45 -!- tusho has set topic: CATHOLIC LOGS http://tunes.org/~nef/logs/esoteric.
01:02:19 <bsmntbombdood> i soooo want to troll #linguistics now
01:02:34 <tusho> bsmntbombdood: so do I but banning kinda stops me!
01:02:36 <tusho> :'(
01:02:41 <tusho> I was all ready for gay sex
01:02:44 <tusho> what's up with that
01:02:53 <tusho> yesterday or the day before they were all about gay sex.
01:02:59 <tusho> i'm very offended
01:03:21 <tusho> huh.
01:03:24 <tusho> my banner is no longer there.
01:03:25 <Slereah> TURING WOULD BE PROUD OF YOU
01:03:28 <bsmntbombdood> i'm afraid i'm not an experienced gay sexer
01:03:48 <tusho> bsmntbombdood: don't worry, oklopol will assist you
01:04:21 <Slereah> In the anal ass.
01:05:27 <bsmntbombdood> what other kind of ass is there?
01:05:51 <Slereah> http://membres.lycos.fr/bewulf/Divers/Ass%202.jpg
01:06:02 <Slereah> I actually read this entire webcomic.
01:06:44 <tusho> Psychotic ... in the anal ass?
01:07:19 <Slereah> This is not as ass-packed as one of the sentence found in that comic.
01:07:26 <Slereah> "Ass ream anally in the anal ass"
01:08:37 <tusho> Slereah: brilliant
01:08:38 <tusho> link to that comic?
01:10:32 <Slereah> google
01:10:38 <Slereah> The title is on the bottom of the pix
01:10:53 <tusho> Slereah: lazy
01:10:55 <tusho> and I have to go
01:10:56 <tusho> so LINK
01:10:57 <tusho> >:|
01:11:39 <oklofok> oerjan: just remember all german words have at least one "sch".
01:12:07 <bsmntbombdood> oklofok: halp me be experienced gay sexor plox
01:12:11 <Slereah> http://www.theomniverse.com/poc/archives.html?viewthiscomic=1
01:12:15 <Slereah> Lazy bum.
01:13:41 <tusho> Slereah: last updated 2004
01:15:39 <Slereah> Yeah.
01:15:56 <oklofok> bsmntbombdood: every day for the rest of our lives
01:15:58 <Slereah> Hell, even when I first read it, it wasn't updated anymore, IIRC
01:16:11 -!- tusho has quit ("Leaving").
01:16:19 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
01:16:29 <oerjan> oklofok: jawohl, wenn du es sagst, muss ich es woll glauben
01:16:47 <oklofok> oh you :)
01:17:06 <oerjan> *wohl, maybe
01:17:24 <oklofok> yeah, voll is full, vohl is nothing
01:17:31 <oklofok> err
01:17:35 <oklofok> also wohl is prolly nothing
01:17:51 <oklofok> may be some ancient form of wollen.
01:19:05 <oerjan> wohl = well
01:19:24 <oklofok> errr
01:19:42 <oklofok> i meant "also woll is prolly nothing"
01:19:54 <oklofok> as in "yeah, what you said,"
01:20:11 <oerjan> "Word is not found"
01:26:30 -!- oklofok has changed nick to oklopol.
01:26:39 <oklopol> i think i did my share
01:58:08 -!- oklopol has quit (Read error: 110 (Connection timed out)).
02:05:37 -!- calamari has quit ("Leaving").
02:08:54 -!- oklopol has joined.
02:11:05 -!- oklopol has quit (Read error: 104 (Connection reset by peer)).
02:14:05 -!- oklopol has joined.
02:42:12 -!- oklopol has quit (Read error: 113 (No route to host)).
02:45:56 -!- Nocta^ has joined.
02:48:38 -!- oklopol has joined.
02:59:00 -!- Nocta has quit (Read error: 110 (Connection timed out)).
03:11:20 -!- oklopol has quit (No route to host).
04:05:52 -!- oerjan has quit ("leaving").
04:06:05 -!- Corun has quit ("This computer has gone to sleep").
04:06:40 -!- Corun has joined.
04:17:14 <augur> oklopoklopol :O
04:21:46 -!- Corun has quit ("This computer has gone to sleep").
05:17:09 -!- GreaseMonkey has joined.
05:28:05 -!- GreaseMonkey has quit ("Unisex.").
05:32:37 -!- GreaseMonkey has joined.
05:39:09 -!- GreaseMonkey has quit ("Unisex.").
05:56:57 -!- GreaseMonkey has joined.
06:03:39 -!- GreaseMonkey has quit ("Unisex.").
06:13:07 -!- jix has joined.
06:13:17 -!- jix has quit (Remote closed the connection).
06:40:13 -!- GreaseMonkey has joined.
06:43:39 -!- augur has quit (Read error: 110 (Connection timed out)).
07:02:14 -!- GreaseMonkey has quit ("Unisex.").
07:08:29 -!- GreaseMonkey has joined.
07:10:18 -!- Judofyr_ has changed nick to Judofyr.
07:22:44 -!- GreaseMonkey has quit ("Unisex.").
07:29:14 -!- GreaseMonkey has joined.
07:37:19 -!- sparkypadawan has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:07:37 -!- sparkypadawan has changed nick to sparkypadawan_is.
08:07:49 -!- sparkypadawan_is has changed nick to sparky_away.
08:49:43 -!- sparky_away has changed nick to sparkypadawan.
09:23:07 -!- Judofyr has quit (Read error: 104 (Connection reset by peer)).
09:23:45 -!- Judofyr has joined.
09:27:33 -!- Iskr has joined.
09:33:29 -!- sparkypadawan has left (?).
09:59:46 -!- RedDak has joined.
10:11:03 -!- oklopol has joined.
10:13:30 -!- cherez has joined.
10:42:24 -!- GreaseMonkey has quit ("Unisex.").
10:49:31 -!- oklopol has quit (Read error: 104 (Connection reset by peer)).
10:49:51 -!- oklopol has joined.
11:50:27 -!- RedDak has quit (Remote closed the connection).
12:06:56 -!- Sgeo has joined.
12:25:04 -!- Corun has joined.
12:37:00 -!- Judofyr_ has joined.
12:37:01 -!- Judofyr has quit (Read error: 104 (Connection reset by peer)).
12:37:20 -!- oklopol has quit (Read error: 113 (No route to host)).
12:41:02 -!- oklopol has joined.
12:47:10 -!- Corun has quit ("This computer has gone to sleep").
12:49:28 -!- atsampson has quit (Read error: 104 (Connection reset by peer)).
12:54:02 -!- atsampson has joined.
12:55:10 -!- RedDak has joined.
13:55:50 -!- timotiis has joined.
13:59:07 -!- oklopol has quit (Read error: 104 (Connection reset by peer)).
13:59:25 -!- oklopol has joined.
14:00:42 -!- RedDak has quit (Remote closed the connection).
14:32:39 -!- oklofok has joined.
14:35:55 -!- oklofok has quit (Read error: 113 (No route to host)).
14:36:20 -!- oklofok has joined.
14:36:23 -!- oklopol has quit (Read error: 104 (Connection reset by peer)).
14:36:39 -!- Judofyr_ has quit (Read error: 104 (Connection reset by peer)).
14:37:06 -!- Judofyr has joined.
14:59:02 -!- oklofok has quit (Read error: 113 (No route to host)).
15:00:17 -!- pikhq has joined.
15:00:27 <pikhq> Jes, mi estas.
15:01:16 <Sgeo> Cxu vi parolas esperanton?
15:01:30 <Sgeo> Kiu parolas esperanton?
15:02:07 -!- oklopol has joined.
15:02:29 <Sgeo> oklopol, cxu vi parolas esperanton?
15:02:48 <Sgeo> In Soviet Russia, vin parolas esperanto!
15:04:40 <oklopol> i thought esperanto would parola me in soviet russia
15:05:44 <Sgeo> That's what vin parolas esperanto means
15:06:08 <Sgeo> With verbs other than esti, order doesn't matter
15:06:28 <Sgeo> the -n goes on the object.. as in, what's the action going to
15:06:35 <Sgeo> parolas means speaks
15:06:43 <Sgeo> vi == you
15:07:01 <Sgeo> so vi parolas esperanton means you speak Esperanto, and vin parolas esperanto means Esperanto speaks you
15:07:43 * Sgeo growls at The Onion ticker for repeating that old neckbelt joke
15:07:59 <pikhq> Mi parolas esperanton, sed mia esperanto estas malbone. . .
15:08:16 <pikhq> I'd tend to say "Esperanto parolas vin", BTW.
15:08:35 <pikhq> Yes, it doesn't *matter*, but I'd tend to say that, anyways.
15:08:42 <Sgeo> pikhq, me too, but it's cooler to just switch it for that joke
15:08:50 <oklopol> Sgeo: i guessed it might be that, but for some reason didn't believe myself.
15:08:54 <oklopol> *be like that
15:09:07 <Sgeo> erm, to just switch the -n
15:09:14 <Sgeo> http://www.theonion.com/content/cartoon/may-05-2008
15:10:01 <Sgeo> http://www.theonion.com/content/cartoon/apr-21-2008
15:11:37 -!- oklopol has quit (Read error: 113 (No route to host)).
15:12:16 <Sgeo> http://www.theonion.com/content/cartoon/mar-24-2008
15:12:24 <Sgeo> I'll stop posting those now
15:12:27 -!- ais523 has joined.
15:14:50 -!- oklopol has joined.
15:21:34 -!- ais523_ has joined.
15:26:15 -!- Nocta has joined.
15:26:16 -!- jix has joined.
15:28:04 -!- oklofok has joined.
15:29:02 -!- ais523 has quit (Read error: 110 (Connection timed out)).
15:31:50 -!- ais523_ has changed nick to ais523.
15:32:36 -!- oklopol has quit (Read error: 113 (No route to host)).
15:32:56 -!- oklofok has quit (Read error: 113 (No route to host)).
15:33:38 -!- oklopol has joined.
15:38:12 -!- timotiis has quit (Read error: 110 (Connection timed out)).
15:39:40 -!- Judofyr has quit (Read error: 104 (Connection reset by peer)).
15:41:19 -!- Nocta^ has quit (Read error: 110 (Connection timed out)).
15:49:07 -!- bsmntbombdood has quit (Read error: 113 (No route to host)).
15:50:05 -!- bsmntbombdood has joined.
16:55:11 -!- ais523_ has joined.
17:00:09 -!- ais523 has quit (Nick collision from services.).
17:00:16 -!- ais523_ has changed nick to ais523.
17:14:12 -!- augur has joined.
17:15:38 -!- augur has changed nick to psygnisfive.
17:32:17 -!- Johnnyboi37 has joined.
17:33:11 -!- Johnnyboi37 has left (?).
17:47:17 -!- ais523 has quit ("(1) DO COME FROM ".2~.2"~#1 WHILE :1 <- "'?.1$.2'~'"':1/.1$.2'~#0"$#65535'"$"'"'&.1$.2'~'#0$#65535'"$#0'~#32767$#1"").
17:53:51 -!- timotiis has joined.
17:58:53 -!- sebbu has joined.
18:09:19 -!- ais523 has joined.
18:17:52 -!- timotiis_ has joined.
18:25:01 -!- oklopol has quit (Read error: 104 (Connection reset by peer)).
18:31:40 -!- Judofyr has joined.
18:32:53 -!- oklofok has joined.
18:35:00 -!- AAAAAAue4njxuz has quit (SendQ exceeded).
18:37:10 -!- pikhq has left (?).
18:40:42 -!- revcompgeek has joined.
18:42:22 -!- timotiis has quit (Read error: 110 (Connection timed out)).
18:44:59 <ais523> I have a question about what names I should use for things in Feather
18:45:37 <ais523> There are various system-defined global variables which act much like built-in functions do in other languages
18:45:52 <ais523> e.g. call/cc
18:45:59 <ais523> which is a constant
18:46:08 <ais523> I want every object in the program to have them as properties
18:46:16 <ais523> what should I call the name of the relevant properties?
18:46:28 <ais523> I'm thinking something with a sigil, maybe like %callCC
18:46:35 <ais523> but does anyone have a better idea?
18:50:16 <ais523> does anyone here know what Smalltalk uses for globals? I'm trying to keep the syntax looking like Smalltalk's but for different reasons
18:52:05 <lament> ais523: just identifiers like all other ones
18:52:15 <ais523> how do you tell if something's a global?
18:52:38 <ais523> rather than being the name of a message or a property or something like that?
18:52:52 <ais523> presumably because there's nothing else it could be
18:52:57 <lament> there's nothing else it could be
18:53:07 <lament> message names appear in different positions
18:53:17 <lament> there aren't any properties
18:53:25 <lament> global is just the "root scope"
18:53:30 <ais523> sorry, there aren't really in Feather either
18:54:08 <ais523> an object is said to have a property if it responds to a particular message by always returning the same value, which is the value of the property
18:54:22 <lament> in "foo bar"
18:54:24 <lament> bar is the message
18:54:29 <lament> and foo is not the message
18:54:34 <lament> there can be no confusion
18:54:39 <ais523> yes
18:54:54 <ais523> oh well, I'll have to think of something different in Feather
18:55:20 <ais523> I like using sigils, because the sigils can end up becoming messages of their own once the interpreter has made itself a little more advanced
18:55:49 <ais523> (Feather's reminding me more and more of Smalltalk + Haskell + Scheme, by the way)
18:56:03 <lament> sounds pretty painful :)
18:56:05 <ais523> I've even ended up having to implement monads, despite it being a strict language
19:15:10 -!- olsner has joined.
19:16:25 -!- Slereah has quit ("kthxbai").
19:22:24 -!- Hiato has joined.
19:38:18 -!- Corun has joined.
19:38:31 <Hiato> Can someone tell me quickly, does this do what I think it does?
19:38:31 <Hiato> if ord(n[k]) in range(ord('a'),ord('z'))
19:38:31 <Hiato> (In python)
19:38:50 <ais523> I don't know enough Python to know for certain, but that looks right
19:39:00 <Hiato> cool, thanks :)
19:39:17 <ais523> what program are you trying to write?
19:39:31 <Hiato> an interpreter for my new esolang :P
19:39:47 <ais523> are the details of your new esolang online anywhere yet?
19:39:55 <ais523> and if not, could you give a quick description?
19:40:39 <Hiato> in but a moment :)
20:00:37 -!- Sgeo has quit (Remote closed the connection).
20:10:22 -!- Quendus has joined.
20:11:08 -!- Quendus has changed nick to AAAAAAue4njxuz.
20:16:35 -!- RedDak has joined.
20:47:03 * SimonRC goes for a while. ("MCSE: My Confidence Screws-up Everything")
21:03:24 -!- timotiis has joined.
21:08:15 <Hiato> sorry about that ais523
21:08:25 <ais523> that's OK
21:08:28 <Hiato> that was one of the longer phone calls of my life :P
21:08:36 <Hiato> anyway
21:11:48 -!- Sledgehammer has joined.
21:11:52 <Sledgehammer> ais523.
21:11:53 <Hiato> the language is _really_ simple, as it's designed to be. The structure consists of 4 possible commands:
21:11:54 <Hiato> 1. Inc
21:11:54 <Hiato> 2. Dec
21:11:54 <Hiato> 3. If >0 begin
21:11:54 <Hiato> 4. If=0 end
21:11:54 <Hiato> In order to programme, you simply type the name of the variable you wish to send as the arguments and the variable that you wish the results to be stored in. IE: sending aa when the instruction pointer is one will do a = a +1. The symbolisation is arbitrary, anything that is not a variable (a-z) is considered a no-op. After every variable/no-op the instruction pointer is advanced by 1. So, you can do, for instance: aa ab
21:11:58 <Hiato> which is the same as saying b = 1
21:12:00 -!- Sledgehammer has changed nick to Slereah.
21:12:02 <Slereah> ais523.
21:12:17 <Slereah> Come to my house, and heal my computer with your aura of awesome
21:13:07 <ais523> Hiato: how does it tell which command you want? Position in the source-code?
21:13:32 <Hiato> yep :) The CP starts at 0 and is incremented by one every two characters
21:13:53 <oklofok> Hiato: no, that doesn't work like you want
21:13:59 <ais523> Slereah: how would I manage that?
21:14:19 <Hiato> What do you mean oklofok?
21:14:34 <oklofok> range(a,b) is only inclusive on a's end
21:14:45 <ais523> ah, so it was actually a range from a to y
21:14:48 <Slereah> ais523 : I dunno, I'm not the one with the aura.
21:14:50 <oklofok> as is the standard for all rangers.
21:14:57 <oklofok> in all language and thing
21:15:02 <ais523> Slereah: what's wrong with your computer, anyway?
21:15:21 -!- CakeProphet has joined.
21:15:30 <Hiato> aha, well, that explains that. Thanks oklofok :)
21:15:33 <Slereah> Many things. Right now, it's that I can't reassign partition sizes.
21:15:44 <ais523> what, on existing partitions?
21:15:50 <ais523> that isn't a particularly easy operation
21:15:56 <Slereah> Partition magic sez "Bad sector", and Gparted won't even start.
21:16:01 <CakeProphet> hmmm
21:16:01 <Slereah> It used to be!
21:16:06 <oklofok> o
21:16:12 <Hiato> Ok, here is a mostly completed manual of my much more complex functional esolang
21:16:12 <ais523> Slereah: well, bad sector means that there's something wrong with your hard drive
21:16:13 <Hiato> http://www.mediafire.com/?brjyzjnj2fd
21:16:17 <Slereah> Boy the fun did I have a few months ago resizing them!
21:16:26 <Hiato> (for those interested, naturally :P )
21:16:31 <Slereah> Can't you shine some aura on it?
21:17:43 <ais523> I don't think that helps with partition resizes
21:17:57 <Slereah> You must believe in yourself, ais523!
21:18:01 -!- timotiis_ has quit (Read error: 110 (Connection timed out)).
21:18:13 <Slereah> Remember that part of inspector Gadget, where we thought he was dead?
21:18:20 <Slereah> But Penny really believed?
21:18:51 * ais523 tries to think up a delicious cake joke
21:20:08 <Hiato> So, any comments on either lang?
21:20:17 <Slereah> Needs more cowbells.
21:20:27 <ais523> the simple one: do you have any way to loop?
21:20:35 <CakeProphet> def addlater(x) { def future(y) {return x+y}}
21:20:40 <Hiato> Ah, ok, sure - working on it, but import cowbell does'nt work
21:20:42 <CakeProphet> addlater(2)(2) ....that is all I have to say.
21:21:06 <Hiato> ais523: yep, using if>0 begin, and if=0 end
21:21:19 <Slereah> On a more important level, Half Life 2 won't start D:
21:21:21 <Hiato> essentially a basic [ ] (in bf) equivalent
21:22:06 <ais523> ah, the way you wrote it it wasn't clear whether it looped or not, that's why I asked
21:22:14 <Hiato> sure, no harm done :)
21:22:15 <CakeProphet> Are there any languages out there that use some sort of "when" construct.
21:22:25 <CakeProphet> like... do something on a certain event... regardless of time.
21:22:27 <Hiato> hrmm... that's an interesting one :)
21:22:46 <Hiato> so,
21:22:49 <Hiato> do inc(x)
21:22:49 <Hiato> when x>5 stop
21:22:50 <Hiato> I like that :D
21:22:54 <ais523> as for the complicated one, I'm having technical problems trying to read it
21:23:08 <ais523> CakeProphet: yes, CLC-INTERCAL
21:23:10 <Hiato> aha, heh... I knew ms wasn't the way to go
21:23:37 <ais523> there's a construct that evaluates an expression at the first moment in time it isn't a runtime error
21:23:37 <CakeProphet> on an unrelated note, futures are the weirdest things ever.
21:23:49 <CakeProphet> ...haha
21:24:36 <CakeProphet> I kind of want something that uses logical attraction to program somehow.
21:24:48 <CakeProphet> like... "x hate y, but x loves z"
21:24:52 <CakeProphet> *hates
21:25:02 <CakeProphet> and then have shit happen based on these declarations
21:25:14 <Hiato> (Not sure if I've run this by you guys yet: http://rafb.net/p/ShlZzZ70.html )
21:25:17 <CakeProphet> maybe a love triangle is an infinite loop. ;)
21:25:33 <Hiato> well, CakeProphet, I had a similar idea
21:25:40 <Hiato> that has yet to be developed
21:25:51 <Hiato> My hand notes: Variable relationship is constant, throughout code. If b = 2x, then if x changes value, b changes value proportionatly.
21:25:51 <Hiato> b now has 2x child, can't change value of either b or x, but can spawn off different children with different values.
21:25:51 <Hiato> You can eliminate children, or kill the whole parent (which case defaults to default value). Calling parent callas all values
21:25:51 <Hiato> associated with parent (all children). Calling a child calls all its associated values (sub-children only).
21:26:19 <ais523> that Mandelbrot looks good: simple, understandable and short
21:26:25 <Hiato> thanks :)
21:26:50 <CakeProphet> ...I like labels.
21:27:03 <ais523> CakeProphet: seen Haifu?
21:27:07 <CakeProphet> nope
21:27:15 <ais523> http://esolangs.org/wiki/Haifu, I think
21:27:34 <ais523> ah, that's a stub, but it's got the link I wanted on it
21:27:35 <CakeProphet> it would be cool to not have variables... but have labels. (operation operand [LABEL operand])
21:28:42 <ais523> what do the labels label?
21:28:53 <CakeProphet> and then an operation that changes all expressions with a label name.. (change LABEL (operation blah blah)) ...and * refers to the original expression in label, so you can do stuff like (change LABEL (+ * 1)) to increment a value.
21:28:59 <Hiato> well, CakeProhpet, if you have some kind of data retention structure (as is necessary for TC I believe), then I'd say you automatically have variables.
21:29:06 <CakeProphet> they label any sort of expression.
21:29:14 <CakeProphet> using s-expressions at the moment, but it could vary.
21:29:50 -!- oklofok has quit (Read error: 113 (No route to host)).
21:30:07 -!- Iskr has quit (Read error: 110 (Connection timed out)).
21:30:15 <CakeProphet> it's like... syntax substitution.
21:30:25 <CakeProphet> so the variables are syntax constrcts, not really evaluated yet.
21:30:52 <ais523> INTERCAL hasn't quite reached the stage of being able to substitute one expression for another like that, but it's getting there
21:31:19 <CakeProphet> I don't think it would change all the results of the previous computation... it would just change the syntax tree from that point on.
21:31:20 <ais523> it comes out logically from the grammar of the language, but so far I haven't figured out how to implement it or whether doing so would be a good idea
21:31:40 <Hiato> hmmm... but surely then, it would be possible to coax the programme into depending on a situaiton which will only arise after it has been resolved
21:31:53 <ais523> Hiato: sounds like Feather in reverse
21:32:23 <Hiato> Feather? I will reference the wiki
21:32:33 <CakeProphet> ...it would be pretty sweet to have that kind of syntax-substition in a real language. You could have plugins that change the core completely.
21:32:33 <ais523> Hiato: not there yet
21:32:38 <ais523> it's a lang I'm inventing at the moment
21:32:45 <CakeProphet> (real language = practical)
21:32:45 <ais523> and have been talking about to ehird for days on end
21:32:47 <Hiato> Aha, awesome :)
21:33:01 <ais523> the main feature is that you can retroactively change any part of the language
21:33:02 <Hiato> er... well I must have missed it, any docks?
21:33:11 <ais523> actually I was just writing some
21:33:14 <Hiato> heh, sounds twisted in a way
21:33:29 <ais523> but they're just my mental meanderings set down on paper
21:33:43 <Hiato> *cough* link *cough*
21:33:44 <ais523> and may quite possibly be entirely wrong, or alternatively incomprehensible
21:33:45 -!- oklopol has joined.
21:34:43 <ais523> http://pastebin.ca/1037213
21:35:07 <ais523> the language's syntax is actually much nicer than that
21:35:09 <Hiato> pastebin hates me, any chance of nopaste or the like?
21:35:14 <ais523> but I've only got to documenting Basic Feather so far
21:35:20 <ais523> and OK, I'll use a different pastebin
21:35:25 <Hiato> thanks :)
21:36:03 <CakeProphet> I've always liked Perl and Ruby's conditional statement syntax.... and Python's too.
21:36:25 <Hiato> heh, yeah. p += k UNLESS s == 1
21:36:31 <ais523> http://rafb.net/p/I4JsLV42.html
21:36:41 <CakeProphet> statement if condition ... or statement while condition... etc. In Python there's (expression if condition else other-expression)
21:36:43 <Hiato> Thanks ais523
21:39:16 <Hiato> So, let me see if I get the gist
21:39:49 <Hiato> essentially, you can have a programme that creates its own grammar subset and then executes itself or any other arbitrary programme in it?
21:40:36 <CakeProphet> ...bugSophia was really cool. I should get around to writing its interpreter.
21:41:23 -!- ais523 has quit (Remote closed the connection).
21:42:11 -!- Hiato has left (?).
21:42:22 -!- Slereah has quit (Read error: 104 (Connection reset by peer)).
21:42:32 -!- ais523 has joined.
21:42:56 <ais523> sorry, X went crazy and I had to restart it
21:43:06 <ais523> Hiato: yes, that's one of the things it can do
21:43:21 <ais523> all objects are read-only
21:43:30 <ais523> but you can retroactively modify what they were at the moment they were created
21:43:33 <ais523> it's how you do inheritance
21:45:03 <CakeProphet> ...bugSophia would have really interesting concurrence.
21:46:49 <CakeProphet> because each byte value essentially has its own thread of execution.
21:50:04 <ais523> as for Feather, primitiveBe is the thing that really sets it apart from other languages, although you have to be careful using it to avoid an infinite loop
21:50:23 <ais523> someone (maybe AnMaster) suggested calling it primitiveBecome, but become = (to me) change from now on
21:50:26 -!- Slereah has joined.
21:50:30 <ais523> whereas it isn't a become, it's a be
21:50:34 <ais523> or maybe even a have-been
21:50:56 * ais523 remembers Douglas Adam's comments about time travel screwing up grammar
21:51:21 <AnMaster> ais523, was ehird
21:51:22 <AnMaster> not me
21:51:26 <ais523> ah
21:51:27 <AnMaster> I suggested private prefix
21:51:35 <AnMaster> ehird suggested primitive
21:51:50 <ais523> I still like the idea of veryUnsafeBe, though
21:52:07 <ais523> AnMaster: any idea on what sigil, if any, to use for globals
21:52:18 <ais523> at the moment I implement them as properties which all objects have
21:52:28 <ais523> because they're set on the root object
21:56:04 <CakeProphet> I like how Ruby uses ALL CAPS for constants.
21:56:15 <ais523> well, C does that too
21:56:17 <ais523> sort of
21:56:21 -!- oklopol has quit (Read error: 113 (No route to host)).
21:56:23 <CakeProphet> ...not as part of the language.
21:56:45 <CakeProphet> well, what sigils have you already used?
21:57:07 <ais523> ^ and # both look like sigils to the user, but aren't really
21:57:15 <ais523> and I'm planning to use $ as well
21:57:18 <CakeProphet> You should use ` ...no ever uses `
21:57:35 <ais523> I may end up using it for unary operators, like Haskell does
21:57:44 <CakeProphet> or ~...
21:57:44 <ais523> s/unary/infix/
21:57:57 <ais523> and I was going to use ~ as an operator
21:58:14 <CakeProphet> what do semicolons do at the moment?
21:58:46 <ais523> nothing just yet, but I plan to use them to separate statements
21:59:09 <CakeProphet> I always like local variables to be the unsigilized ones... if you're using something to declare scope.
21:59:17 <ais523> well, it's an OO language
21:59:23 <CakeProphet> and $ always looked kind of globalish to me. Reminds me of environment variables.
21:59:30 <ais523> yes, $ is globalish to me too
21:59:41 <ais523> I'm planning to use it for the monad
21:59:50 <CakeProphet> -gasp- not the monad
21:59:53 <CakeProphet> that thing I still don't get.
21:59:55 <ais523> which threads through the entire program and remembers things that need to be global
21:59:56 <CakeProphet> but is apparently God.
22:00:02 <ais523> well, I only have the one monad, unlike Haskell
22:00:09 <CakeProphet> rofl... the One True Monad.
22:00:16 <ais523> but monads are pretty simple really, just hard to explain
22:00:41 <CakeProphet> like functions... apparently. No one gets functions in any of my math classes.
22:01:03 <ais523> CakeProphet: do you understand the concept of a lazy functional language?
22:01:32 <CakeProphet> Like Haskell? I'd say yes... but I'm not actually sir, because I don't know a lot about haskell
22:01:40 <CakeProphet> I understand the concept of lazy
22:01:43 <CakeProphet> and the concept of functional.
22:01:54 <ais523> well, suppose you have a lazy functional language, and you want to make sure things happen in a particular order
22:02:05 <ais523> but it's lazy, so you can't tell whether they happen at all unless you try to use them
22:02:05 -!- lifthrasiir has quit (Read error: 110 (Connection timed out)).
22:02:13 <ais523> say you have something that's pure side-effect with no return value
22:02:15 <ais523> like printing out a string
22:02:26 <ais523> normally in a lazy language that would never happen because you never use its return value
22:02:38 <CakeProphet> ah... yeah
22:02:48 <ais523> so, suppose you have some value, in the case of IO it doesn't even matter what it is
22:03:00 <ais523> make it of a special, unique data type
22:03:26 <ais523> then say, that all side-effect operations in a particular group (say, all IO operations) have to take a value of that type as an argument and return a value of that type
22:03:51 <ais523> then, your second print statement depends on the return value from the first print statement
22:04:03 <ais523> and your third print statement depends on the return value from the second print statement
22:04:05 <ais523> and so on
22:04:15 <ais523> and at the very end of your program, you return the last return value back to the OS
22:04:29 <ais523> that way, you make sure that all your print statements run in the right order
22:04:35 <ais523> because each needs the last to have executed before it
22:04:52 <CakeProphet> hmmm... alright. I vaguely understand.
22:04:56 <ais523> this solves most of the problem, but there's one extra issue
22:05:09 <ais523> what if someone passes the return value of the first print to both the second and the third?
22:05:17 <ais523> if you do that, chaos ensues because the ordering is broken
22:05:31 <CakeProphet> I see what it's used for it... and why it's needed... but not how you do it.
22:05:34 <ais523> so what a monad does, is it hides those return values so you can't manipulate them directly
22:05:45 <ais523> you have an operator (I think Haskell calls it >>=)
22:05:55 <ais523> that passes the return value of one function as an argument to another
22:06:01 <CakeProphet> ....so it's vaguely like a stream?
22:06:08 <ais523> yes, very like a stream
22:06:38 <ais523> you can do (printStrLn "Hello, ") >> (printStrLn "world!")
22:06:40 <CakeProphet> I think if they just named it something more descriptive, it would be less confusing.
22:06:51 <ais523> (ah, I remember now, it's >> to join void functions together)
22:07:04 <ais523> and the first has to run before the second
22:07:12 <ais523> because you're chaining an imaginary return value from the first to the second
22:07:14 <ais523> that's the IO monad
22:07:33 <CakeProphet> ...alright. Yeah, that's simple, but hard to explain.
22:07:44 <ais523> now, the clever and confusing bit is when you actually make the imaginary return value have a meaning, and convey information
22:07:55 <CakeProphet> ...oh lawd.
22:07:57 <ais523> when you do that, you are effectively creating a variable
22:08:05 <ais523> you have a value which goes from function to function
22:08:10 <ais523> which you can look at, and change
22:08:17 <ais523> normally values can't be changed in lazy functional languages
22:08:26 <ais523> so that gives you the State monad, for instance
22:08:37 <ais523> which gives you one variable that you can read from and assign to, etc
22:08:46 <CakeProphet> is there a reason Haskell does this as opposed to using variables and some sort of built-in stream concept?
22:08:57 <ais523> CakeProphet: functional purity
22:09:03 <CakeProphet> figures.
22:09:03 <ais523> and laziness
22:09:17 <CakeProphet> monads don't really seem that functionally pure though.
22:09:28 <ais523> well, you can implement them with nothing but functions
22:09:37 <ais523> in fact, I'm having to do that for Feathe
22:09:38 <ais523> s/$/r/
22:10:00 -!- oerjan has joined.
22:10:06 <CakeProphet> rofl.. you just gave your last statement an infinite length...
22:10:16 <CakeProphet> as it no longer has an ending.
22:10:17 <ais523> CakeProphet: it wasn't s/$/r/g
22:10:36 <ais523> ah, normally regexps add one if you accidentally deleted the old one
22:10:53 <CakeProphet> rofl, sounds like something Perl would do.
22:11:02 <CakeProphet> Haskell would create some sort of infinite string concept.
22:11:12 <CakeProphet> for the sake of purity.
22:11:14 <ais523> actually, most regexps define $ as matching the 0-length string just before the ending, rather than the ending itself
22:11:24 <ais523> hmm... I wonder if $$ matches the end of a string in most regex languages?
22:11:27 -!- sebbu has quit (No route to host).
22:11:36 <ais523> by that definition, it would
22:11:42 <CakeProphet> ...there really isn't much difference.
22:11:45 <CakeProphet> at all...
22:12:16 <ais523> on my computer, grep doesn't match anything given '$$' as the regex
22:12:21 <ais523> but egrep matches every line
22:12:51 <ais523> not that anyone sane would write that anyway, except as a test
22:13:14 <CakeProphet> I make searches for $Hello^ all the time
22:13:27 <ais523> presumably that doesn't find anything
22:13:37 <CakeProphet> well... if you have a ghost in your computer...
22:13:40 <ais523> unless you have an environment variable called Hello set to the null string
22:13:47 <CakeProphet> then its possible they are attempt to communicate in the space between strings.
22:13:56 <CakeProphet> +ing
22:14:15 <ais523> hmm... if you had strings in 1-s complement notation
22:14:19 <ais523> then you have two sorts of zero
22:14:24 <ais523> now say if they're NUL-terminated
22:14:35 <ais523> you could convey secret communication information by whether you terminated with +0 or -0
22:14:46 <CakeProphet> that would be sweet.
22:14:58 * ais523 likes 1s-complement
22:15:05 <CakeProphet> you could map it to binary. +0 is a 1, and -0 is a 0
22:15:21 <ais523> especially if you have a prime number of possible values for your numbers
22:15:40 <ais523> then addition, subtraction, multiplication and divmod are all reversible even if they overflow
22:15:49 <ais523> well, apart from divide-by-zero, but that isn't exactly an overflow
22:16:11 <CakeProphet> that's some wicked steganography.
22:28:57 -!- sebbu has joined.
22:35:26 -!- ais523 has quit ("(1) DO COME FROM ".2~.2"~#1 WHILE :1 <- "'?.1$.2'~'"':1/.1$.2'~#0"$#65535'"$"'"'&.1$.2'~'#0$#65535'"$#0'~#32767$#1"").
22:36:01 -!- CakeProphet has quit ("haaaaaaaaaa").
22:36:03 -!- olsner has quit ("Leaving").
23:06:55 -!- RedDak has quit (Remote closed the connection).
23:19:50 -!- jix has quit ("CommandQ").
23:25:51 -!- revcompgeek has quit ("http://www.mibbit.com ajax IRC Client").
23:32:04 -!- Nocta has quit.
←2008-06-01 2008-06-02 2008-06-03→ ↑2008 ↑all