00:50:56 -!- ehird` has changed nick to ehirdsleep. 00:51:48 Gregor, you bastard. :p 01:49:14 i agree 01:53:00 Hello people. 01:53:47 -!- Sgeo has joined. 01:54:46 Hi all bye all. 02:02:40 ``m``s``bs``b`s``c``b``c`t`k0ki#``c``bc``c``bc``b`ci`k.xri``c``bb``sii``b``c``bc``b`bc``c``bc``b`bb``cb``b`bttkii``sb``sbi 02:02:44 Poifect. 02:02:55 Maybe now, 99 bottles of beer! 02:03:21 Maybe, MAYBE, I'll start working on PSOX again tomorrow 02:03:26 Anyone have any comments about PSOX? 02:03:41 Not much, not much 02:16:51 Make it work. 02:16:55 ;p 02:17:15 (then I can make my Macro Language to End All Macro Languages working. :p) 02:18:49 * pikhq thinks: language which is moderately full-featured, supporting PSOX: crazy? :p 02:19:50 Lessee here. . . lnum foo=2, anyone? 02:22:04 foo=2? 02:22:06 oh 02:22:15 A typesystem. 02:22:16 ;) 02:22:34 "foo+=2" would also work, thanks to types. ;p 02:22:46 Would this language support the REGEX type? 02:22:59 That would be tricky. 02:23:39 Particularly since I'm thinking of managing operator overloading to handle the types. 02:23:49 (without classes. Just macros. I'm insane. ;)) 02:25:29 :D 02:26:59 Perhaps "new_type lnum;macro lnum_+(x, y){psox_call(ADD_LNUM, x, y);}" etc. 02:31:37 so you're making a hardcore version of BFM? 02:31:48 s/BFM/PEBBLE/ 02:31:55 The name change happened ages ago, people! :p 02:32:59 Sgeo: You know what would be *truly* insane? A way of calling C functions from PSOX. 02:33:16 pikhq, go write a Domain for it, if you wantr 02:33:18 *want 03:02:35 hey guys, i just made a BF interpreter in about 5 minutes 03:02:39 with python 03:03:07 That's because Python is awesome. 03:11:15 and brainfuck is minimalistic 03:11:23 Also that. 03:11:53 And because you have been crippled by your lack of malloc. 03:12:34 o 03:16:20 i think i've written one in less than 3 minutes, but i just wrote the same program and took time :-) 03:16:39 * oklopol has weird hobbies 03:18:26 If you're here, obviously 03:26:54 heh 03:27:03 here, i'll pastebin it 03:29:33 http://rafb.net/p/bXlg4855.html 03:30:48 Is += the bs = bs + stuff? 03:38:28 GreaseMonkey: bs.append(i) is faster than bs+=[i] 03:39:10 Oh, that's that. 03:39:12 python will actually do bs = bs + [i], baking a list of i, then concatenating the two lists baking a third list 03:40:44 oh, also bs.pop() for bs=bs[:-1] 03:41:00 * oklopol thinks that's a Very Crappy System 03:41:38 -!- oklopol has quit ("for the need to encumber"). 03:41:52 well, it works. 03:41:58 and i will take note of that. 03:42:24 -!- oklopol has joined. 03:42:34 how do i always manage to do that... 03:43:25 did i miss something? 03:43:30 [04:41] well, it works. 03:43:31 [04:41] and i will take note of that. 03:43:41 i see 03:44:00 btw, what's better: 03:44:05 inp = inp[1:] 03:44:09 inp[:1] = '' 03:44:11 or what? 03:44:25 hmm 03:44:26 You can't change part of a string. 03:44:28 del inp[0] 03:44:32 oh 03:44:34 it's a string. 03:44:41 then the first one is the only possibility 03:44:45 ok. 03:45:05 if you do that lots, you can do inp=list(inpt) 03:45:09 *inp 03:45:13 and then del inp[0] 03:45:59 * oklopol thinks that's a crappy system too 03:46:19 dunno... python just lacks beauty... 03:46:32 unlike GRAPHICA, HAVE I MENTIONED GRAPHICA 03:46:36 ... 03:46:40 MAYBE A LITTLE 03:46:43 :) 03:46:58 i had some totally awesome ideas for it 03:47:10 and here i am, idling and wondering why i'm not coding it. 03:47:19 i'll get something to drink, and then code something 03:47:20 -> 03:56:49 drinking?!! 03:58:37 -!- Slereah- has quit. 04:04:54 -!- Untitled-13615D has joined. 04:06:39 Anyone knows how to disable the automatic windows update? 04:06:49 I can't stand it rebooting my computer behind my back. 04:06:53 -!- Untitled-13615D has changed nick to Slereah. 04:07:15 no one knows :\ 04:08:00 I don't know how many data I've lost because of it. 04:15:34 -!- lament has joined. 04:15:41 I have returned to rule over your channel once again! 04:15:56 Pray for mercy, and you might be spared! 04:16:13 Or else! 04:16:14 But probably not. 04:26:05 OMFG 04:30:09 Aw hell. Now the lazy evaluation is playing tricks on me for the input! 04:30:10 -!- Sgeo has quit (Remote closed the connection). 04:30:42 I'll have to find a way to turn it the right way 04:32:07 everybody knows lazy evaluation and i/o are incompatible :) 04:32:41 everybody knows kung fu fighting 04:36:24 lament : Lies! 04:36:58 I just have to make some lambda expression for the input to be evaluated first, then placed at the end. 04:37:47 Probably just ^ab`ba 04:38:10 Although it would have to be evaluated after. 04:38:12 Damn. 04:38:17 What to do. 04:38:52 I really don't want to make an anti-d combinator. 05:30:54 -!- calamari has joined. 06:05:22 -!- calamari has quit ("Leaving"). 06:07:28 -!- immibis has joined. 06:50:36 -!- immibis has quit ("Hi Im a qit msg virus. Pls rplce ur old qit msg wit tis 1 & hlp me tk ovr th wrld of IRC. Man who run behind car get exhauste). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:50:23 -!- GreaseMonkey has quit ("Hi Im a qit msg virus. Pls rplce ur old qit msg wit tis 1 & hlp me tk ovr th wrld of IRC. Man who run behind car get exhauste). 08:55:17 Slereah, Anyone knows how to disable the automatic windows update? <-- sure, 1) change to linux 08:56:13 and 2) somewhere under "my computer" -> right click -> properties -> somewhere 08:56:17 if I remember correctly 08:56:19 in xp 08:56:27 * AnMaster haven't used windows for years 08:59:52 I can't install Linux. 08:59:54 I tried! 09:00:02 I'm just not that computer savvy. 09:06:41 I found the Ubuntu installation at least an order of magnitude easier than the XP installation. 09:07:20 But immediately after confirming the Ubuntu was that easy, I installed Gentoo by hand, so I might not be the right demographic. 09:07:37 Problem is, I want both on my computers. 09:08:13 For instance, to run most commercially released softwares! 09:09:15 I've never met anyone who used more than a tiny fraction of commercially released software. 09:12:55 Well, one would be enough. 09:20:32 Which? 09:21:45 No idea, since I can't install it! 09:23:17 How did you try to install it? 09:23:26 Using a Kubuntu CD. 09:23:49 Did you try the guide? 09:24:11 No. 09:24:13 Didn't saw it. 09:24:55 After I installed it, I couldn't run either Windows or Linux. 09:24:59 So I'm a little shy now. 10:08:25 -!- jix has joined. 10:24:04 -!- jix has quit ("CommandQ"). 11:09:35 -!- johnl has quit (Read error: 104 (Connection reset by peer)). 11:13:54 -!- puzzlet_ has quit (Remote closed the connection). 11:14:01 -!- puzzlet has joined. 12:17:26 -!- Tritonio__ has quit ("Bye..."). 12:42:08 -!- Visitor-CD3F3 has joined. 12:52:51 -!- Slereah has quit (Read error: 110 (Connection timed out)). 13:05:38 -!- timotiis has joined. 13:49:28 -!- jix has joined. 15:25:44 -!- Visitor-CD3F3 has changed nick to Slereah. 15:28:49 -!- jix has quit (Read error: 145 (Connection timed out)). 15:30:07 -!- jix has joined. 15:42:16 -!- ehirdsleep has changed nick to ehird`. 15:43:33 i have some kind of obsession with writing scheme interpreters... 15:43:37 i'm writing one in javascript, now 15:47:26 some fishes and some noodles, trallalalalaa 15:53:45 lah da da dah? 15:55:47 game of life is turing complete right+ 15:55:58 s/+/?/ 15:56:30 yep 15:56:35 yay, 15:56:37 there's a turing machine in it 15:56:40 see: Golly distribution 15:56:47 but, don't even *bother*, kind of thing 15:57:04 you can do it but many civilizations will pass before you get anything useful to happen 15:57:14 beyond counting in hexadecimal which there is a working Life file for. 15:57:42 I have made some insane stuff now. while not turing complete (because of too slow and limited size) I implemented game of life inside a single player rpg, using "floor tiles" in it and some scripting in it's special language 15:57:56 heh 15:58:03 did that last week when my PC was broken and I had to use my old (from around 1997) mac 15:58:04 speed hsa nothing to do with turing completeness :) 15:58:06 size does, though 15:58:19 sadly the game engine is some shareware thing 15:58:37 -!- Jontte has joined. 15:58:48 AnMaster: you wrote brainfuck in bash: now do scheme 15:58:49 ehird`, yes, indeed, an "area" in that game engine is limited to at most 64x64 tiles, so... 15:58:59 ehird`, I don't have time currently 15:59:04 aww 15:59:05 :( 15:59:51 oh btw that game engine, had weird scripting language, for example if you nested a loop, all variables from the outer loop got unset, so what I did was use some if to reset variable at end of loop if reaching edge of board and such 15:59:52 heh 16:00:01 lmao 16:00:11 nesting loop idiocy reminds me of BestFriends.js 16:00:15 huh? 16:00:17 the wiki page helpfully says: 16:00:24 Note: YOU CANNOT use nested loops in BestFriends.js 16:00:25 "BestFriends"? 16:00:26 (on the esolang wiki) 16:00:37 AnMaster: a pseudo-brainfuck thing in javascript. 16:00:37 BF 16:00:37 BrainFuck 16:00:39 BestFriends 16:00:46 the wiki page is HILARIOUS 16:00:52 well, it isn't brainfuck if it can't handle nested loops 16:00:55 anyway link? 16:00:59 http://esolangs.org/wiki/BestFriends.js 16:01:14 ehird`: what i said had nothing to do with anything 16:01:30 New enterprise features like 2d! But you CANNOT use nested loops, sorry. Also, the input command doesn't work in v32.34 16:01:36 We are working on this difficult problem! 16:02:04 lol? 16:02:07 it is turing complete though :| 16:02:14 because you can run JS' eval() 16:02:27 AnMaster: from: "Puts the first character of the input string in the current memory cell. As of the first version, this command does not work. The problem is being looked at carefully." 16:02:40 heh yeah 16:03:07 i bet they just do: 16:03:14 str.slice(pos,-1).index("]") 16:03:16 to match loops 16:03:33 "Turns the program pointer 90 degrees left (anticlockwise)."? 16:03:34 bestfriends owns :) 16:03:43 http://www.thegriddle.net/BestFriends/BestFriends.js oh jeez 16:03:52 they use a global var pointing to the start of the loop XD 16:04:05 hahah 16:04:12 use a stack! 16:04:23 -!- faxlore has joined. 16:04:23 '*** Each row should be the same length. See the sample below for an example of how it's used. 16:04:23 ' 16:04:26 the example is off by one char 16:04:31 one of the lines is one char longer than the other 16:04:32 :D 16:04:38 * AnMaster ponders some semi-object orientation in bash 16:05:20 AnMaster: trivial 16:05:29 indeed, if you use eval 16:05:32 you have arrays, so just store the data as an array 16:05:35 but is it possible without eval? 16:05:37 hm... 16:05:55 how do you do dispatch? 16:06:02 subclassing .. ? 16:06:10 I said "semi-object" :P 16:06:15 actually I don't think I want to know :P 16:06:31 but as bash is turing complete it SHOULD be possible 16:06:44 you write a bash++ interpreter coded in bash! :D 16:06:50 * AnMaster runs 16:07:10 something like: 16:07:15 obj = array 16:07:17 well 16:07:19 obj = array of entries 16:07:27 entry = array with [0] = method or prop 16:07:35 hm 16:07:45 array can't have strings as indexes 16:07:49 class = array of keys, where if class[i] = key, obj[i] = value bound to key 16:07:52 AnMaster: see that 16:08:21 so I'd have to use my libhash (that doesn't do hashes really, just associative arrays) 16:09:01 using variable names like hsh_myhash_fe1482b9afd 16:09:02 ;D 16:09:09 iirc 16:09:12 please see what i said 16:09:20 * AnMaster reads 16:09:26 ah 16:09:27 good idea 16:09:38 ehird`, however, lookup speed would be terrible 16:09:51 correction: speed would be terrible 16:09:52 that's a given 16:10:03 The Little Schemer's environments does something similar, btw 16:10:05 with two lists. 16:10:14 "little schemer"? 16:10:30 * AnMaster points to his irc bot in bash at envbot.org, got decent speed 16:10:31 the best book about recursion 16:10:37 it teaches you to think recursively 16:10:51 * AnMaster shudders 16:10:58 it usess Scheme as its language but that's not the point, you can easily go through it without a scheme system 16:11:01 and many do 16:11:04 it's well worth a read 16:11:06 ehird`, I'm thinking about the big O all the time ;P 16:11:09 up there with SICP 16:11:10 Why shudder? 16:11:22 faxlore: he's an imperative weenie? 16:11:23 :P 16:11:24 well for a functional language it makes sense 16:11:27 haha 16:11:37 and when I use lisp I do use recursion 16:11:48 I try to avoid it otherwise 16:12:05 the question, anmaster, is - why do you use an inferior language which doesn't support such expressive coding of algorithms? 16:12:12 well you should avoid recursion in C when you want TCO 16:12:17 because of your biases against lisp that you've got from other people, I bet. 16:12:18 otherwise.. use a real language? 16:12:19 heh 16:12:27 (real languages do TCO) 16:12:31 ehird`, hm? 16:12:33 faxlore: well yeah, if you're using C then the only thiing you should be doing is writing an interpreter or something ;) 16:12:39 I do use lisp a lot, I'm an emacs user 16:12:45 so elisp 16:13:03 elisp is not lisp. 16:13:07 :| 16:13:07 http://envbot.org/trac/browser/anmaster-trunk/lib/hash.sh <-- not nice code, but works 16:13:23 ehird`, hm? what is the difference, they certainly have a lot in common 16:13:43 A lot of paranthesis ":D 16:13:45 AnMaster: elisp is a hacky, horribly-designed and implemented language that happens to have a lot of parentheses 16:13:53 * faxlore lol 16:13:56 faxlore: stfu let me take that metaphor :P 16:13:56 hah 16:14:04 great minds ehird! 16:14:28 faxlore: great minds! ... and sheep 16:14:30 :) 16:31:37 -!- sebbu2 has joined. 16:36:42 -!- oerjan has joined. 16:37:42 -!- oerjan has quit (Client Quit). 16:39:40 -!- oerjan has joined. 16:41:38 i think R5RS scheme was designed by people who hate implementors 16:41:47 Hahaha 16:42:08 I like this new approach to language design 16:42:22 'how can we make a language that looks so elegant and simple PURE LIQUID DEATH to implement?' 16:42:38 'mwahahaha! now all implementors will commit suicide and we shall RULE THE WORLD!' 16:44:34 however, i still implement it anyway 16:44:35 oh well. 16:44:47 anyone have a favourite language they want a scheme in? :P 16:45:49 -!- sebbu has quit (Success). 16:46:05 Malbolge :) 16:46:28 given that someone already made a scheme in unlambda... 16:47:49 hahaha. no :( 16:49:17 is there one in brainfuck btw? 16:49:51 that sounds painful :[ 16:50:06 nowhere near as painful as in Malbolge, i trust 16:51:34 and no there isn't 16:52:09 because fitting that stuff into a tape-heap thing is PAINFUL 16:52:10 :-) 16:54:10 maybe make a scheme -> bf, then a scheme in scheme ... and 16:54:11 scheme in unlambda? fully compliant to the spec? 16:55:09 faxlore: scm->bf is the hard bit 16:55:11 oklopol: obviously not 16:55:19 oklopol: although it might have continuations, i mean that's not vey hard with c 16:55:20 ;) 16:55:20 obviously? 16:55:33 r5rs is small but not trivial 16:55:45 it is Liquid Flaming Death to implement 100%, even in C or whatever 16:55:52 but a small subset is easy 16:56:41 indeed, it would be hard to do it in unlambda, i just don't think it's *obvious* it's not full r5rs 16:57:23 have you ever read r5rs 16:57:29 implementing that in unlambda is just silly.. 16:57:42 yeah i've read it 16:57:47 how is it silly? 16:57:47 and there's no point i mean once you have the basic scheme its just tedious function after function after that. 16:58:09 oklopol: it would need vectors 16:58:16 do you think it would have VECTORS? 16:58:16 in unlambda? 16:58:18 i think the scheme-alike in question has no mutable data, like unlambda 16:58:21 umm.... 16:58:31 vectors can be lists.. 16:58:35 oklopol: nope 16:58:38 no? 16:58:40 oklopol: lookup time has to be O(1) 16:58:46 you acn't have that with a linked list 16:58:46 oh, it specifies that? 16:58:47 have a nice day! 16:58:57 i must have not payed attention 16:59:00 iirc yes 16:59:14 i recall "vectors are usually faster in lookups" 16:59:17 but i'll check 16:59:51 specifying ordos is interesting because it actually may disallow implementation in many languages 17:00:43 but anyway 17:00:50 obviously a toy unlambda impl won't do all scheme 17:01:00 because it's pretty redundant, you don't get extra cool points beyond call/cc 17:01:56 oerjan: link? 17:02:31 hm question 17:02:38 is there any native-code INTERCAL compiler? 17:02:41 preferably optimizing :D 17:02:50 yeah, doesn't specify access time of course 17:03:35 i don't recall 17:03:38 pretty redundant? it'd be awesome to make a full scheme in unlambda 17:03:45 oklopol: no, it wouldn't 17:03:57 sure would. 17:04:12 someone tell oklopol he's wrong 17:05:23 matter of opinion 17:06:37 and i'm not wrong, why not do it good if you're gonna do it 17:07:21 basically, once you add mutable structures you have to pass a simulated heap... 17:07:55 :-) 17:09:32 any other language suggestions for a scheme? ;) 17:09:37 if there's no mutable structures, i'd hardly even call it a scheme 17:09:43 befunge 17:09:57 perhaps a crippled lisp 17:09:58 might even be fairly doable... 17:10:00 ehird`: Do it in Agda2 or Coq or Epigram or something 17:10:04 crisp 17:10:16 oerjan: yow 17:10:17 :) 17:10:18 maybe. 17:10:23 faxlore: never heard of any of those but Coq 17:11:03 oklopol: everyone's done that ;) 17:11:15 done what? 17:11:24 wroten some kind of lisp interpreter in a minimal lisp 17:11:41 i have no idea what that has to do with anything, though 17:11:42 oerjan: the parser will be difficult in befunge :) 17:11:48 oerjan: i assume you mean befunge-98 btw? 17:11:51 to escape the 80x24 17:11:54 yeah 17:12:18 * ehird` tries to think of a pun involving Befunge and Scheme to use as a name 17:12:19 :-) 17:12:41 oerjan said you need to simulate a heap to have mutable structures, i said if it does not have mutable structures, it's so far from the spec i'd hardly call it scheme 17:12:42 hm i haven't got a befunge implementation here 17:12:49 what's the best (i.e. fastest) interpreter out there right now? 17:12:54 parser for scheme difficult? 17:13:11 oerjan: in befunge yeah :) 17:13:17 if it lacks mutable structures, you cannot reason with it as you can with scheme, making it definitely less powerful 17:13:17 no idea 17:13:26 oklopol: your >>> sch has no mutable structures 17:13:30 just lacking vectors doesn't matter much 17:13:33 no set-car! or set-cdr! 17:13:36 indeed, i'd hardly call it a scheme 17:13:46 that doesn't have anything to do with anything either 17:13:47 um mutability IMPACTS on your reasoning 17:13:51 oklopol: well it was a subset of scheme + unlambda-specific functions 17:13:54 iirc 17:14:03 in fact, PLT Scheme 4.0 makes all cons pairs IMMUTABLE by default 17:14:15 you need to use mcons/mcar/mcdr/mset-car!/mset-cdr! for mutability 17:14:20 and PLT is one of the big-uns in scheme 17:15:06 i'm not saying being immutable is bad, i'm saying if structures are immutable, you cannot use it as you might want to use scheme. 17:15:34 which means many scheme programs would have to dramatically change structure to be convertible to an immutable scheme 17:15:44 i'd hardly call such a scheme a scheme 17:15:46 oerjan: my befunge program will be ugly! since i'm commenting it to hell it'll probably look more like a brainfuck program with funny symbols than befunge, heh 17:16:07 oklopol: most scheme programs don't use set-car!/cdr! 17:16:27 which is why PLT - which is the most popular implementation of Scheme (unless this has changed) - is switching 17:16:30 umm no, but many scheme programs do use some mutable features. 17:16:41 oklopol: like? 17:16:53 mutable _variables_ are the rule 17:16:54 dunno, that's just what i've heard from schemere 17:16:57 *schemers 17:17:09 hmm, oerjan makes a good point 17:17:14 oerjan: of course 17:17:20 oerjan: but i would wager that unlambda interp had them. 17:17:31 it couldn't 17:17:37 if you have environments in unlambda you're already doing crazy operations, updating of values would be trivial 17:18:07 no, it isn't. for full mutability of environments you need a heap 17:18:21 without mutable structures, making scheme in unlambda shouldn't be that hard, basically conversion to pointless & list support 17:18:41 -!- sebbu has joined. 17:18:49 mutable variables. 17:19:02 anyway 17:19:11 who knows what the best befunge implementation is. 17:19:12 fastest, that is 17:19:17 maybe best error messages ;) 17:19:28 i don't recall whether it supported mutual recursion or just did macro expansion of definitions (like the lazy-K scheme afaiu) 17:19:53 lazy k's macrolanguage is not scheme 17:20:03 it's written in scheme and uses s-expressions 17:20:05 but isn't scheme 17:20:18 not even a subset? 17:21:15 nope 17:21:26 it's closer to lambda calculus with macros than scheme 17:36:30 -!- sebbu2 has quit (Connection timed out). 17:44:49 -!- sebbu2 has joined. 17:52:28 anyone re: befunge? 17:56:06 :( 17:56:12 -!- timotiis has quit ("leaving"). 17:56:16 * faxlore doesn't understand the question 17:56:24 oh best implementation.. 17:59:11 where best is mainly determined by: fastest, and nice error messages 18:03:00 -!- sebbu has quit (Connection timed out). 18:03:00 -!- sebbu2 has changed nick to sebbu. 18:07:35 -!- timotiis has joined. 18:16:04 -!- sebbu2 has joined. 18:17:27 nobody? 18:18:19 nope 18:29:09 :( 18:29:14 I guess I could write my own :P 18:31:30 Shit, 8 core mac pro. 18:31:35 What would I do with 8 cores? 18:33:36 ... Run befunge probably. 18:34:09 -!- sebbu has quit (Connection timed out). 18:34:10 -!- sebbu2 has changed nick to sebbu. 18:42:40 befunge-98 is complex 18:42:41 ::| 18:45:26 very comple 18:45:28 x 18:45:58 Someone suggst a different langugae :P 18:46:22 Glass then. 18:46:33 -!- Hiato has joined. 18:46:36 -!- sebbu2 has joined. 18:46:40 Hello all 18:49:00 let me cut to the chase: The Acronym spec is now complete, an now it's interpreter time. What language should be the primary choice for this (needs to hold fairly large arrays of Int32, in two dimensions to create the 128x128 grid twice, also needs to have an easy if/else if/case/switch/when structure). Any suggestions? 18:49:31 Hiato: Just use whatever you enjoy programming in 18:50:21 Sure, ok, thanks faxlore (because I received a couple of long stares when I wrote the Full 0 interpreter in Delphi last time ;) ) 18:51:06 Delphi? O_o 18:51:20 Exactly :P 18:51:30 Like Pascal, but different 18:52:15 hmm, 18:52:20 fairly large arrays? 18:52:24 would 'infinite' be better? 18:52:32 yes, (128x128)x2 18:52:37 hm 18:52:43 show me the spec 18:52:43 yes, I suppose, but the spec specified that 18:52:50 I don't mind though, I'll change the spec 18:52:57 blah, ok, hold on 1 sec 18:54:36 -!- ehird` has quit. 18:55:38 http://rafb.net/p/rPclV323.txt 18:55:43 damn 18:55:56 ok, well it's there anyways 18:58:11 -!- ehird` has joined. 18:58:17 sorry, hiato. irc client troubles. 18:58:19 :| 18:58:23 sure, no problem 18:58:25 :( 18:58:28 anyway 18:58:28 http://rafb.net/p/rPclV323.txt 18:58:32 anyway, i'll write an interpreter in scheme, with infinite arrays instead of restricted 18:58:41 here you go, stuff is misaligned because of wordpad 18:58:45 by the same token it will be able to run in a browser, once i get my implementation written :P 18:59:11 wow that is evil. 18:59:23 heh, thanks 18:59:38 oh, that one 18:59:43 so you'll write an ACRONYM interpreter in scheme? 18:59:47 how much change since last version? 18:59:56 Hiato: yeah, when i find the time 18:59:58 not much really 18:59:59 or maybe compile it 19:00:02 unless it's self modifying 19:00:06 Thanks ehird` ! 19:00:12 no, it's not, no worries 19:00:16 yay 19:00:17 :P 19:00:29 Haha :) 19:00:36 Hiato: do they have to be int32s? 19:00:38 or can they be bignums 19:00:39 oklopol: some technical things and a couple of new tidbits 19:00:39 :D 19:00:48 compiling a self-modifying language might be interesting 19:00:52 Sure, bignums = all the better 19:00:56 oklopol: it's been done. 19:00:57 for befunge. 19:01:01 ditto 19:01:07 I was about to say that :P 19:01:11 Hiato: ok, remove the fixed size restrictions from the spec and i'll do it :D 19:01:11 i know 19:01:14 :P 19:01:16 doesn't make it less interesting 19:01:26 otherwise i will have a language-strikingly-similar-to-ACRONYM implementations 19:01:30 instead of an ACRONYM implementation 19:01:40 alright 19:01:41 sure 19:01:52 I am changing it now :) 19:02:48 it'll also make it turing complete 19:03:02 yeah, for sure :D 19:04:13 -!- sebbu has quit (Connection timed out). 19:05:37 "Each grid cell can store any arbitrary integer." is that better than Int32? 19:05:58 yeah 19:06:03 positive and negative, right?? 19:06:04 cool 19:06:05 *right? 19:06:08 yes 19:06:14 naturally :P 19:06:27 also, don't bother specifying about dynamic reallocation of the grid, just say 'grid of infinite size' and let the implementors do what they want 19:06:35 for, e.g., future implementaiton on an infinite-memory machine ;) 19:06:48 Heh, ok, cool 19:06:59 I will change as needed, thanks or the heads up ;) 19:07:34 :D 19:07:57 also, 3x2 commands? i see many one-char commands 19:08:09 oh i see 19:08:18 the command is picked from the result of executing the code in the 3x2 block 19:08:19 right? 19:09:01 well, kind of, you're close 19:09:17 what I meant was there are 6 commands, on a grid of 3x2 19:09:20 when you call ~ 19:09:33 stuff happens in accordance with the currently selected command 19:09:46 the grid is just for visualisation of the wrap-around ness 19:09:59 hhmmm 19:10:10 i may need some thinking to understand this 19:10:19 it's kind of like full 0 19:10:21 right? 19:10:34 amm.. no, not really 19:10:38 but yes, I suppose 19:10:46 in that there is a give allotment of commands 19:10:56 and the program has indirection 19:11:03 spread over some kind of shape (grid), and you select the command at will 19:11:09 i.e. it runs commands which select a command-2, and has an instruction to run the kind of command-2 19:11:27 amm,.. 19:11:30 oerjan: Scheme in Glass, sounds good 19:12:00 no, not really, It runs commands that select command 2, and then has an instruction to run the selected command, irrespective of what it is 19:12:25 oerjan: does glass have bignums? 19:12:34 Hiato: yes 19:12:44 no idea 19:19:10 -!- sebbu has joined. 19:19:12 somewhat doubt it 19:21:00 i doubt the implementation has 19:22:23 http://rafb.net/p/2CJw0b73.txt 19:22:27 alrighty 19:23:02 here it is, excuse the lame word-wrap, it was hand-done. Some things may be mis-aligned, I apologise as OO doesn't insert LF's if it wraps. 19:24:12 Glass is totally unhelpful on errors 19:24:14 it just exits 19:24:17 and gives no info 19:24:20 yep 19:24:47 very esoteric :) 19:25:06 lol :) 19:25:09 no, industry-standard 19:25:56 Yip, they learnt from the best, the obscure, GHC! It's just a mild improvement on that... :P 19:26:17 ghc gives good errors 19:26:18 :P 19:26:29 for those who work for the NSA 19:26:30 ;) 19:26:30 but then you use delphi so you're used to NOT HAVING TO BE HARDCORE 19:26:32 NERRRR 19:26:41 rubbish. the industry-standard would at _least_ lock up the computer. 19:26:43 GHC beats C++ 19:27:01 SimonRC: well, C++ was an elaborate joke... 19:27:11 C++ can easily output multi-k error messages if you much up templates 19:27:23 why are you using templates 19:27:25 :P 19:27:27 or C++! 19:27:40 I'm not 19:28:15 I.e : — is-eof 19:28:16 Push 1 if end of input, 0 otherwise. 19:28:16 ehird`, for your information, us delphi dudes may be soft on the inside, but nothing can ever penetrate k : Integer; k := 4 / 3; Error: "Uknown" type/class/object mismatch :P 19:28:21 i want it in the other way round 19:28:22 damnit! 19:28:25 :P 19:29:18 hm it seems like a 'not' in Glass would be non-trivial 19:29:19 :( 19:29:51 oh 19:29:52 duh 19:29:53 ehird` : Are you writing an ACRONYM interpreter in Glass? (Sanity check) 19:29:58 just do an ==0 19:30:01 Hiato: Scheme. 19:30:12 just checking... :P 19:30:12 It will be able to run the Scheme ACRONYM interpreter, therefore ;P 19:30:14 Probably not actually 19:30:19 It's going to be a restricted schem 19:30:20 e 19:30:23 -- no continuations methinks 19:30:41 sure, whatever floats your boat ;) 19:32:31 (_e)(_i)e.?<0>(_a)e.?= 19:32:38 if EOF, _e = 0, else _e = 1 19:32:58 the interpreter doesn't work. 19:32:59 :| 19:33:02 it doesn't report EOF, for EOF. 19:33:40 HAY OERJAN 19:33:41 http://www.complang.tuwien.ac.at/schani/oldstuff/index.html#schemeinunlambda 19:33:45 it's a compler, though 19:33:47 so less cool 19:35:14 I should write that unlambda-abstraction-introducer, sometime 19:37:38 Hrmm.. does anyone know if GregorR will be peeved if I add my 1L_AOI spec to the wiki 19:38:00 because his is vague and incomplete, and is merely a suggestion for further investigation 19:38:46 -!- conal has joined. 19:38:55 -!- sebbu2 has quit (Connection timed out). 19:40:37 -!- MichaelRaskin_ has joined. 19:41:17 Hiato: of course not 19:44:41 cool, then I'll put it up for the world to see :P 19:45:44 i think i'm going to type strictly algorithmically for a few minutes! 19:46:11 go for it, it'll be interesting (to say the least :P ) 19:46:17 i shall handle nesting of quotes thus: "this quote is by el qwertybomb" and is terminated by the quotation marks. 19:46:26 i shall type entirely in lower-case. 19:46:37 i shall nest quotes by using ", then ', then `. 19:46:53 all smilies shall not count as closing parentheses (like this :)). 19:47:07 and closing marks must always be outside and after the nested pair. 19:48:15 if i break the rules, then i shall break the rules. deal with it. 19:48:21 how shalt thy express added information, such as (but not referring directly to) emotions and error messages and grammatical aids (such as the formidable question mark and ellipses) questionmark 19:48:24 NEVER 19:48:39 "thou" 19:48:44 :D 19:48:47 "true" 19:48:47 i was just correcting that 19:48:50 -!- MichaelRaskin_ has left (?). 19:48:55 i shall handle all addressing of people with @name. 19:48:59 consider it a special directive. 19:49:05 oerjan: stop stealing my thoughts 19:49:08 case will not be preserved. 19:49:20 @hiato i am afraid i do not understand. 19:49:28 I present to you, your honour, a no contest plea 19:49:36 oklopol: i knew you would say that. 19:50:06 i cannot tell whether people are copying my style or not. 19:50:18 i seem to have become paranoid from my new logic typing! 19:50:28 oh no, a typing error. 19:50:41 i must devise a way to express replacements, yet regular expressions are ugly. 19:50:43 doth thou fail to comprehend the expressions put forth by my hand, to thine eyes, fellow interlocutor? 19:50:53 of course logic makes you paranoid. just look at Gödel. 19:51:01 ah! occurance-number"string"="string" 19:51:08 "doest" 19:51:08 1"logic"="logical" 19:51:23 "true" 19:51:35 @oerjan gödel was infected by self-reference, which is why he became paranoid 19:51:37 regular expressions are ugly? :( 19:51:45 1"paranoid"="paranoid." 19:51:58 You can't mean that 19:52:57 @faxlore but i do, for they are quite hacky. 19:53:07 he doesn't mean it. he is just pretending in order to entrap us. 19:53:36 "ensnare" 19:53:38 regular expressions are fairly erotic 19:53:43 yes! 19:53:44 ":P" 19:53:56 they originated in the tradition of unix, also, which i feel in light of my style of typing for the present time ("the-right-thing" typing, so to speak) should be disowned in favour of the lisp way, or the mit way, or whatever you would like to call it. 19:54:04 "O_O" 19:54:06 this is hard. 19:54:48 agreed 19:54:56 i think what we need is a language like lojban, but that would work as a programming language. 19:55:01 more symbols, i guess. and less fluid grammar. 19:55:25 that would be cool (though i guess people have made lojban programming languages anyway, they are probably not usable in any sense (even in an esoteric way)). 19:55:31 * Hiato cannot get a word in without orejan or oklopol correcting him (emoticon) 19:55:33 lisp style namespaceing in s-expressions seems nice 19:55:43 "oerjan" 19:55:47 @faxlore i do not understand. 19:55:50 although .. It's kind of hard to pronounce '(' and ')' 19:55:54 see, there you go :P 19:56:08 and i refuse to believe that was unintended :D 19:56:10 @faxlore ah, for a language. yes, i do not think s-expresisons are the best route for that :). 19:56:19 heh ;) 19:56:49 faxlore: do like in lalna, and use ´ and ` for nesting 19:57:21 (add five three) -> ádd five thrèe 19:57:32 "When the Nazi regime was briefly mentioned, Gödel informed the presiding judge that he had discovered a way in which a dictatorship could be legally installed in the United States, through a logical contradiction in the U.S. Constitution."[wikipedia] that is brilliant, i didn't know that :). 19:57:36 ohh 19:57:38 neat 19:57:38 new syntax: "quote"[source]. 19:58:17 i also used circumflex for infix 19:58:22 heh :D 19:59:13 i recommend reading about the computer science geniuses, pretty much everyone had an interesting life 19:59:33 or then i've just been reading well-written books 19:59:46 it is ironic that gödel died from not eating for fear of being poisoned. 19:59:55 not much difference dying either way, i guess :P. 20:06:30 -!- Corun has joined. 20:12:10 hmm, my standard way to learn a language is writing a scheme interpreter. there's something wrong with that. 20:14:49 lol, :D Nope, can't quite put my finger on it ;) 20:20:51 -!- RedDak has joined. 20:29:37 -!- oerjan has quit ("Good night"). 20:30:26 -!- ttm_ has joined. 20:30:48 -!- dbc has quit (Read error: 110 (Connection timed out)). 20:33:32 http://esoteric.voxelperfect.net/wiki/1L 20:33:34 it's done 20:33:42 I hope ;) 20:38:52 Anyway, night everyone, it's late :( 20:38:56 -!- Hiato has quit ("Leaving."). 20:41:01 * SimonRC goes 20:42:43 everyone dies 20:52:20 -!- conal has left (?). 20:55:01 anyone have a favourite language they want a scheme in? :P <-- bash 20:55:12 no thats your job 21:00:04 :) 21:20:45 -!- jix has quit ("CommandQ"). 21:21:48 * ehird` is writing the spec for a rewriting term language thing. 21:23:20 rewriting? sounds hot 21:23:37 heh 21:24:35 ehird`, I don't know scheme 21:24:42 ehird`, do it in forth then 21:24:43 :P 21:24:59 (then you did it in bash because someone coded a bashforth so...) 21:25:01 :P 21:25:17 oklopol: as well as "A"->"B" 21:25:21 you can do expression->expresison 21:25:22 so you can do 21:25:32 ("A"->"B")->("C"->"D") 21:25:42 and all terms rewriting "A" to "B" turn into ones rewriting "C" to "D" 21:26:03 "^my (long|short) regex" -> "your \1 regex" 21:26:06 ehird`, what about that ;) 21:26:13 adding regex support 21:26:22 full PCRE 21:26:28 with lookahead and so on 21:26:29 ehird`: tree-rewriting? 21:26:37 oklopol: yep 21:26:45 AnMaster: no 21:26:48 ah, one of my favorite concepts :) 21:26:58 it even has output! 21:27:12 input may come sometime 21:27:22 hmm, certain virtual trees are detected by a rewriting rule that kills them, and outputs? 21:27:27 errr 21:27:34 not virtual trees 21:27:35 sorry 21:27:36 oklopol: oh and i think i might make: 21:27:38 ("A"->"B")->("C"->"D") 21:27:41 first rewrite all As to Bs 21:27:43 getting: 21:27:49 ("B"->"B")->("C"->"D") 21:27:53 then, erwriting all Cs to Ds 21:27:54 a hard-coded rule ["output" object] -> outputs object 21:27:54 getting: 21:27:57 ("B"->"B")->("D"->"D") 21:28:06 then rewriting all ("B"->"B") to ("D"->"D") 21:28:10 oklopol: good/bad? 21:28:19 hmm 21:28:23 oklopol: and "literals" on their own in a statement are outputted 21:28:26 interesting 21:28:40 oklopol: or should i have A->B a and b implicitly quoted.. 21:28:42 i've done a similar thing for thue, but that's one sick idea 21:28:54 i mean, with my idea i think its computationally useless 21:28:56 so.. 21:29:08 i mean, that data and rewriting rules in the same package might have some interesting implications 21:29:30 i do think it makes it computationally unsuitable though 21:29:35 so, i'll make them quoted 21:29:49 well, if you do it like that, yes 21:29:54 yeah, quoting works for scheme 21:30:03 no i mean 21:30:06 A->B is always quoted 21:30:25 hmm 21:30:31 could you have metarules for those? :) 21:30:38 and meta^2 rules 21:30:41 heh, maybe 21:30:45 i'll just submit the 'basic' lang 21:30:47 then i'll modify it 21:33:13 oklopol: http://esoteric.voxelperfect.net/wiki/CRTL 21:33:23 feel free to comment, it's completely fluid right now 21:34:24 -!- ehird` has left (?). 21:34:28 -!- ehird` has joined. 21:34:35 better add the rule that strings are searched. 21:34:40 better add the rule that strings are searched. 21:34:42 better add the rule that strings are searched. 21:34:43 better add the rule that strings are searched. 21:34:46 better add the rule that strings are searched. 21:34:46 -!- ehird` has left (?). 21:34:48 -!- ehird` has joined. 21:34:50 better add the rule that strings are searched. 21:34:52 eurh 21:35:39 ("A"->"B")->("C"->"D") would be fine if you change it just a bit, 1. rules don't rewrite themselves 2. rules only rewrite rules of lesser degree 21:35:44 done, look now oklopol 21:35:46 err 21:35:47 wait 21:35:57 this is a degree 2 rule, because it's l-side has a function 21:35:57 how about now... 21:35:59 argh 21:36:00 damnit 21:36:01 Stupid 21:36:01 god 21:36:03 damn 21:36:04 wiki 21:36:18 oklopol: lesser degree? 21:36:22 oklopol: OK refresh now 21:36:27 i mean 21:36:32 "a" first degree term 21:36:37 ("a"->"b") 21:36:40 ... 21:36:42 "a" 0th 21:36:46 ah 21:36:47 "a"->"b" 1th 21:36:58 sounds like principa mathematica's hopeless Godel-avoiding 21:37:01 :) 21:37:04 the degree is the most nested part of it or something 21:37:11 hmm, i don't know that 21:37:48 basically 21:37:55 they hated self-reference and the paradox it entails 21:38:03 so sets of type N can only contain sets of type N-1 21:38:26 ah, well, that's a bit different 21:38:30 godel came up with godel numbering, showed how you could use it to construct a self-containing set and similar, and finally BAM godel's incompleteness theorem, you got yourself a paradox in principa mathematica 21:39:06 I think that Type : Type breaks for similar reasons 21:39:15 I really want to get the lambda term though 21:40:13 question: 21:40:20 is CRTL1 (the current version) turing complete. 21:40:26 I think YES by isomorphism with thue? 21:42:43 ooh, i know 21:42:50 oklopol: what about free variables 21:42:57 ("id",x)->x 21:43:05 ("dup",x)->(x,x) 21:43:31 ("loop",x)->("loop",("loop",x)) 21:43:42 that's the beauty of tree-rewriting 21:43:59 scoping is unbelievably sexy 21:44:10 err, wait 21:44:11 instead of , 21:44:15 ("id"->x)->x 21:44:16 of course. 21:44:22 since you only have "blah" and a->b 21:44:45 ("loop"->x)->("loop"->("loop"->x)) 21:47:57 -!- CakeProphet has joined. 21:48:07 :o 21:48:09 hello my beautiful friends 21:48:43 -!- GreaseMonkey has joined. 21:49:16 ... 21:49:19 hello. 21:49:38 oklopol: updating the CRTL spec with free names now 21:50:53 oklopol: Oh, for useful stuff I need concatentation of strings. 21:51:13 I'll use a~b 21:53:38 OK, oklopol, new spec I think 21:53:44 http://esoteric.voxelperfect.net/wiki/CRTL 21:53:58 with new example! 21:54:09 CakeProphet: you made dupdog? you might like this then, it's self-rewriting 21:54:20 I think it's turing complete. 21:54:38 indeed I did 21:55:10 CakeProphet: dupdog isn't turing complete, though 21:55:11 :) 21:55:21 actually, you know what i'd like to see for this language? 21:55:23 a thue implementation of it 21:55:25 :D 21:55:31 hehe 21:57:47 I like non-turing complete languages 21:57:56 they're pitiful little creatures. 21:57:58 me too! 21:58:17 oklopol: should ("a"~"b")->c match "ab" or ("a"~"b") 21:58:19 if you can do: 21:58:32 ("abc"~rest)->(rest~"def") 21:58:38 then "abcblah" turns into "blahdef" 21:58:43 "a"~"b" should probably be "ab". 21:58:54 with free names allowed as you can see up there? 21:58:55 ok. 21:59:10 substrings match anyway 21:59:17 I actually have no clue what dupdog is. 21:59:21 as I've never programmed anything in it. 21:59:28 CakeProphet: highly inturingcomplete. 21:59:40 (Useless for anything but constant output, essentially.) 21:59:56 but what is it? 22:00:07 dupdog is interesting in that it's not interesting in anyway, but somehow seems cool :D 22:00:16 rofl 22:00:18 ...yes 22:00:24 CakeProphet: check your memory 22:00:27 it's there 22:00:33 it's like... the most pointless thing ever. 22:00:38 indeed. 22:00:41 CakeProphet: whatever the lowest class is :P 22:00:45 it can't do any real computation 22:00:50 no I mean... what computational class. We never figured that out. 22:00:54 http://esoteric.voxelperfect.net/wiki/CRTL#Examples 22:00:59 new program generating "barbar"! :P 22:01:04 I said it was FSA originally... but someone else said it wasn't. 22:01:07 CakeProphet: whatever the least powerful computational class is :P 22:01:12 lower than FSA 22:01:19 ...is that possible? 22:01:23 maybe. 22:01:29 it certainly can't represent all FSA 22:01:53 only a VERY restricted subset of them 22:02:11 now, someone implement crtl 22:02:12 ...so then it's a FSA. 22:02:14 or i'll do it!!!! 22:02:27 an FSA isn't required... to represent multiple FSAs... that would be confusing and recursive. 22:04:23 a believe its a turing machines job to represent an infinite array of FSAs 22:05:07 ...well lets see. 22:05:22 the state of a dupdog program is... the source code itself. 22:05:24 so in that regards 22:05:29 it has an infinite number of possible states. 22:05:37 so it's not an FSA.... but it's nothing close to being a turing machine. 22:06:07 unless someone proves me wrong. Some mad genius could attempt to do it. 22:07:29 I'd say it's somewhere inbetween. Just don't know the name for it. 22:07:43 in-between automata 22:07:51 someone implement CRTL! :P 22:08:06 -!- ^_` has joined. 22:08:16 -!- GreaseMonkey has quit (Nick collision from services.). 22:08:25 -!- ^_` has changed nick to GreaseMonkey. 22:08:46 it has infinite states... but I don't think it can reach any of them arbitrarily. Its next state is dependent on its current state. 22:08:59 Markov chain automata 22:10:17 -!- immibis has joined. 22:10:20 :D 22:10:30 Now someone implement CRTL! :P 22:11:16 ...I'd be afraid to get it wrong 22:11:21 why 22:11:22 what language do you want it in? 22:11:37 how do i change channels in irssi? 22:11:40 uhhhhhh... CRTL! 22:11:41 :D 22:11:43 immibis: /win 22:11:48 C-Num 22:11:50 err 22:11:54 M-num 22:11:57 ...you want me to... implement CRTL in CRTL? 22:12:04 CakeProphet: Yes! 22:12:09 CakeProphet: Or, you know, any languge. 22:12:14 meta being alt? 22:12:21 immibis: why not find out 22:12:22 oh. I thought you needed the first implementation 22:12:25 Er. That I have a compiler or interpreter for on here, obviously. 22:12:32 if one already exists... then I'm not doing anything. 22:12:34 ... 22:12:39 it doesn't, CakeProphet. 22:12:47 oh. 22:12:52 But I could manually compile your interpreter into C or whatever and use that! 22:12:59 Alright. I'll implement it in Python. My practical language of choice. 22:13:02 Then we could call ourselves CRAZIER-LISP 22:13:04 aieee, python! 22:13:07 aw, alright. 22:13:42 hahaha 22:13:56 i really want RETROLISP 22:14:01 which is like lisp of days of yore 22:14:03 but crazier! 22:14:07 and more fun for scripting 22:14:21 like, (incf 2) works 22:14:21 :D 22:14:40 and you have a silly prompt, like " RETROLISP >> " 22:14:51 and it's written in both C and RETROLISP 22:15:16 go for about 50:50, where the language particular parts is written it.. totally arbitrary :D 22:15:34 well, you need the core and the parser in C :P 22:15:36 but yeah! 22:17:33 ...I don't understand the expression thing 22:17:34 (a->(b->c) ...how does that work. 22:17:46 CakeProphet: tree rewriting 22:17:56 ...lolwhut. 22:17:57 if you don't understand it maybe you shouldn't implement it :) 22:18:03 I TOLD YOU 22:18:07 oklopol! explain it to him 22:18:13 what... are you replacing. 22:18:25 CakeProphet: terms in the program 22:18:28 a with when you do a -> (b -> c) 22:18:30 it's self-modifying. 22:18:36 ...I know. 22:18:37 you replace the whole expression 22:18:45 like thue... except I need this expression thing explained. 22:18:47 (a->(b->c))->E is: 22:19:00 "find rules of the form (a->X) where X is of the form (b->c)" 22:19:10 "and replace with E" 22:19:35 .... 22:19:36 so like 22:19:44 ... 22:19:46 hold on 22:19:50 :) 22:19:53 -headscracth- 22:19:57 ehird`: i see you have it going on pretty well 22:20:00 oh 22:20:00 oklopol: I think he's having problems! :P 22:20:05 not that well i guess :-) 22:20:08 oklopol: But yeah, take a look at the new spec :D 22:20:19 unless that was a productive headscratch or something 22:20:21 i shall 22:20:21 give me an example of how that rule would change something else in the program. 22:21:14 so (a->b)->(c->d) = replace a->b with c->d everywhere else? 22:21:35 immibis: yes, though that is an invalid rule if entered into a program 22:21:40 since 'c' and 'd' are free 22:22:02 CakeProphet: watch my dialog with immibis and i think it might become clear :P 22:22:18 what do you mean by free? 22:22:36 not used? 22:22:37 unbound variable 22:22:39 in (a->b)->(c->d), 'a' and 'b' are bound, and 'c' and 'd' are free 22:22:56 in (a->b)->((c->d)->e), 'a', 'b', 'c', and 'd' are bound, and 'e' is free 22:23:16 free variables in a program are an error, no matter what 22:23:18 the left side is matched with the input, strings are just checked for matching, variables are set to whatever they correspond to in the input 22:23:30 variables are then substituted to the right side 22:23:35 anything thats on the left side of an expression is bound, everything else is free? 22:23:37 oklopol: with scoping! 22:23:40 but, guess one explainer at a time :) 22:23:42 ehird`: ? 22:23:43 oklopol: you have to take into account a nested RHS 22:24:05 hmm... what do you mean? 22:24:09 wait no you're right. (a->b)->((a->c)->c) should use the binding of 'a' from (a->b) 22:24:27 yes 22:25:06 ... which makes this language effing awesome 22:25:09 updating the spec a-now 22:25:41 OK 22:25:55 CRTL will become CRTL 1.0 unless anyone sees anything wrong with the updated spec 22:25:55 :P 22:26:01 can you use this rewrite language as a theorem proer? 22:26:34 faxlore: maybe? 22:26:46 ehird`: do you have the degree rule? 22:26:54 oklopol: whut 22:26:57 hm, I could enjoy windowmaker 22:27:31 actually... 22:27:46 i don't think there's any use for it with the rules don't change themselves rule 22:27:50 so, forget it 22:28:55 yeah no self-modifying rules because that would make programs infinitely more hard to write 22:29:04 oklopol: i think a fibonacci program might be good 22:31:05 increment: (("increment"->a)->("number"->(a->"a"))) decrement: (("decrement"->(a->"a"))->("number"->a)) 22:31:19 clever, oklopol 22:31:34 nah, just done that many times 22:31:39 :) 22:31:51 oklopol: you have to eliminate ("number"->a) at some point though 22:31:55 otherwise you'll have weird stuff 22:32:03 not really, in case you just never have "number" as such 22:32:09 oh, right 22:32:15 that's what i was gonna ask earlier 22:32:26 can you rewrite *inside* another rule? 22:32:42 because that will screw up pretty much everything :) 22:33:01 esplain 22:33:28 ("foo"->"bar"); ("bar"->"foo") 22:33:36 do they rewrite inside the other rule? 22:34:07 i'll step through that program 22:34:14 "foo"->"bar"; "bar"->"foo" 22:34:20 "bar"->"bar" 22:34:32 i take that as a "yes" 22:34:33 epsilon 22:34:37 (where epsilon is a null program) 22:34:42 oklopol: well what else should it do 22:34:49 that's fine, i think 22:34:57 and you can do macros! :) 22:35:07 i think. 22:35:08 somehow. 22:35:27 macro: 22:35:31 ("id"->x)->x 22:35:37 simple 22:35:47 it's a bit like a lambda calculus without scoping and all that :P 22:35:55 indeed. 22:36:02 i have my reasons for loving tree rewriting 22:36:46 oklopol: you should totally implement this! :P 22:36:50 because tag->value is a common way to express "normal" tuples, tuples not meant as data 22:36:56 umm.. what because of that... 22:37:01 wait... 22:37:14 actually it's an amusing language in that it's 100% intuitive 22:37:22 the rewrite rules are very intuitive 22:37:28 the syntax, and semantisc 22:37:32 ah, i was just thinking perhaps that could be something like . instead of ->, since it's used for both rewriting and tuple creation 22:37:39 but, i guess -> is good 22:38:11 i've made a tree-rewriter once... i think i could just make a few changes to that 22:38:24 basically updating tuples into the rewriter tuple list 22:38:38 hmm... that might be a bit slow :-) 22:38:40 as long as it runs the example programs correctly! 22:38:47 not the simplest language to implement well 22:39:05 i really want to see an infinite-fibonacci program in the langugae though 22:39:18 i'm doing some scheming now, perhaps i can do it tomorrow 22:39:29 unless you can't resist doing it yourself today ;-) 22:39:32 :( 22:39:34 which 22:39:38 the implementation or fibonacci 22:39:38 which? 22:39:42 oh 22:39:47 i meant the interpreter 22:39:54 infinite... hmm, doesn't sound hard 22:39:55 wait 22:40:15 i'll give it a try 22:40:52 basically 22:40:55 it should output 22:40:59 oh... 22:41:01 hmm 22:41:01 fib1\nfib2\nfib3 22:41:03 etc 22:41:04 forever and ever 22:41:10 in unary or whatever you want, no matter 22:41:16 actually, the rewriting scheme doesn't allow for a trivial implementation 22:41:17 note: for newline you will need to actually have a newline 22:41:18 like 22:41:19 "abc 22:41:20 " 22:41:22 and hm does it not? 22:41:23 that's bad 22:41:26 how could i change it? 22:41:40 for you don't have guards, and you don't have definite evaluation order. 22:41:46 oh, wait 22:41:46 i think i have it 22:41:56 i do have definite evaluation order 22:42:02 up to down 22:42:04 but maybe not 22:42:06 eh whatever 22:42:10 what's your idea? 22:45:29 you don't need it to be definite 22:45:59 fibonacci is easy enough, i'm just a bit headachey today 22:48:07 :D 22:49:29 xD 22:49:37 okay, i made a bunch of functions 22:49:41 then realized i don't need them :) 22:49:44 it's a oneliner 22:49:51 show! 22:50:12 (("fib"->a)->b)->(("fib"->b)->a~b) 22:50:22 hm 22:50:23 no. 22:50:29 that does not output at every step of the way 22:50:33 ("fib"->"1")->"1" 22:50:33 and doesn't output with a newline 22:50:35 oh. 22:50:45 remember: you need "literal"; -- as one statement -- to output 22:50:51 so you need to have a dummy statement at the end 22:50:55 replace that witht he fibonacci rules 22:50:59 then calculate one step on a literal 22:51:03 or similar 22:51:08 but 22:51:14 how do i create a new statement? 22:51:15 hmm 22:51:26 replacing some kind of dummy literal 22:51:35 but... i'll need an infinite number of them? 22:51:42 hm 22:51:45 i don't think you will 22:51:47 i dunno 22:51:54 when something is output 22:51:58 does the output thing vanish? 22:52:11 yes, should i change that 22:52:16 no 22:52:19 i don't think so 22:52:31 perhaps make it possible for a rule to produce multiple right sides 22:52:48 -!- RedDak has quit (Remote closed the connection). 22:52:51 (("fib"->a)->b)->(("fib"->b)->a~b);a 22:52:59 i don't get it 22:53:09 also 22:53:11 a is an error there 22:53:18 oh, sorry 22:53:26 i forgot that was your original splitter 22:53:29 (("fib"->a)->b)->(("fib"->b)->a~b), a 22:53:33 or smth 22:53:48 i don't see how that would work 22:53:57 (("fib"->"1")->"1")' 22:54:33 shouldn't that become (("fib"->"1")->"11"), then (("fib"->"11")->"111") etc. 22:54:42 what is ' 22:54:48 typo :) 22:54:56 ok, let's see... 22:55:09 that does nothing on its own 22:55:22 ? 22:55:27 (("fib"->"1")->"1");("fib"->"1") 22:55:30 is a fancy way of saying "1" 22:55:38 ummm... 22:55:47 why would that get applied to itself? 22:56:02 it doesn't 22:56:20 (("fib"->"1")->"1") is "replace ("fib"->"1") with 1" 22:56:24 apart from in the current rule 22:56:27 so it finds the next statement 22:56:29 ("fib"->"1") 22:56:32 and makes it "1" 22:56:33 ummm 22:56:34 what 22:56:44 where did you get that? :) 22:56:53 did i say ("fib"->"1")? 22:57:12 (("fib"->a)->b) -> (("fib"->b)->a~b), a <<< is the rule that's being applied 22:57:28 (("fib"->"1")->"1") will never be applied to anything. 22:57:33 it's "data" 22:57:49 no it's not 22:57:54 k 22:57:55 it's ("fib"->"1")->"1" 22:57:59 (...) is just for grouping 22:58:05 (x) is x 22:58:05 well, duh 22:58:15 (("fib"->"1")->"1") is 22:58:18 a rule. 22:58:20 not data 22:58:27 yes, but there's nothing it can apply to. 22:58:37 so it can be considered data. 22:58:51 just like a list in lisp is data even though you can apply it if you want. 22:59:13 well in a program it will have that effect. 22:59:20 ... 22:59:25 what effect exactly? 22:59:28 dunno. 22:59:37 faxlore: suggest a list quoting syntax for RETROLISP! 22:59:41 so, will you add ","? 22:59:50 for multiple right sides 23:00:00 modern lisp: (QUOTE (A B C)) or '(A B C), LISP 1.5: ((A B C)), RETROLISP = ? 23:00:03 oklopol: is , like 23:00:12 it's multiple right sides :) 23:00:14 a,b -> "replace with a then b" 23:00:18 because... 23:00:20 "QUOTE"(A B C) 23:00:25 "foodle"->"bar","foo" 23:00:27 "QUOTE"(A "UNQUOTE"B C) 23:00:30 ("foodle"->a)->something 23:00:36 what does that produce 23:00:39 faxlore: haha no :P 23:00:42 lol 23:00:49 the program "a" -> "b", "c"; "a" would print "b" and "c" if the function is applied, otherwise "a" 23:01:04 use , for quote and ` for unquote 23:01:05 both right sides are added to the tuplespace 23:01:21 faxlore: no 23:01:22 :P 23:01:30 oklopol: i'm sorry please look at my example 23:01:33 "foodle"->"bar","foo" 23:01:36 ("foodle"->a)->something 23:02:02 i'm looking, i guess you just couldn't use as data the functions that use ",". 23:02:33 err 23:02:35 there's no distinction 23:02:41 it's tree rewriting 23:02:44 not data-and-function-calls 23:02:45 asdf. 23:02:52 it's called abstraction 23:03:03 anyway 23:03:04 faxlore: suggest! 23:03:09 I tried! 23:03:10 oklopol: but it's against CRTL philosophy 23:03:26 you can't match on something that isn't data, is the definition of not being data 23:03:29 faxlore: but "ABC" is strings :P 23:03:42 [a !b c] 23:03:46 for `(a ,b c) 23:03:55 faxlore: naw, it mus thave parens somewhere 23:03:56 aww 23:04:02 I just liked ((a b c)) in lisp 1.5 23:04:09 I don't like that :S 23:04:15 but it's lisp 1.5 23:04:16 what is () being applied to? 23:04:17 it's fun and cazy 23:04:20 and nothing! 23:04:23 its special syntax! 23:04:28 :D 23:04:31 * faxlore screams 23:04:43 old lisp was FUNNNNNNN for example did you know 23:04:46 that each REPL prompt 23:04:53 started with an alice in wonderland quote 23:04:58 then had a text-only, no-symbols prompt 23:05:03 then it didn't even read s-expressions 23:05:03 awww that's cool 23:05:05 you did: 23:05:07 FUNC arg arg arg 23:05:21 to define the identity function you did 23:05:31 DEFINE ID ((LAMBDA (X) X)) 23:05:37 to evaluate an s-expression you did 23:05:37 EVAL ((...)) 23:05:44 then you hit enter 23:05:46 got another blank line 23:05:49 the lewis carroll quote 23:05:54 and the text-only prompt again 23:06:05 cool :O 23:06:08 truly, an example of interface design! 23:06:17 well, it's different 23:06:22 anyway, I must be off 23:06:27 ciao all! 23:06:29 -!- timotiis has quit ("leaving"). 23:06:39 i just want a Lisp 1.5 for a modern machine 23:06:40 :( 23:09:11 -!- CakeProphet_ has joined. 23:09:12 faxlore: don't you?!?!1!!!111 23:09:38 I want a lisp 9999999999999999999999999999999999999999999+1 23:09:44 no 23:10:04 I want LISP 1.5 for Modern x86 Architechtures, `libc' Version 23:11:30 faxlore: RETROLISP might be just as good, though 23:12:02 I think so! 23:12:04 mabe better 23:12:11 It must have lewis carrol quotes built in 23:12:24 yes, once every... i don't know, every hour or something 23:14:53 how about every call to apply?:D 23:16:00 haha 23:16:01 no. 23:17:00 faxlore: what about wariness to use symbols! 23:17:08 PLUS instead of + being used in all example code 23:17:09 etc 23:17:49 -!- CakeProphet has quit (Nick collision from services.). 23:17:55 -!- CakeProphet_ has changed nick to CakeProphet. 23:18:52 ...I still haven't made Sophia. 23:19:09 my masterpiece-language-to-end-all-languages. 23:19:47 example code? 23:19:54 2 + 2 23:19:56 faxlore: see the prompts! http://b54.net/lisp15 23:19:57 ... 23:20:00 CakeProphet: more example code. 23:20:52 #x = 2 + 2 23:20:54 ... 23:22:02 i love it already 23:22:37 it's smalltalk-esque. Think methods. 23:22:46 I'm still working on... how it... determines order of operation. 23:22:56 I don't want gajillions of parenthesis. 23:22:59 but I kinda do. 23:25:16 the other problem is how it determines the end of a statement... or if it has a statement concept at all. 23:25:58 ...nitpicky things. 23:26:00 CakeProphet: left-to-right 23:26:03 or right-to-left 23:26:06 pick one, i like right-to-left 23:26:16 end of statement: "abc. def." 23:26:18 so . 23:26:20 or, newline 23:26:28 I was thinking of newlines. 23:26:37 like Python. Newlines unless there's an unclosed paren. 23:26:47 how about just . 23:26:47 or , 23:26:50 Yes, like this: 23:26:55 message: 23:26:55 a, 23:26:55 ...too lazy. 23:26:57 b, 23:26:58 c. 23:27:00 I prefer newlines. 23:27:03 ... 23:27:22 Fibonacci would be like... 23:27:54 ...I'm trying to do it in one expression for awesome effect. 23:28:44 Integer$fib: self < 2 if: {<- self.} else: {<- ((self - 1) fib) + ((self - 2) fib).}. 23:29:15 String$sayWith:other: self say, other say. 23:31:03 (#n = 0) print inc print 23:31:24 (#n = (n - 1) + (n - 2)) print 23:31:33 er 23:31:33 (#n = (n - 1) + (n - 2)) print 23:31:33 sedjfuihjrd 23:31:46 ((#n = (n - 1) + (n - 2)) print) while True 23:32:01 haha 23:32:33 if the mad scientist in me can pull off an implementation 23:33:08 it's going to be like... smalltalk mixed with lisp mixed with Python aesthetics mixed with some strange functional language. 23:33:57 redundancy 23:33:58 'lisp' 23:34:01 'some strange functional language' 23:34:23 faxlore: SETQ returns a variable reference 23:34:33 (INCF (SETQ A 2)) ; A = 3 23:34:34 ...and some bits of perl that I like. 23:34:43 :S 23:34:47 that makes no sense lol 23:34:51 faxlore: yeah it does 23:35:02 INCF takes either a NAME, or a VAR-REF 23:35:07 it returns a VAR-REF. 23:35:10 SETQ is the same 23:35:36 (SETQ A 2) ; ==> #{VARIABLE REF 'A'} 23:35:50 (INCF (SETQ A 2)) ; ==> #{VARIABLE REF 'A'} 23:36:02 (SETQ (INCF (SETQ A 2)) "FOO") ; ==> #{VARIABLE REF 'A'}, and A = "FOO" 23:36:06 (INCF (INCF (INCF (INCF A)))) 23:36:10 yep 23:36:15 hehehe 23:36:33 (REF (QUOTE A)) ; ==> #{VARIABLE REF 'A'} 23:36:36 CakeProphet: the fib looks interesting, can you give definite semantics? 23:36:43 (INCF (SETF (CDR (CONS 0 0)) 7)) ? 23:36:43 just for what you have there. 23:36:43 (SETQ (REF (QUOTE A)) 5) ; A = 5 23:36:52 faxlore: SETF is too modern. Doesn't exist! 23:36:55 oklopol, ...yes. But they're messy. I'd like it to be cleaner but with the same look and feel. 23:37:05 however 23:37:30 (REPLACD (CONS 0 0) 7) ; ==> #{CONS REF} 23:37:35 (INCF (REPLACD (CONS 0 0) 7)) ; ==> #{CONS REF} 23:37:56 actually the second line would need to be 23:38:16 ((#n = ((n - 1) + (n - 2))) print) while True 23:38:16 ) 23:38:37 but at that point 23:38:37 I've clearly lost my mind. 23:39:28 CakeProphet: support #a: 2 23:39:30 to be #a = 2 23:39:46 how? give everything a ":colon:" message. 23:39:46 :D 23:40:10 #a blah: 2, when blah on #a is not a message, is #a blah :colon: 2 23:40:11 :D 23:40:20 if you're familiar at all with smalltalk... you'll get the method calling part of the syntax. The difference here is the lack of colons and the use of only binary and unary methods. 23:42:05 and it's all lazy. Every parenthetical expression is frozen in an internal "block" object with its own methods 23:42:25 which explains why I can just put "while True" at the end of any expression and magically... make it go on forever. 23:43:13 kind of like haskell. 23:43:26 sometime i want to make alanguage like haskell, but 'minimized' 23:43:46 you get funky type definitions, monads, pattern matching, laziness, etc., but just 'dumbed down' a bit 23:43:48 for learning about stuff 23:44:00 main : io nil 23:44:12 main = printNL "hello, world" 23:45:25 -!- CakeProphet_ has joined. 23:45:32 .... 23:45:33 did I miss anything? 23:45:36 yes 23:45:40 did I miss anything? 23:45:43 23:43:23 sometime i want to make alanguage like haskell, but 'minimized' 23:45:43 23:43:43 you get funky type definitions, monads, pattern matching, laziness, etc., but just 'dumbed down' a bit 23:45:43 23:43:45 for learning about stuff 23:45:43 23:43:57 main : io nil 23:45:43 23:44:08 main = printNL "hello, world" 23:45:54 what was the last thing I said? 23:46:27 23:42:22 which explains why I can just put "while True" at the end of any expression and magically... make it go on forever. 23:46:31 ehird`: What I'd really like is a good solid mixfix parser 23:46:39 ehird`: Then hook up various lambda calculus to it 23:46:51 :) 23:47:05 so in #x = (2 + 2) 23:47:11 I was going to use the Agda2 one.. but I don't think I can extract it without the whole thing falling to peices 23:47:35 the (2 + 2) isn't evaluated... its saved as a function/block/unevaluated-dohicky/whatever. 23:47:48 #x means "the symbol x"... as opposed to what x represents. 23:48:16 so (2 + 2) never gets evaluated until you send it a message. 23:48:21 CakeProphet_: the term is 'thunk' 23:49:08 -!- immibis has left (?). 23:49:23 -!- sebbu has quit ("@+"). 23:49:43 it's basically a weird attempt to combine smalltalk logic and haskell laziness seamlessly. 23:53:20 so! we have APL-alikes, haskell-alikes and smalltalk-alikes 23:53:24 anyone else? 23:53:35 APL? 23:53:46 I missed any APL alikes 23:55:48 i have a few erlang-like 23:55:49 oklotalk 23:55:49 *s 23:55:53 and a few prolog-likes 23:55:54 and ehirdtalk 23:56:09 where ehirdtalk is infinitely superior. 23:56:12 :) 23:58:03 shouldn't it be etalk if mine is oklotalk? 23:58:24 your real name is elliott hird, mine is oklofoan polakir 23:58:25 no, because mine has /more/ than oklotalk 23:58:29 oh, right 23:58:32 xD 23:58:38 and stop being stalkerish to the point of spelling my first name right 23:58:38 :P 23:58:51 can it be written wrong? 23:59:07 yes 23:59:09 elliot 23:59:11 eliott 23:59:12 eliot 23:59:18 first most common 23:59:20 second middle 23:59:21 last least 23:59:26 i have been called all 3 23:59:39 i have met one person with the exact same name as me 23:59:55 -!- CakeProphet__ has joined. 23:59:58 and no more 23:59:58 :P