00:12:45 -!- Asztal has quit (Read error: 113 (No route to host)). 00:13:05 -!- Asztal has joined. 00:18:31 -!- jix__ has changed nick to jix. 00:24:35 -!- tgwizard has quit (Remote closed the connection). 00:59:06 -!- Asztal has quit (Read error: 113 (No route to host)). 00:59:45 -!- Asztal has joined. 01:21:54 -!- digital_me has joined. 02:00:24 -!- RodgerTheGreat_ has changed nick to RodgerTheGreat. 02:05:39 -!- Sandman has joined. 02:06:28 Hello, world 02:06:52 Enter, Sandman 02:07:06 99 bottles of beer on the wall. 02:07:22 Please write "Hello, world" _before_ I make this request. 02:07:23 hmmm... 02:07:37 I should make a language based on coroutines. 02:07:47 and... somehow mix it into my genetic language idea. 02:07:51 Sandman entered 02:08:01 coroutine? 02:08:04 Thank you. 02:08:07 Yeah... 02:08:34 a subroutine takes input, executes, and returns an output to its caller. 02:08:58 ... 02:09:33 a coroutine takes in input, executes, returns a value, halts execution, awaits more input, continues execution until it returns a new value, repeat. 02:09:47 a glorified generator. 02:09:56 oh 02:10:28 you can use them to do psuedothreads nicely. 02:10:36 since they can halt their execution. 02:10:49 and take in more input when they continue. 02:11:27 You could actually use a coroutine to simulate an infinite list. 02:11:33 -!- Administrator has joined. 02:11:42 -!- Administrator has changed nick to kilovh. 02:11:53 hi 02:12:12 Please, write the 99 bottles lyrics 02:12:16 -!- kilovh has quit (Client Quit). 02:12:32 99 nine bottles of beer on the wall 02:12:36 98 nine bottles of beer on the wall 02:12:40 97 nine bottles of beer on the wall 02:12:43 96 nine bottles of beer on the wall 02:12:58 a lazy evaluator like me won't do that if the programmer isn't looking 02:13:16 99...0 bottles of beer on the wall 02:13:57 0 bottles of beer on the wall, 0 bottles of beer, go to the store, pick up some more, 99 bottles of beer on the wall 02:14:09 i don't like beer 02:14:14 me neither 02:14:24 seems like just decrementing would be easier 02:14:30 so 99 bottles of beer on the wall... (2 hours later) still 99 bottles of beer on the wall 02:14:35 lol 02:14:38 99 bottles of beer go to the store and pick upp 99 bottles, 99*99 bottles of beer on the wall 02:15:03 that's picking up way more than 99 bottles 02:16:00 oh sorry it should have been: 99 bottles of beer go to the store and pick upp 99 bottles each, 99*99 bottles of beer on the wall 02:16:54 Sandman: Join #irp; we need programmers. 02:17:03 what I've always wondered about the song is: "why do they store all the beer on a *wall*? Wouldn't a box, refrigerator, or at least shelf prove a more efficient storage medium?" 02:18:36 Yeah me too...walls ive tried storing bottles of beer on the wall, and guess what? They fell to the floor 02:19:59 You could glue them to the wall, but it'd make it tricky to take them down again 02:20:27 Cleverly arranged nails, perhaps. 02:20:37 I imagine something like a workbench tool rack, with beer bottle-sized loops 02:21:00 I once heard something about some shelve thingy. dont really know what thats all about 02:33:12 -!- Asztal has quit (Read error: 113 (No route to host)). 02:37:04 -!- Sandman has quit ("Merry christmas to ya all out there!"). 02:39:56 hmmm... I kind of regret that = become the most popular way to assign variables. 02:40:17 why? 02:40:47 a<-b :DD 02:40:57 eeew 02:41:10 There is of course the broken BF version. 02:41:18 one of the most common confusions by new programmers is the distinction between variabe assignment and mathematical equality... most likely because = (the symbol for mathematic equality) is used for it... 02:41:33 CakeProphet: The symbol used doesn't matter 02:41:35 and they look superficial similar at first glance (VERY first glance :D ) 02:41:41 it does when you're starting out. 02:41:45 not later. 02:41:50 0 bottles of bear on the wall, 0 bottles of beer. Take one down, pass it around, 255 bottles of beer on the wall! 02:41:52 once you know the symbol means nothing :P 02:41:55 If someone can't wrap their head around that, they aren't very smart 02:42:28 I myself do not really care how hard it is for newbies to start programming :\ 02:42:30 Pretty much everyone makes the leap... I just wonder why it's nessicary to put the cliff there. :P 02:42:37 * CakeProphet does. 02:42:48 C is a bitch... 02:42:57 to start out on. 02:43:03 you can do a:=b 02:43:06 C is fun 02:43:16 -!- jix has quit ("Bitte waehlen Sie eine Beerdigungnachricht"). 02:43:17 if programming is a bitch... programming looks painful and boring. 02:43:22 if it's easy... it looks fun. 02:43:41 It -is- fun... but only if you know what you're doing. 02:43:47 i use c++ almost exclusively 02:43:53 oklopol: ewwww 02:43:56 :D 02:44:01 CakeProphet: As with anything 02:44:28 So I think it's best to start with something that's easy to learn... so programming starts out fun. 02:45:07 if it's easy to learn it's not going to be worth using 02:45:38 Not true. ;) 02:45:50 If it's easy to learn... that means it's more intuitively worth using. 02:46:08 or... it could mean it's not worth using. 02:46:20 but... let's be optimistic and go with the first option. 02:46:25 :D 02:46:30 I started with basic, was a bitch changing to C++ since i couldn't understand the distinction between = and ==, i though "How can I know which kind of equality this is?". 02:47:59 yeah... things like that are bad.. 02:48:43 pssh 02:49:15 You should start from the top and work your way down... not stay at the top and keep the bottom hidden (ir works nicely for abstraction, but not for learning) 02:49:32 * pikhq went Basic -> Javascript -> rm -rf basic -> Tcl -> shell -> C -> C++ -> way, way too many esolangs. 02:49:34 tho i was kinda small, didn't really understand what was happening there, prolly properly taught a basic programmer would've understood the difference even tho the same symbon is used :) 02:51:19 * oklopol wants to list too: Basic -> C++ -> python -> C++ -> Brainfuck -> Java -> C++ -> Haskell -> C++ 02:51:26 Python -> Scheme -> Python -> C (for a second) -> esolangs yay 02:51:38 esolangs all the way 02:51:44 I should really get to know a lot of other languages better... rather than just skimming over them. 02:51:58 shall we see... 02:52:07 C makes my stomach churn... so not going there. 02:52:29 Perl and Lisp (definetely Lisp) look cool... 02:52:35 Smalltalk? 02:53:33 i don't know perl, lisp, pascal, cobol, intercal or smalltalk, i hate it when i know the name but not the language 02:53:35 :\ 02:53:41 I've gotten to the point where I can at least do a minor amount of fiddling around in the vast majority of languages (with the help of Google). 02:53:59 I'm more familiar with Scheme than I am Lisp. 02:54:05 but... they're not that different anyways. 02:54:08 Scheme is a Lisp. 02:54:12 yeah. 02:54:19 By "lisp" I mean Common Lisp. 02:54:24 Ah. 02:54:25 Basic -> Turbo Pascal -> Modula -> LPC -> C -> Perl -> Ocaml -> Haskell and a bunch that i just read about 02:54:45 or used even less than the ones mentioned 02:54:48 It's comparable to the difference between C and C++. 02:55:16 I like that Scheme uses a single define function :D 02:56:25 LPC... hmmm... a language used to create MUDs... 02:56:36 sounds like something I would enjoy... but probably not. 02:56:40 oklopol: it is usually not considered a disadvantage not to know cobol. :) 02:56:44 * CakeProphet is making a MUD in Python that uses freaky meta-programming stuff. 02:57:24 Perl is a little weird... it has a lot of obvious disavantages, but I like the philosophy behind it. 02:57:37 oklopol: The use of COBOL cripples the mind, therefore, it's teaching should be considered criminal. 02:58:01 i wanna learn it :( 02:58:12 Learn ORK. 02:58:19 You are supposed to change your nick to dijkstra when you say that :) 02:58:36 Rather, 02:58:39 MNGGFOCOBOLGSO1GAORKGR 02:58:44 oerjan: Yeah, yeah, yeah 02:59:12 i'll learn ork once i see a complete reference for it 02:59:17 or a tutorial 02:59:28 Hit the Esolangs wiki. 02:59:43 And realise that code is a bunch of English sentences. 03:00:17 i thought there was just a few examples 03:00:27 pikhq, i've seen ork code 03:00:48 It's not that hard. . . 03:00:55 When the program starts: 03:01:00 the wiki doesn't describe the builtin classes very well, i guess. 03:01:06 There is a scribe named Hi. 03:01:14 Hi is to write "Hello, world!\n." 03:01:19 http://esoteric.voxelperfect.net/files/ork/doc/README 03:02:02 i've made a lot of english based langs while planning on a project etc but never made an interpreter for any since they often grow quite complex 03:02:27 short jumbled-up-series-of-characters languages are starting to grow on me. 03:02:34 as are overly verbose ORK-ish languages. 03:02:48 It's compiled into C++. 03:02:59 Yeah. 03:03:12 So what? 03:04:41 Just saying. 03:05:39 :P Most languages go to assembly at some point... doesn't mean I'd enjoy coding in assembly very much. :P 03:06:12 I like assembly :) 03:06:29 * CakeProphet has never actually seen assembly code before. 03:06:48 I wonder what CPython looks like... 03:06:52 * CakeProphet goes and checks. 03:07:15 * pikhq doesn't do any assembly. . . 03:07:38 Although I do tons of equally crazy stuff. ;) 03:08:13 I can see where ORK sometimes looks like obvious syntatic sugar over C++... but it's strangely different in a way that I like. :D 03:08:45 It's syntactic sugar over C++ and some libraries, in some ways. 03:09:24 I don't consider syntatic sugar a bad thing though. 03:09:39 Everything is just syntax sugar for some super low-level operation anyways. 03:11:05 i don't like asciiWrite 03:11:06 :\ 03:11:12 oklopol: Why not? 03:11:16 so poetic otherwise 03:12:03 yeah... I don't like readOne :D 03:12:13 why not just read one? 03:13:07 The whole function-names-blending-into-the-syntax is the coolest part.... so seeing readOne is just kind of annoying. :P 03:13:14 yeah, ORK should try to avoid anything that looks like programming imo 03:13:18 actually 03:13:19 Functions with a space in the name produce some vagueness in parsing. 03:13:25 exactly what CakeProphet said 03:13:37 ORK doesn't support multi-word function names :( 03:13:49 make it support :) then i love it 03:13:51 Due to the parsing difficultimpossibility. 03:13:54 lisp does! 03:14:05 The problem is this: 03:14:10 is to 03:14:24 If both functions and variables can have spaces, it's very difficult to parse. 03:14:31 yeah, but you can avoid that if you know it 03:14:35 oh 03:14:51 you could demand an article between and . 03:14:52 In lisp symbol names can be anything 03:14:55 And impossible if one has two function/variable combinations that match. 03:15:08 oerjan: Yeah, but then it doesn't read well X_X 03:15:13 pikhq: A-yup :( 03:15:17 but the compiler could give an error if names can collide 03:15:19 It's the one corner of ORK that bugs me 8-X 03:15:28 oklopol: And then what? There's still no solution ;P 03:15:34 hmmm... Python has a just-in-time compiler implementation... neato. 03:15:45 GregorR, why? 03:15:49 it is a solution 03:15:52 it can read well if the variables are nouns 03:16:38 common nouns i mean 03:16:51 it would still parse fine... 03:16:53 if there are say 5 words in the bit that has and , it checks all possibilities (4 of them) and does the right one 03:17:22 oklopol: But if there are conflicts, there would then be no way to right it. 03:17:34 an error 03:17:40 compile-time error 03:17:53 if there are 2 that apply 03:18:06 hmmm... 03:18:21 now wait. proper nouns can be detected because they are capitalized. 03:18:50 Perhaps a rewrite of the sentence's grammer? 03:19:05 so a variable would be either 'the' , 'a' or a capitalized proper noun. 03:19:22 oerjan: That's a good point ... 03:19:41 i mean, if a thing has functions "a b c" and "a b" and vars called "c d e" "d e", it would give an error, very easy to check for each class 03:19:42 Doggie Samuels is to be or not to be that is the question when there is the functions "to be" "be or not" 03:20:15 hmmm... if it finds the variable first... it can clip off the variable name and know -exactly- what function to look for. 03:20:20 but... 03:20:24 oklopol: Giving an error isn't a solution, it just leaves the coder with no way to call that particular selection :P 03:20:27 there's something wrong with that. 03:20:53 GregorR, you still have the old way of naming if you MUST have colliding names 03:21:03 True *shrugs* 03:21:16 and, it can support the ucase thing too 03:21:36 so in that example... the parse would find the variable "to be that is the question"... and could conclude that "to be or not" is the only function. 03:21:37 if collision, check for uppercase and solve that way 03:21:56 but... there could be ambigious -between- multiple functions and variables... which is where you would have problems. 03:22:42 as i said, then check if there are uppercase beginnings in words that indicate change of noun, if not, tell the programmer his names are colliding 03:22:57 and please supply me with a better word that collision... 03:23:00 :) 03:23:14 might be fine tho 03:23:14 yeah... the chance of colliding names is rare enough that it could simply complain to the programmer about it. 03:23:44 and then have OPTIONAL syntax to explicitly mark the beginning of the parameter... should a name collision occur. 03:23:54 :D 03:24:13 yep, just harder to make a compiler, but not much 03:24:26 I would interpreter it myself... 03:24:32 er.. interpret 03:24:38 i'll do it if GregorR won't 03:24:46 THAT'LL show him 03:25:04 It's line-by-line statements that each do one thing... so it can't be that harder than a compiler. 03:25:41 it actually sounds easier than convert all of it to C. 03:25:46 (++) 03:26:58 both simple, i just meant the pattern-matching for the var- and cuntnames 03:27:01 -_________- 03:27:03 funcnames 03:27:07 but yeah... the chance of there being a bunch of name overlaps that ORK couldn't possibly figure out is so rare that it can just be solved by optional syntax to split up the two. 03:27:09 hahahahaha 03:27:14 :D 03:27:47 or, it can be guaranteed to be lazy 03:28:08 yeah, de-ambiguity rules is the other route. 03:28:08 i mean, shortest possible func for example 03:28:10 and the rest as a var 03:28:22 stating what the interpreter will do during ambiguity... 03:28:24 oklopol: I would, but since you volunteered, feel free :P 03:28:26 I like the optional syntax route myself. 03:28:59 GregorR, depends on whether i go to sleep still 03:29:00 it would be the Perl way to go about it. :D 03:29:21 well no... hueristical evaluation is also in Perl's domain. 03:30:08 must the built-in classes be named like that? i mean, inputter is too programmingish imo, ork shouldn't sound like that 03:30:33 there could just e a single read/write class called scribe. 03:30:40 or typist... or any other nifty name you want. 03:30:57 * CakeProphet writes an ORK interpreter for Python. 03:32:26 maybe with static typing removed :P 03:32:32 but it kinda adds a nice touch to the syntax. 03:32:41 so I'll probably keep it. 03:33:30 hmm... what's the delimiter for statements... periods or newlines (or both?) 03:34:06 Both, I believe. 03:34:50 aaand... # is comment I'm guessing? Like Python comments? 03:35:01 yeah. 03:35:32 oklopol: inputter is a temporary name. . . Like, Gregor doesn't know of a better name for it. 03:35:39 oooh... I like the separation of function and class... 03:35:45 you can mix and match classes to functions. 03:36:47 oh wait... 03:37:03 no they're connected right? ...to prevent scoping ambiguity. 03:37:29 Only newline is a delimiter. 03:37:30 # is a comment in ork? 03:37:32 Periods are just fluff. 03:37:46 # is a comment, yes :P 03:37:51 (Perhaps this should be a comment) 03:38:03 yeah... I like that :D 03:38:11 you could use it for inline comments. 03:38:26 Like asides to the actual program. 03:38:29 This is an object for expressing BigNums, but that is ignored. 03:38:37 ^^^^ comment 03:38:53 () is good too 03:39:04 This is an object for expression BigNum, but nobody cares. (reference to an uncyclopedia inside joke) 03:39:16 thought about that too 03:39:29 i mean 03:39:35 not that exact string of course :) 03:39:42 http://uncyclopedia.org/wiki/Nobody_cares 03:39:49 I like () though. 03:40:44 I think "backwards if" statements look a little more englishy. 03:41:23 Bob is to eat a sandwhich, if my kitchen is not exploded. 03:41:49 I thought i heard someone here say today that they hated such statements. :) 03:42:14 I use them quite a bit... since it's how Python does conditional expressions 03:42:31 x = (True if MyConditional() else False) 03:42:39 so I'm just used to them. :D 03:43:42 When looper is to loop a number: 03:43:43 There is a mathematician called Fibonacci. 03:43:43 I have a number called current. 03:43:43 Fibonacci's first operand is the number. 03:43:43 Fibonacci's second operand is 1. 03:43:43 Fibonacci is to subtract. 03:43:44 current is Fibonacci's result. 03:43:46 Fibonacci's first operand is Fibonacci's result. 03:43:48 Looks like [set x [expr {1 ? [myConditional] : 0}]] 03:43:48 Fibonacci's second operand is 0. 03:43:50 Fibonacci is to compare. 03:43:52 If Fibonacci says it's greater then I am to loop. 03:43:54 whoops 03:43:56 long paste :) 03:44:05 Or: 03:44:14 Err. 03:44:22 well, anyways, "I have a number called current." means int ¤t = number; ? because otherwise number wouldn't change 03:44:31 That's [expr {[myConditional] ? 1 : 0]}] XD 03:45:07 I think it means "number ¤t;". 03:45:15 Err. 03:45:15 :O 03:45:18 "number current;" 03:45:20 i don't 03:45:27 eh 03:45:30 in c++? 03:45:31 I don't like C's conditional expressions :P 03:45:39 Nah, it's "double current;". 03:45:59 (thought that Gregor had number as a seperate class, which he doesn't.) 03:46:03 * CakeProphet needs to figure out all the possible statements in ORK to do a proper implementation of it. 03:46:05 okay, then this is an infinite loop, right? 03:46:22 we don't have to choose. we could make it alternating current. 03:46:49 * CakeProphet implements a form of coroutine in his ORK :D 03:47:12 right? 03:47:15 Right. 03:47:16 isn't it? 03:47:29 This would loop from the value you gave it down to 0. You would of course want to add some sort of 03:47:30 functionality there, too. 03:47:33 so it's wrong? 03:49:03 It's an infinite Fibo loop. 03:49:27 Err. 03:49:29 Never mind. 03:49:44 I'm stupid. 04:01:47 -!- anonfunc has joined. 04:11:08 GregorR, you'll prolly make it faster, i've only done some basic classes 04:11:30 if you have the old code, i mean, it won't take long prolly :) 04:12:59 haha made a regexp parser last night and got to use it right away :) 04:20:05 * CakeProphet is just now definining the new number class for ORK numbers. 04:20:34 -!- oerjan has quit ("Good night."). 04:20:37 it would basically be a floating point with an overriden __str__ class... so it doesn't print the a trailing .0 like Python does. 04:26:00 hm. I just had a thought- can anyone think of a way to calculate the length of an optimal BF program that generates a constant, without actually creating he program? 04:28:59 i've made the calculations i think 04:29:05 i'll check if i finished 04:31:20 the problem with creating a compiler to Def-BF is the absolute addresses- if you don't use a constant-generation command (?), you have to generate values in-place. This means that making constants changes code length, requiring a change in what the resulting values should be. The only way I can see to get around this would be making use of a lookup table as on the BF-constants page. 04:31:27 it's a really inelegant approach 04:31:53 yeah, i've researched it a bit, but can't find the fucking file :( 04:32:48 you can brute force the most optimal way to create a number quite easily 04:33:50 1 levels, takes: N 04:33:51 2 levels, takes: Abase+A+B+7, where N=Abase+B*A 04:33:51 3 levels, takes: Abase+Bbase+A+B+C+14, where N=Abase+(Bbase+C*B)*A 04:34:06 levels is the amount of memory slots you are willing to use 04:34:22 hm. interresting 04:34:41 i've not come up with a clever algoritm to produce good bases for 3 levels, but you don't need it often 04:34:52 hmm levels, good name :) 04:36:20 if you use one memory slot for help, you the smallest possible "Abase+A+B+7" where a*b+abase = your number 04:37:19 and constructed of course A times + [ > B times + < - ] > abase 04:37:33 yeah 04:38:01 the amount of auxiliary symbols is (memory slots used)*7 04:38:13 if you want the result in your starting slot 04:38:28 what about programs of the form A+ [>B+<-]>C+/- ? 04:38:45 abase can be negative 04:38:53 actually 04:39:03 abs(Abase)+A+B+7 04:39:06 like that 04:39:52 ah- I see 04:39:55 but, seems i didn't make it thro to the end 04:39:56 sorry 04:40:03 i don't have an algorithm :) 04:42:04 hmm take the squareroot of the number and make a and b that, or if not an integer, asqrt 04:42:22 abase will be balance it out 04:42:32 that is the best algorithm i think, actually 04:43:33 with three levels, taking the cuberoot and brute forcing different values for abase and bbase while changing a, b and c near the cuberoot might do the trick 04:45:38 hm 04:45:47 for numbers smaller than 256 you don't get much profit from 3 levels 04:45:56 well, that's a lot of help 04:46:03 hopefully 04:46:10 in most cases, we'll be dealing with relatively large numbers 04:46:21 okay 04:46:28 you can take the easy way out of course 04:46:31 the Def-BF standard pretty much requires 32-bit cells 04:46:38 which is? 04:46:38 just split the numbers in 4 pieces 04:46:49 with num>>8 04:47:01 hm 04:47:04 octet by octet 04:47:17 then just merge them by multiplying with 256 04:47:18 actually 04:47:28 much worse 04:47:35 yeah- then it just becomes a problem of generating the components, which could feasibly be done via lookup... 04:47:39 since the 256 takes 36 symbols again 04:48:06 +++>>++++++[-<++++++>]<[-<+++++++>]< is the smallest 256 i think 04:49:15 it has abase=3, bbase=0, c=6, b=6, a=7 3+(0+6*6)*7 04:49:32 3+(0+6*6)*7 was just to help me think 04:49:34 :) 04:49:39 the smallest non-wrapping level 3 is one of four variants that are 32 commands 04:50:04 wait, three variants 04:50:31 huh? 04:50:43 one of what variants? 04:50:50 >>++++++++[-<[-<++>]<+[->+<]>>]< (32, 3) non-wrapping 04:50:50 >+>+++++++[-<[-<++>]<+[->+<]>>]< (32, 3) non-wrapping 04:50:51 >>++++[-<[-<++++>]<+++[->+<]>>]< (32, 3) non-wrapping 04:50:57 yes 04:51:02 i forgot to mention that 04:51:35 all that matters about the small differences in the final length is where you end 04:52:05 otherwise you have many strategies to position abase, bbase etc 04:52:24 luckily, Def-BF makes memory use in programs a little less vital than most BF-derivatives, so we don't have to do something messy like hard-allocate 3 cells per constant 04:53:46 you do realize that even if using 4 levels allows a 32-bit number to be expressed in <60 symbols, it still takes 2^32 cycles to create? :) 04:55:10 yeah 04:55:57 we're assuming for now that either the machine is fast enough for anything we want or that the BF-ASM compiler is infinitely deep in it's analysis and optimization of code 04:56:40 ++++[>++++<-]>[>++<-]> (32, 2) 04:57:06 i have all loops separate in the system 04:57:59 i'll do the complete algorithm to find the optimal way for that someday unless i see it somewhere else 04:58:06 i'll continue the ork now 04:58:41 176 "smth had to be truncated to 256 characters for debug information" warnings 04:58:47 so far so good :D 04:59:43 haha 05:01:56 can i see an ork program to check the final syntax? :D 05:03:06 if there are accidental infinite loops in a tutorial, i'd like to check i working program to be sure 05:03:15 *a working 05:04:16 sleep retry -> 05:05:08 http://esoteric.voxelperfect.net/files/ork/src/orkfuck.ork 05:06:06 Woooh, ORKFuck! 05:06:37 GregorR, hmmm... do you have some sort of docs on the exact specs of ORK? 05:06:45 Ha! It is to laugh! 05:06:57 I'm too lazy to crack open the source and read it with my shoddy C++ literacy. 05:07:17 I do, but the site it's all on is apparently down >_> 05:07:43 There is such a thing as a brainfuck interpreter. 05:07:45 A brainfuck interpreter can instanciate. 05:07:45 A brainfuck interpreter can subinstanciateData a number. 05:07:45 A brainfuck interpreter can subinstanciateProgram a number. 05:08:03 put the "There is... " line beneath the others? 05:08:39 and, could i declare "A brainfuck interpreter can instanciate." in say, the main 05:08:56 No and no. 05:08:57 'night, everyone. I should be on again late tomorrow. 05:09:01 i'm making an interpreter now, tho it's a trivial conversion if needed 05:09:05 good 05:09:17 Bye RodgerTheGreat 05:09:27 Bye 05:09:39 -!- RodgerTheGreat has quit. 05:10:16 godfuck... who wrote the bfork? 05:10:43 orkfuck i mean 05:10:56 <-- 05:12:12 haha you're sick 05:12:27 or did you just do an evil conversion? 05:15:23 I wrote it from the top. 05:15:30 I don't recall anything about it *shrugs* 05:16:58 hmm... the comments in the source should be enough to get all the possible syntax. 05:17:07 unless you randomly don't-comment-certain-parts 05:17:13 my C-reading skills are lacking. 05:36:00 oklopol: Allow me to give you a much shorter version of 255. 05:36:06 - (1, 1) wrapping 05:38:01 true, i meant non-wrapping since i assumed bignum 05:38:50 * pikhq is generally used to having wrapping, since chars, well, wrap. 05:39:01 and secondly, i'm lying, i recalled wrapping much after i'd said said my thing 05:39:16 HEheh. 05:42:33 hmmm... are function definitions independent of class declarations? 05:42:44 in ork? 05:42:46 or are they "within" the last defined function. 05:42:48 yeah. 05:42:55 er... last defined class 05:43:05 See the C++ code. ;) 05:43:25 they are in the class that is mentioned in the "When a ... is to ..." 05:43:29 the first ... 05:43:42 ooooh. 05:43:46 duh :P 05:44:09 pikhq, See makes my eyes hurt when I try to understand it. 05:44:20 but the comments are useful. 05:53:03 -!- digital_me has quit (Read error: 54 (Connection reset by peer)). 06:28:00 GregorR, haha... you could introduce metaclasses into ORK 06:28:13 "thing" being the default metaclass :D 06:28:17 lol 06:28:26 There is such a as a 06:28:47 + 06:28:49 There is such a mammal as a dog. 06:29:05 Wheee. . . 06:29:13 There is such a thing as a , which is a type of 06:29:31 I prefer Cake's idea. . . 06:29:40 But whatever. 06:29:40 Yeah :D 06:30:43 There is such a thing as a thing 06:30:47 O.o 06:31:01 No clue how metaclasses would work in ORK though. 06:31:38 * CakeProphet sometimes wishes there was a simpler version of regex that used that kind of syntax 06:31:49 This is a that likes to 06:32:06 ... I could... make it? 06:32:13 :D 06:32:25 * CakeProphet makes it. 06:37:58 * Sukoshi groans. 06:38:03 Ugggh. Metaclasses. 06:39:27 The future of OOP: An abstract framework of abstract metaclasses. 06:44:58 haha 06:45:03 metaclasses are magical :P 06:45:12 How are they magical? 06:45:17 Dunno... 06:45:22 they're not very useful for most things. 06:45:35 That about sums up all of theoretical OOP. 06:45:36 only a few specific things that need a little funky class-based magic. 06:45:52 OOP can at times be redundent... and it's a little weird. 06:46:04 but it makes things weirdly effective. 06:47:43 Sukoshi: The future of OOP: 06:48:04 There is an object which does everything I want. 06:48:58 The stdlib always has every object that does everything you want. 06:49:10 factory functions that produce classes are strangely powerful.... 06:49:21 And it's an abstraction ontop of 500 different layers. . . ;) 06:49:42 you can box a few generalized patterns about certain class designs into a single word. 06:52:44 You remind me of the wackiest abstraction I made/used. 06:53:34 Yes? 06:54:09 (that abstraction is?) 06:54:50 I wanted to generalize binary classes in a user-made package that had the same named slots but different names under one generic class so I could save myself the typing, so I made an alist with the keys as the symbols for the generic class names and what was assoc'd with the key was an anonymous function produced by a macro for the metaclass definition. This function then defined a new class according to another macro, and generated an 06:54:50 instance of it if desired. 06:59:54 That's almost like writing an OS to implement dc. 07:03:25 I wanted to save 40 lines of typing. 07:04:53 I did -- I did the thing in like 10 lines. 07:06:28 Still. 07:06:48 What? I saved my hand from OCD. 07:06:50 Errr... 07:06:52 RSI. 07:06:59 ;D 07:07:28 Ah the power of Lisp. 07:17:21 hmmm... 07:17:23 not surprisingly. 07:17:30 when you use regex to substitute things into regex. 07:17:32 problems arise. 07:18:03 I can't think why if you use your macros correctly. 07:18:12 Oh wait -- this is Python. 07:18:22 Yah. 07:18:31 * Sukoshi pities the stringent syntax. 07:18:46 eh... I must be used to it. 07:18:51 I find it very "lazy". 07:19:05 Haskell is lazier :P 07:19:08 No semicolons and braces and all that jazz. 07:19:28 C looks gawd-awful to type... but I guess you'd get used to all the symbols after a while. 07:19:42 It's easy to parse. 07:19:51 Plus, it makes for fun formatting tricks. 07:20:11 I, personally, abhor overreliance on whitespace. 07:20:32 meh... small rewards for the task of typing all that crap out. 07:20:44 Typing what out? 07:20:47 A semicolon? 07:20:57 semicolons and braces... not to mention it looks ugly. 07:21:07 A few hundred semicolons. 07:21:27 What if you were working on a very small resolution display, and indendation would look horrible? 07:21:50 -!- MM2 has joined. 07:21:56 ...I haven't thought about it much. 07:22:02 :P 07:22:13 Good argument though.. :P :P :P 07:22:45 Also, think about using regexps to go through Python code and change stuff around -- annoying. 07:23:22 It's like saying "You'd care more about how slow Python is if you were on a 1980s IBM" 07:23:55 More like "You'd care more about how slow Python is if you did anything system critical." 07:24:31 I remember some implementation of Python written in Python, with the very ambitious goal of becoming faster than C. :P 07:24:46 Don't think it'll happen anytime soon. 07:24:50 There's Jython, and that's scary. 07:24:56 PyPy 07:25:16 Python being compiled by Java. Whoo. 07:25:24 Yeah... 07:26:02 I've never encounted any slowness with Python so far... but I haven't really worried about it 07:26:56 Python is slow on my box. 07:27:00 At times. 07:27:07 My box is on the older side, so. 07:27:45 Take a look at the Computer Language Shootout results. 07:39:37 * CakeProphet doesn't trust benchmarks. 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 09:26:14 -!- anonfunc has quit. 09:52:12 whjoooo 10:25:58 -!- xpika has joined. 10:26:19 -!- xpika has left (?). 11:53:48 -!- tgwizard has joined. 13:19:30 -!- tgwizard has quit (Read error: 110 (Connection timed out)). 13:48:39 please tell me 8 first fibonacci numbers 14:27:39 -!- tgwizard has joined. 15:01:29 -!- jix has joined. 15:04:21 -!- Asztal has joined. 15:07:29 -!- Asztal has quit (Client Quit). 15:21:30 -!- oklopol has quit (Read error: 110 (Connection timed out)). 15:41:22 -!- oklopol has joined. 16:11:36 -!- oerjan has joined. 16:32:41 -!- CakeProphet has quit ("haaaaaaaaaa"). 16:55:36 -!- digital_me has joined. 17:15:06 -!- CakeProphet has joined. 17:21:55 -!- CakeProphet has quit (Read error: 104 (Connection reset by peer)). 17:35:49 -!- digital_me has quit (Read error: 104 (Connection reset by peer)). 17:41:00 -!- digital_me has joined. 17:57:00 -!- digital_me_ has joined. 18:04:10 * SimonRC goes ooh: http://www.coolopticalillusions.com/optical_illusions_pictures_3/candy_stripes.htm 18:06:05 cool 18:07:00 There seems to be a battle going on in the high-tech language world. 18:07:37 On one side, there is Lisp, with its ability to perform arbitrary transformations on program source code. 18:08:10 On another side, there is Haskell, with its power of manipulating actual programs and computations. 18:08:35 * oerjan is at the moment programming Brainfuck in Haskell 18:08:40 On a third side, there are the OO languages with high-powered reflection. 18:08:59 oerjan: define "programming Brainfuck in Haskell" 18:09:06 making an interpreter 18:09:18 On the fourth side, there are low-level languages saying "we can do it, too!" 18:09:28 -!- digital_me has quit (Read error: 110 (Connection timed out)). 18:10:10 I wanted to make a brainfuck interpreter that is completely customizable as to tape size, cell value sizes and wrapping. 18:10:28 LOOKIT ME I ARE USING THE VISITX0rZ-PATTEN LOLZ 18:10:37 oerjan: ooh 18:10:51 -!- digital_me has joined. 18:11:19 * digital_me goes oooh too 18:11:57 at my URL, not what oerjan said I hope 18:12:06 unless you forgot to turn your ESP off again 18:12:09 XP 18:13:07 Is bad for you. 18:13:21 * SimonRC is reading _Thud_ by PTerry. Very good book, especially page 290. 18:19:05 SimonRC: yes, lol 18:28:44 -!- digital_me_ has quit (Connection timed out). 18:40:59 -!- sebbu has joined. 18:41:47 -!- CakeProphet has joined. 18:59:38 CakeProphet: hi 19:07:15 -!- oerjan has quit ("leaving"). 19:16:21 mskeg 19:16:22 Hey. 19:18:40 * SimonRC wonders what MS Keg would be if it existed. 19:20:42 hmmm 20:07:42 * SimonRC has dinner 20:23:12 -!- RodgerTheGreat has joined. 20:23:29 howdy 20:55:29 aah 20:56:18 * CakeProphet is toying with new ideas on how to turn common parts of programming languages into unconvential data types. 20:56:39 Everything should be data... if it isn't, you can't manipulate it to its full potential. 20:58:05 So thinks like variable names, call stacks, evaluation stack, parse trees, and language syntax should all be expressable by data of some sort. 20:59:48 So... for example... 21:00:21 x = syntax("(") 21:00:28 y = syntax(")") 21:00:43 2root = sqrty x 2 y 21:00:48 should yield the square root of two. 21:02:00 a weird example... but I'm sure with some tweaking to how it works you could make some interesting applications with it. 21:02:58 That would requite some interesting runtime parsing mechanics. :P 21:03:28 Better yet... you could do it like Lisp with the quote operator. 21:03:52 and have the quote operator represent a "suspended" sytax... that isn't evaluated till later. 21:09:25 -!- Keymaker has joined. 21:09:53 hello. 99 bottles of beer in underload: http://koti.mbnet.fi/~yiap/programs/underload/99.ul 21:10:14 finally got around finishing this one. i'm happy about it, as it's my first program in this kind of language 21:10:32 first that does something logic, that is 21:10:52 my two others in underload are a quine and something that prints natural numbers in unary 21:11:03 * SimonRC returns himself. 21:11:38 CakeProphet: yuk 21:11:57 Thou shalt not fuck around with the parser at runtime. 21:12:16 Keymaker: cool 21:12:21 thanks 21:13:49 * SimonRC wonders where Underload is defined 21:14:11 http://esoteric.voxelperfect.net/wiki/Underload 21:14:17 * RodgerTheGreat slaps SimonRC 21:14:36 this is why we can't have nice things 21:17:52 heh 21:17:56 nice 21:18:07 SimonRC, Why not :( 21:18:27 You could assign expressions to any generic set of symbols... 21:18:46 '[ := '( 21:18:52 Hello["World") 21:19:15 I feel that changing suck things at runtime would make the language a little slow. 21:19:52 Not if you do it right 21:20:00 In fact, you are almost screwing with the lexer at run-time. 21:20:19 If the language is designed for it's purposes... rather than implementing it as a bolt-on later in life... it'll be more well-suited for it. 21:20:31 plus you would end up leaving large holes all over your language spec. 21:21:15 ...it's an esolang idea... it's supposed to be weird. :P 21:21:19 Lisp only gets away with it because it restricts lexer-around-with-screwing to read-time. 21:21:45 You know about the lifecycle of Lisp source code, right/ 21:21:46 ? 21:21:50 No. 21:22:15 the compiler reads a series of "forms" from each input file. 21:22:23 that s called read time 21:22:51 any of those forms may change the lexer. 21:22:56 termination.. 21:22:59 -!- Keymaker has quit. 21:23:16 ah, they may only change the lexer for following forms 21:24:07 The if the lexer holds a series of states... and plugs in the proper values from these malleable state values... it would be trivial to have a lexer that can change how it parses mid-runtime. 21:24:16 once the forms are read it, there is compile time, which IIRC starts with macro-expansion, which allows you to pass parts of parse trees (s-expressions) through arbitrary functions, which it handy. 21:24:28 it would most likely be an interpreted language though. 21:24:37 CakeProphet: yeah, but that reduces your ability to optimise 21:24:58 it prevents such fundamental optimisations as, say, *compiling* the program. 21:25:03 ...no use optimizing a interpreter/compiler that doesn't exist yet. 21:26:02 I don't care about speed. 21:43:57 -!- RodgerTheGreat_ has joined. 21:44:00 -!- RodgerTheGreat has quit (Read error: 104 (Connection reset by peer)). 21:44:13 -!- RodgerTheGreat_ has changed nick to RodgerTheGreat. 21:56:55 -!- RodgerTheGreat_ has joined. 21:57:11 motherfucking wifi 22:00:05 -!- ihope_ has joined. 22:00:15 Any idea how much bandwidth the esowiki uses? 22:02:42 -!- oerjan has joined. 22:04:37 ONE MILLION MEGABITS 22:05:04 ooh 22:05:40 make that ONE BILLION and you have yourself a deal 22:05:42 Per day? 22:05:58 ihope_: No, per seconds 22:05:59 ONE BILLION per day? 22:06:03 Oh. 22:06:11 Per how many seconds? :-P 22:06:12 s/second/mu second/ 22:06:25 Still plural. 22:06:33 s/seconds/mu second/ 22:09:08 -!- RodgerTheGreat has quit (Read error: 110 (Connection timed out)). 22:12:28 -!- RodgerTheGreat_ has quit (Remote closed the connection). 22:12:47 -!- RodgerTheGreat has joined. 22:15:07 http://youtube.com/watch?v=WwylBRucU7w&mode=related&search <- lol 22:18:21 LOL 2 U 22:23:07 jajajaja 22:31:13 Is that that blender thing? 22:41:00 -!- digital_me has quit ("Lost terminal"). 22:51:29 -!- RodgerTheGreat_ has joined. 22:51:46 -!- RodgerTheGreat_ has quit (Remote closed the connection). 22:52:26 -!- RodgerTheGreat has quit (Read error: 104 (Connection reset by peer)). 22:52:26 -!- RodgerTheGreat_ has joined. 23:31:08 -!- digital_me has joined.