00:06:54 we can have nil = \x y -> y 00:07:00 t = \x y -> x 00:08:52 if p x y = p x y 00:25:29 Let's just pretend we can compute the uncomputable. 00:27:12 Let's just pretend that 1+1=3. 00:27:16 let's 00:27:49 Or, in the factory language. . . 00:27:55 LET 1+1=3 00:27:57 >:D 00:28:02 -!- ihope has changed nick to i. 00:28:07 hm can 3 be overloaded in scheme to be 2? 00:28:08 -!- i has changed nick to ihope. 00:28:33 (set! 2 3) 00:28:41 (not really) 00:28:46 no, tried that ;p 00:28:55 -!- ihope has changed nick to \050. 00:29:05 -!- \050 has changed nick to ihope. 00:29:16 there's always (define three 3) (define two three)... but that doesn't really matter. 00:29:20 or count 00:29:45 Happy Happy Joy Joy. 00:29:52 off to try the kernel 00:29:54 -!- andreou has quit ("kernel time"). 00:33:07 -!- andreou has joined. 00:38:25 Joy is not the same as luck, and there is no such thing as joy luck. 00:38:53 Sad, isn't it? 00:40:06 consider yourself lucky if you have joy 00:40:15 and be joyful if you have (good) luck 00:40:30 they're like ( and ) 00:41:53 wha.t 00:42:23 * pikhq joins bsmntbombdood in singing "Happy Happy Joy Joy". 00:46:15 That's what the MIT scheme interpreter says on exit 00:47:31 Ren & Stimpy fans, I see. 00:49:37 -!- ihope has quit (Read error: 104 (Connection reset by peer)). 01:03:40 * bsmntbombdood plays with bsmnt_bot 01:03:55 someone suggested a change, what was it? 01:16:05 -!- digital_me_ has joined. 01:27:12 -!- digital_me has quit (Read error: 110 (Connection timed out)). 01:41:37 -!- calamari has joined. 01:46:17 * andreou happily plays around with chicken scheme until he's fit for bathing 01:56:53 #' 02:00:13 -!- ihope has joined. 02:02:54 foo 02:03:53 bar 02:04:13 eggs 02:04:19 ham 02:11:21 -!- pikhq has quit ("leaving"). 02:33:32 -!- ihope has quit (Read error: 110 (Connection timed out)). 02:49:53 -!- ShadowHntr has quit (Connection timed out). 03:40:06 -!- andreou has quit ("\"). 04:03:40 -!- wooby has quit. 04:38:23 -!- wooby has joined. 05:20:33 hmmm... I need to learn C++ 05:20:37 not because I want to. 05:20:42 true 05:20:46 because it's the best 05:20:49 but because I'm going to be using it soon... with little to no experience. 05:20:59 :) 05:21:41 see... the people I'm "working", who have little knowledge about programming, seem utterly sure that C++ is the best language to use for their purposes. 05:22:04 I told them the best language for me to use would be the one I'm most familiar with... in this case Python, or Lisp (vaguely) as an alternative. 05:22:30 but... not good enough... so.. 05:22:34 now I need to learn C++ 05:22:37 who knows... it might be fun. 05:22:58 c++ is fun 05:23:06 It looks rather boring to me. 05:23:13 nothing terribly exciting. 05:23:17 haha :) 05:23:58 and static typing is a drag if you've always used duck typing. 05:24:19 with c++ i best have the feeling i can do anything, you have such direct access to the memoryt 05:24:22 *-t 05:24:36 i have a python question for you 05:24:40 meh... I've never actually -needed- direct access to the memory. 05:24:41 but not now 05:24:47 bus leaved in 2 minutes 05:24:49 not neede 05:24:52 wanted. 05:24:56 you should want 05:24:58 I haven't wanted it either. 05:24:59 now to go -> 05:25:09 I'm not even sure what I'd do with it. 05:25:53 hmmm.. where can I get the full specification of the standard C++ implementation? 05:26:00 I can't seem to find anything but paper books. 05:29:40 I would just play around with it... 05:29:43 but that seems like too much work. 05:29:50 I mean... you have to compile it and all. 05:31:23 and I'm not really sure how to access the compiler from windows. 05:43:51 -!- oerjan has joined. 05:45:32 Hi bsmntbombdood 05:45:36 hi 05:46:01 I noticed that the Haskell tutorial you said you were reading was not the most recent version. 05:46:32 One thing that irks me about C++ is I haven't figured out how it's consistent. 05:46:53 CakeProphet: c++ is hideous 05:47:11 In Python everything is universally consistent... but so far I haven't found this to be true in C++ 05:47:16 it might jsut be my lack of understanding though. 05:47:40 Has anyone claimed C++ is consistent? 05:47:46 Nope. 05:48:00 I'm just trying to find out if it is. 05:48:27 static typing is sooo annoying in high level languages 05:48:36 On the other hand (and I say this having never tried to program in it) people are complaining about how its features have lots of unexpected interactions. 05:49:23 Apparently you have to learn a lot of rules for what not to do in combination. 05:49:42 I find that true of common lisp. 05:49:46 with all the macros. 05:50:07 it's hard to keep all straight when you're learning. 05:50:16 Ah yes. I suppose that is a reason why Scheme invented the hygienic macro system. 05:53:16 hmmm.. 05:53:27 gah, all these languages, so little time 05:53:39 could you define a C++ macro that substitutes all newline characters with ;\n? 05:54:03 c++ doesn't have macros 05:54:11 if you're like me... and lazy and don't feel like getting into the habit of using semicolons and have no real use for writing multiple statements in one line? 05:54:21 eh... it has flimsy textual substititions with #define 05:54:24 which it calls "macros" 05:54:33 they're not lisp macros, no. 05:54:36 -!- ShadowHntr has joined. 05:54:45 CakeProphet: just use semicolons 05:55:01 Yeah, it's no big deal. 05:55:10 but any step of laziness I can take would be great. 05:55:24 no one will be able to understand your code, and it will break 05:56:00 Why's that? 05:56:03 I think you mean "no real use for writing a statement over multiple lines" 05:56:07 if (p) 05:56:11 foo() 05:56:15 teh bork 05:56:33 He didn't say to leave out brackets. 05:56:42 that turns into "if (p); foo();" 05:57:05 oerjan: you don't need brackets there 05:57:57 He could simply follow a Python-like rule: either use brackets or put the sub-statement on the same line. 05:59:24 meh.. I can use C++'s ways no problem. 05:59:27 On the other hand I am not sure whether { ; is permitted in all cases. 05:59:34 no use sticking to old modes of thought. 06:00:04 I think "{ ;" will work, it's just a line with no stuff on it 06:00:14 hmm... I do kind of wonder how C++ actually works though... 06:00:28 ugly 06:00:31 the more I read into it the more it starts to sound like how I thought a programming langauge would work back before I learned how to program. 06:00:35 Will it work for switch statements? 06:00:49 I probably wouldn't use switch anyways 06:00:52 it's kind of silly. 06:01:04 I think so 06:01:45 Does C++ use the same evaluation as Python does for crap? 06:01:49 well.. 06:01:50 what I mean by that. 06:02:20 I remember someone finding it odd that "\n".join(SomeList) was a valid python expression. 06:02:28 and they were primarily a C/C++ programmer. 06:02:59 can't call methods on a char* 06:03:10 some I'm wondering if C++ uses variables and statements as I knew them 06:03:35 ah. 06:03:40 oh okay. 06:03:52 On the other hand, some Python programmers might find it odd that 4["foob"] is a valid C expression. :p 06:04:22 That's not too odd... it wouldn't work in Python, and I have no clue what it means... 06:04:38 It means the same as "foob"[4]", ie. 'b'. 06:04:40 It means exactly the same as "foob"[4] 06:04:49 Uh, '\0', I mean. 06:04:52 ...oh... well that -is- odd. 06:05:02 no the syntax... but what the syntax produces. 06:05:06 It's because a[b] is sort-of defined as *(a+b), and + is commutative. 06:05:06 because p[q] = *(p+q), so commutative. 06:05:12 Right, because C's array syntax is just sugar 06:05:21 Darn speaking in each other's mouths 06:05:28 x[i] == *(x+i) 06:05:49 wow, three of us said exactly the same thing 06:06:10 hmmm.. 06:06:12 so.... 06:06:23 how does it differenciate if it's communative? 06:06:36 It's + that is commutative. 06:06:40 CakeProphet: Have you programmed in a language with pointers before? 06:06:50 would it just as easily been the "foob" slice of 4? (which obviously doesn't make any sense... but it could have been read that way) 06:06:54 nope. 06:07:03 I hope you'll find them enlightening 06:07:16 I love playing with pointers :) 06:07:23 "foob" in a sense means the position of the 'f' 06:07:37 I basically conceptualize them to be like mutable data structures in Python... they point to the exact same chunk of memory rather than a new "copy" of it. 06:07:51 CakeProphet: pretty much 06:07:53 so "foob"+4 means the position of, well, I suppose not 'b', that was an error. 06:08:11 oerjan: no, "foob"+4 is correct 06:08:15 Alright... then I know how to use pointers. 06:08:28 CakeProphet: Except, pointers are more usefull 06:08:35 I just need to remember that everything is implicitly a copy of the original value unless I use a pointer. 06:08:38 Not in C. "foob"[0] == 'f' 06:08:52 oerjan: yes... 06:09:16 I could see the possible uses... I just question the way its implemented. 06:09:28 I would have made pointers implicit... and copies of the value explicit. 06:09:47 So "foob"[4]=='\000', the implicit NUL at end of string. 06:09:49 But I'm sure there's a reason. 06:09:57 oerjan: uh huh 06:10:29 so 4["foob"] == '\0' 06:10:45 Pointers may be more efficient in some cases, I guess. 06:11:18 I think C just has a different idea of what a variable is than me. 06:11:27 Pointers are more than just mutability, because the pointers can be manipulated themselves 06:11:39 Yes, to C a variable is a region in memory, of arbitrary size. 06:12:11 since I get my ideas about variables form Python... which, in terms of C++, makes variables implicitly a pointer. 06:12:38 x = [1,2,3,4,5,6,7,8] 06:12:39 y = x 06:12:47 Not simply a reference to a region of memory, like presumably in Python (except for primitive immutable types, where the reference is optimized away) 06:13:38 hmmm... 06:13:41 alright then... 06:13:54 I don't like C++ arrays either... if I must complain. 06:14:06 I can't think of too many uses for them... 06:14:26 Don't think of them as an array, just as a succint way to manipulate large areas of memory 06:14:40 s/array/list/ 06:14:40 Well... they're fixed-width. 06:14:47 It's probably the lowest-overhead way to have an array, since it's just a block of memory. 06:14:49 which... makes them kind of constained in what they can do. 06:15:08 yeah... C's all about low overhead. :P 06:15:16 Like I said, they aren't a list 06:15:25 Interestingly in Haskell and Ocaml, where things _are_ references by default, there are libraries for "unboxing", which means essentially doing it the C way for efficiency. 06:15:27 If you're using C++, you probably want to use STL's containers (like std::vector) anyway, if you want an array-like container, and arrays if you want to _implement_ a container. 06:16:07 ah... so arrays aren't intended to be the final structure? 06:16:17 just the means to the final structure? 06:16:22 Like conses in lisp 06:16:38 ...they can be 06:16:38 Arrays were inherited from C. 06:16:55 Right. 06:16:59 I guess that depends on the user; but all C++ books probably tout the merits of the STL containers. 06:17:35 They essentially just show their age, as does pointers. 06:18:04 Except probably for really low-level programming. 06:20:12 which is what they are for 06:20:38 I imagine when I first start with C++ I'll always forget to type "||" instead of "or" 06:20:43 same with && and ! 06:20:56 I could use #define to substitute them... if I wanted. 06:21:16 simply to avoid it from screwing up my program. 06:23:35 I think what Oklopol's nop language needs is a type system so complicated that _it_ is Turing-complete. 06:24:07 C++ templates are, after all. :p 06:24:21 ....okay... 06:24:23 C++ templates are SO GROSS 06:24:32 I'm not sure who the hell thought that C++'s comma operator was a good idea. 06:24:43 It's C's comma operator. 06:24:48 that's why high level languages should be dynamically typed 06:24:50 ....and C++'s 06:25:12 What's your problem with the comma? 06:25:24 I don't call Python's + operator C's + operator simply because C used it before Python. 06:25:27 what do you mean, comma operator? 06:25:31 nah... it's fine.. and I could actually see myself using it. 06:25:45 I 'm just curious who the hell thought it up... and why they chose a comma. 06:26:09 The comma operator is simply a result of C distinguishing too hard between expressions and statements, like a P-language I could mention. 06:26:18 give me an example, I have no idea what you're talking about 06:26:37 int x = (a=5,b=3, 6 ) 06:26:40 x would be 6 06:27:16 Incidentally, I haven't met anyone who wouldn't write that as "a = 5; b = 3; int x = 6;". 06:27:19 ...i've never seen/used that 06:27:40 yeah I know... I probably wouldn't use it... 06:27:42 for that 06:27:44 But the comma is used a lot in initializing several values in the init section of a for loop; for(a = 0, b = 0; ...) ... 06:28:07 so it's like a... creepy non-data-type version of a tuple? 06:28:34 Actually it's like a creepy expression version of a statement separator. 06:28:58 what's a statement operator? 06:29:01 ; ? 06:29:11 separator. 06:29:30 aaah. 06:29:38 oh okay... I see WHY you would use it now... 06:29:41 The , and ?: operators are very useful if you have some sort of ; allergy and want to write your whole program as a single expression. 06:29:44 still think it's a lame way to do it. :P 06:30:00 I like writing programs in single expressions. :D 06:30:17 Like Ocaml, a functional language uses ; for both, since it doesn't distinguish statements from expressions. 06:30:21 but for some reason I consider variable assignment in an expression "cheating". 06:30:37 but that's my inevitable Python bias... because python treats = as a statement. 06:31:41 However, Ocaml's syntax is generally not considered its best part. 06:31:57 hmmm.. 06:32:54 of course it's cheating. 06:32:59 it's a side effect. 06:32:59 "for x in SomeList" in Python in "for(x = SomeList[y], y++, SomeList)" right? 06:33:04 any side effect in an expression is cheating. 06:33:23 Here's a well-structured brainf*ck interpreter in C I wrote once; it shows the amazing usefulness of the ?: operator: 06:33:26 main(j,a,n,t)int*a;{unsigned short p=-1;char*r=calloc(n=p+1,6),*i=r 06:33:29 +n,**k=i+n;for(read(open(*++a,t=0),i,p);n=*i-43,t<0?n-48?n-50||++t: 06:33:31 --t:n?n-2?n-19?n-17?n-3?n-48?n-50?n-1||read(0,r+p,1):p[r]?i=k[j]:j 06:33:34 --:p[r]?k[++j]=i:t--:putchar(p[r]):p--:p++:p[r]--:p[r]++,*i++;);} 06:33:41 oh I use conditional expressions all the time... and list comprehensions. 06:33:56 fizzie: i see a lot of ; 06:34:07 Yes, I don't really have a ; allergy. 06:34:31 hmmm... C makes it easier to avoid multiple statements... 06:34:41 in Python it's like a fun little challenge though... C makes it too easy. :P 06:34:59 CakeProphet: not really 06:35:23 it's probably easier in python since C doesn't have lambdas 06:35:42 you can do variable assignments, multiple-expressions-with-side-effects-but-only-use-the-last-one-to-evaluate, 06:35:48 it's almost like having statements. 06:36:21 And you have the ?: to do conditionals. 06:36:29 Python doesn't allow variable assignments in an expression... which makes it way more difficult (but more "pure") to write one-liners. 06:36:36 well.. Python added something for that in 2.5 06:36:46 (true if cond else false) 06:37:16 which I use... all the time. 06:37:53 -!- ShadowHntr has quit (Connection timed out). 06:38:15 That's a funny way to write it. Perl has the "... if cond;" statement modifier, but it doesn't add an else branch there. 06:38:37 it seemed weird at first to me too. 06:38:40 but it's grown on me... 06:38:43 it reads a lot like English. 06:38:52 true if cond else false doesn't read at all like english. 06:38:59 it reads like Forth. 06:39:10 it reads like conversational english 06:39:15 I suppose you cannot use ... if ... else ... inside an ... if ... else ... without parentheses. 06:39:22 how often do you put your ifs before your assertions? 06:39:29 only in formal settings. 06:39:43 but in conversation... I always say "I like pancakes, but only if it's noon" 06:39:49 the condition came after. 06:40:08 i prefer the way forth does it. 06:40:09 "I like pancakes, but only if it's noon; else I like RAW MEAT ARRR." 06:40:34 well else is kind kind of a weird word. 06:40:39 What about pancakes with raw meat in them? 06:40:40 "otherwise" sounds more conversationally. 06:40:45 but... else is easier to write. :D 06:41:14 cond if true else false then 06:41:49 Yeah, Forth's then at the end is really weird. 06:41:50 hehehe... to someone unfamiliar with stack-based languages... that would look like someone scrambled the source code. 06:42:57 I'm still waiting for python to get a while-loop list comprehension/generator-expression. 06:43:03 I never use while loops that much though. 06:43:57 usually just one for the main loop of the program. 06:44:54 aw, I feel so robbed! SQL doesn't allow definition of recursive functions! 06:45:03 CREATE FUNCTION adder(a INT(10), b INT(10)) RETURNS INT(10) RETURN IF(b<>0, adder(a + 1, b - 1), a); 06:45:13 ERROR 1424 (HY000): Recursive stored functions and triggers are not allowed. 06:45:13 oh woe is you.. 06:45:23 how will you go on without SQL functions being recursive? 06:45:41 I was hoping I'd stumbled upon a brilliant esocoding opportunity. 06:45:56 like coding a BF interpreter in mySQL or something 06:46:03 SQL is kind of appaling though. 06:46:17 * CakeProphet had a BF interpreter coded in Excel at one point. 06:46:30 cool 06:46:32 I remeber you talking about that 06:46:43 yeah I finally got it to work. 06:46:46 but excel macros are pretty powerful to begin with 06:46:55 it can't really "print" things. 06:47:03 it just gives you the entire array to work with. 06:47:27 but I guess you could use print to accumulate characters into a single "output cell" 06:47:29 if you wanted. 06:47:55 cond if true-stmnt else fasle-stmt? 06:48:34 I can't remember enough forth 06:48:37 oerjan: not really 06:48:46 oerjan: it just means, "... and then, do this" 06:48:55 2 definitions of "then" 06:50:34 if ... if ... else ... then else ... then 06:51:39 hmm... 06:51:55 I would have implemented it true-stmt then false-stmt else if 06:52:09 or false-stmt else true-stmt then if 06:52:26 reminds me of the backwardsiness of FORTH. :D 06:52:44 Doesn't work with the Forth compiler principle though. 06:52:56 yeah 06:53:05 ooh. we have an idea- we can't make recursive calls in a general sense, but we *can* define functions with our functions. We might be able to "build the tracks as our train runs on them", so to speak 06:53:07 fuck the compiler principle. 06:53:10 if takes the predicate off the stack 06:53:33 hmmm.... here's an idea. 06:53:36 Because anything found before the first "keyword" must be directly executed. 06:54:01 make an imperitive esolang modelled after "it puts the lotion on the skin" 06:54:10 haha 06:54:25 oh 06:54:29 it puts the lotion of the skin 06:54:31 its 06:54:33 skin 06:54:35 bleh 06:54:36 "It puts the lotion on it's skin or else it gets the hose again" 06:54:42 hahahahahaha 06:54:45 conditional 06:55:11 * oerjan wonders what the heck you are referring to. 06:56:07 we're playing lambs 06:58:33 The obvious name for Ork's successor would be "ORK is to increment." 06:58:52 ....I'm calling mine Sophia. 06:58:52 * oerjan is still reading the logs. 06:58:55 because I like the name. 06:59:08 and because I intend to create a large number of things named "Sophia" 06:59:11 to confuse people. 07:00:25 I wonder what C++ would have been like if it included the increment in its evaluation (++C) 07:01:12 haha 07:01:23 Obviously one of them would have a syntax like: Sophia? Sophia. Sophia! Sophia? 07:01:42 ...no 07:01:48 that's like... the worst clone ever. 07:01:53 a clone of ook... 07:01:55 that's appaling. 07:01:56 What, you don't want to increment Ook? :) 07:02:08 cloning a cloning is a sin. 07:02:25 Buffalo buffalo Buffalo buffalo buffalo buffalo Buffalo buffalo. 07:02:44 It'll basically have ORKs syntax... with Metaclasses and coroutines... 07:02:57 and some new directive-type stuff via commands related to "Sophia" 07:03:21 I wasn't suggesting that you make Sophia have such a syntax, but that you make Sophia have it. 07:03:22 and some minor syntax tweaks... such as "When this program starts:" being changed to "When Sophia loves us:" 07:03:49 no no no... I would really only consider Sophia for that kind of silliness. 07:04:11 well... that's actually not a syntax tweak... 07:04:12 excuse me mister but wtf ru doing? 07:04:18 because Sophia will be an object with a method "loves us" 07:04:36 so it'd be When sophia is to love us 07:05:32 oh yeah... and special methods (yup... can't have OO without SPECIAL METHODS!!_ 07:06:02 "be said" is the string representation method (and how the object is printed when outputted) 07:06:16 When an apple is to be said: 07:07:45 and I'll try to think of some ways to totally bastardize ORK. 07:07:51 for fun. 07:09:45 You could add a functional layer. 07:10:31 I plan on making it heavily corotuinal. 07:10:32 actually. 07:10:37 with the whole "ring" thing. 07:19:22 -!- digital_me_ has quit (Read error: 110 (Connection timed out)). 07:19:45 -!- Sgeo has quit (Remote closed the connection). 07:28:06 -!- calamari has left (?). 07:58:42 Hey look. I've ignored all of you for the last 2000 lines. 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:00:07 That's OK, we were ignoring you too. 08:31:36 No, it's not OK. It's ORK. 10:20:54 -!- ihope has joined. 10:24:05 -!- oerjan has quit ("leaving"). 12:54:55 [08:21:32] I think what Oklopol's nop language needs is a type system so complicated that _it_ is Turing-complete. 12:54:56 it is 12:55:02 but no IO :) 12:55:21 ny nop language 12:59:57 [08:44:14] * CakeProphet had a BF interpreter coded in Excel at one point. 13:00:09 if you're talking about vba, i made one during a class in school 13:02:23 [14:53:16] ny nop language 13:02:26 idiot :\ 13:16:41 -!- andreou has joined. 13:21:04 it supports only datatypes list and nopad, nopad being the empty list 13:21:54 I did Bitwise Cyclic Tag in Excel. 13:22:09 And I don't mean a macro or anything. 13:22:21 with cell arithmetic? 13:22:27 Yep. 13:22:35 It's easier than BF, of course. 13:22:42 because making it in vba is as easy as in any language :) 13:22:56 I think BCT earns the Simplest Turing-Complete Language award. 13:23:09 tho vb is the worst language i've run into 13:23:14 hmm i'll have to check it, don't remember 13:23:21 Malbolge is the worse language I've run into. 13:23:24 :-) 13:23:33 And by worse, I mean worst. 13:25:21 well, in vb it's nicer to do a program, but i like malbolge more :) 13:25:37 Epigram has a ridiculously strong type system, doesn't it? 13:25:58 i'll have to see that one too........ 13:26:02 :\ 13:31:30 BCT stops execution when datastring is empty? 13:32:46 * andreou would like to see the US gov't adopting mycelium as a stego device 13:37:39 andreou: :-) 13:37:58 They probably have better ways of doing that, you know. 13:38:30 probably; not as cool, though 13:38:47 Heh. 13:43:38 a combination of filigram.c and mycelium would also produce interesting results 13:44:29 filigram.c? 13:45:11 it's on ../filigram/ in the site of that putty guy 13:45:15 (sorry, no c&p here) 13:51:28 -!- ihope_ has joined. 14:07:29 -!- ihope has quit (Read error: 110 (Connection timed out)). 14:12:43 python: reduce ( (lambda a, b : a+b), [[[]], [[[], [], [[], []]], []], [[], [], []]] ) 14:12:44 nopol: <<<>><<<><><<><>>><>><<><><>>>:<<..><:>:<::>> 14:13:13 it supports alphanumeric names tho, also comments and whitespace 14:13:44 the function is <<..><:>:<::>>, please crack it if you have time :) 14:15:59 the system is not only turing complete, it's actually pretty nice to write algorithms in 14:18:46 -!- jix__ has joined. 14:54:41 nopol is getting quite complicated for a language you cannot do anything with :\ 14:59:38 i think the best feature is you can have lists of negative depth, if a([b]) == b, a(a(a([]))) for example is valid code :) 15:00:09 i gotta finish it so i can make a compiler! 15:00:35 the standard for compilers guarantees a -f final build mode that optimized the whole program to one nop 15:00:46 *optimizes 15:01:22 to one nop?! 15:01:30 yes 15:01:45 because, any number of nops is essentially one nop 15:01:48 *every* program does absolutely nothing and does it in a quirky way? 15:01:55 yeah :) 15:02:10 ah i didn't read the specs -- are there any or is it WIP"? 15:02:14 of course, you can have fun with it with a debugger 15:02:37 because you see what's happening in the memory 15:02:40 specs? 15:02:43 for the lang? 15:02:57 heh yeah 15:03:05 i think this kind of fun is easier with hallucinogens 15:03:13 :) 15:03:20 i'm not ready yet with the language 15:03:40 and it will be very hard to make an interpreter 15:03:46 (with debugging) 15:04:34 i have to think over all the commands and such to make everything as logical as possible 15:04:45 but not today 15:04:51 gotta go 15:05:34 k cheers 15:11:31 k cheers 15:11:32 eh 15:20:13 -!- pikhq has joined. 15:29:09 -!- andreou has quit ("kernel test"). 15:33:01 -!- andreou has joined. 16:24:51 -!- andreou has quit ("kernel test"). 16:27:21 -!- tgwizard has joined. 16:31:16 -!- andreou has joined. 16:56:17 -!- wooby has quit. 17:05:01 -!- calamari has joined. 17:05:10 hi 17:06:07 howdy, calamari 17:06:58 apparently some spammers decided @kidsquid.com is a good return address :( getting lots of failure notices 17:07:13 -!- FabioNET has joined. 17:15:34 -!- ais523 has joined. 17:16:16 So there are people on #esoteric at the moment after all, then? I was monitoring the logs to see if anyone was online, but somehow I never seem to be online at the same time as other people... 17:16:51 !help 17:16:54 help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon 17:16:56 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl 17:17:02 !help fyb 17:17:06 To use an interpreter: Note: can be the actual program, an http:// URL, or a file:// URL which refers to my pseudofilesystem. 17:17:40 !fyb :>+!; 17:17:44 cp: cannot create regular file `fyb/cache/egobot.AbWxMh': Permission denied 17:18:19 !ps 17:18:22 1 ais523: ps 17:19:00 After that publicly-visible error message, EgoBot started spamming me with error messages... 17:20:22 happens occasionally 17:20:40 Besides, how can it run a single fyb program anyway, considering that two of them, using each other as data space, are needed for the program to work? 17:21:29 beats me 17:22:06 !fyb file://bomber.fyb 17:22:08 cp: cannot stat `./files/bomber.fyb': No such file or directory 17:22:42 i think it supports http 17:23:25 I think it tries to run the program it's given against an internal list of programs to compete against, but it's getting 'permission denied' errors on the programs it has stored 17:23:41 !ps 17:23:43 1 ais523: ps 17:24:15 * ais523 discovers that giving EgoBot another command stops the error-message spam 17:24:33 !fybs :>+!; 17:24:38 Reporting score for :>+!;. 17:26:12 !ps 17:26:15 1 ais523: ps 17:26:25 It just sent me three hyphens and stopped... 17:29:00 !unlambda ```s``s``sii`ki`k.*``s``s`ks``s`k`s`ks``s`k`s`k./``s`k`sikk`k``s`ksk 17:29:03 /*// 17:29:05 Maybe it lost three games in a row. 17:29:23 I suppose so, it wasn't a very good program... 17:30:12 !fybs +[>[-]!+] 17:30:15 Reporting score for +[>[-]!+]. 17:30:46 More hyphens. But that's a really vulnerable program, due to the tight loop near the start... 17:36:29 !fyb {>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>{>>>}{>>>}[-]++++++++++++++!} 17:36:31 cp: cannot create regular file `fyb/cache/egobot.YnjVgJ': Permission denied 17:36:43 !ps 17:37:22 1 ais523: fyb 17:37:24 2 ais523: ps 17:37:52 Hey, I think I actually beat some of its library 17:38:11 !fybs {>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>{>>>}{>>>}[-]++++++++++++++!} 17:38:14 Reporting score for {>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>{>>>}{>>>}[-]++++++++++++++!}. 17:38:41 More hyphens, but there was something encouraging in the error messages on the plain fyb 17:42:31 Hello. 17:42:34 !fyb %:[%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%[-]!]>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>{>>>}{>>>}[-]++++++++++++++!;{{>>>>}{>>>>}[-]++++++++++++++!} 17:42:36 cp: cannot create regular file `fyb/cache/egobot.Gl82IV': Permission denied 17:42:45 Hello, pikhq! 17:43:30 Enjoying Esolangs? 17:44:05 BTW, IIRC, fyb will compare the program given and some of the builtins. 17:44:18 And it seems that Gregor has fucked up Egobot a bit. 17:44:40 GregorR: Give egobot write access to itself. 17:45:05 Yes, I'm enjoying esolangs. I enjoyed the logs, too, before I had access to an IRC client. 17:45:26 !ps 17:45:29 * pikhq continues hugging BFM 17:45:29 1 ais523: ps 17:45:57 The new program seems less good than the old one. Maybe it's better to be simple... 17:47:17 !fyb :>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>{>>>}{>>>}[-]+++++++++++++++!;:>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>{>>>}{>>>}[-]+++++++++++++++!;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>{>>>}{>>>}[-]+++++++++++++++!; 17:47:19 cp: cannot create regular file `fyb/cache/egobot.2yppuf': Permission denied 17:48:03 !ps 17:48:07 losing again... 17:48:07 1 ais523: ps 17:49:02 -!- oerjan has joined. 17:49:19 * ais523 tries something really simple 17:49:22 string f! "Hello, oerjan." 17:49:26 outs f!end 17:49:43 !fyb {>>>}{>>>}+++++++++++++++! 17:49:46 cp: cannot create regular file `fyb/cache/egobot.CZrAiN': Permission denied 17:50:25 !help 17:51:43 !ps 17:51:46 1 ais523: ps 17:52:20 The ps command does seems to stop the flow of error messages and useful answers... (it lost every single game, BTW) 17:53:24 Hey, how does EgoBot manage the 2D languages? 17:54:06 !help 1l 17:54:08 To use an interpreter: Note: can be the actual program, an http:// URL, or a file:// URL which refers to my pseudofilesystem. 17:54:27 Oh, it seems that it reads it off the Web 17:56:22 !1l http://esoteric.voxelperfect.net/files/1l/src/1l_a/a.1l 17:56:24 A 17:57:17 * pikhq is a bit sad that EgoBot doesn't seem to support Dimensifuck. . . 17:57:42 It's my n-dimensional Brainfuck variant. . . 17:57:42 !help 17:57:46 help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon 17:57:48 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl 17:58:02 * pikhq needs to write a BF->DF compiler 17:58:11 It doesn't have any of my languages either. 17:58:19 Which are? 17:59:07 BackFlip, Underload, and MiniMAX are the main ones (there are also some BackFlip derivatives like ABCDXYZ and Unassignable) 17:59:51 Hmm. . . 17:59:59 * pikhq still <3 BFM. . . 18:00:05 My macro system for Brainfuck. 18:00:11 With much thanks to oerjan. 18:00:29 How do you do a loop in Dimensifuck? The wiki isn't clear on how you affect the program flow 18:00:58 =v 18:01:03 Err. . . 18:01:18 =v =v ^ 18:01:39 _ _ _ 18:02:05 ^code=^+v 18:02:06 So v and ^ affect the program counter? 18:02:19 v and ^ conditionally change the direction of program flow. 18:02:33 = and _ change the dimension v and ^ effect. 18:03:53 So you could compile BF into 2D Dimensifuck just by drawing loops to represent literal loops, in much the same way as Sansism 18:04:46 -!- andreou has quit ("-"). 18:05:14 Maybe it would be possible to do it without wire-crossings 18:08:15 -!- sebbu has joined. 18:11:41 !fybs {>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>{>>>}{>>>}[-]++++++++++++++!} 18:11:45 Reporting score for {>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>{>>>}{>>>}[-]++++++++++++++!}. 18:15:47 Well, I can *hand*compile BF to Dimensifuck. . . 18:19:13 If you assign each loop its own y-coordinate (or better, its own dimension), you could use each of those as a bypass path for the loop if the value is zero 18:19:22 and assign another one for the return path 18:19:27 I would expect every BF command to be compiled to a fixed 2D-block of DF commands, except for [], where you need to vary the height of the loop to avoid crossings. 18:20:12 + - < > , . are all the same in DF, so it's only the flow control you have to deal with 18:20:58 ! 18:21:05 Huh? 18:21:15 And for a minute there I thought ! no longer did anything. 18:21:42 !daemon nop bf ,[,] 18:22:23 -!- ais523 has quit ("about to lose Internet access for a while"). 18:28:30 * SimonRC fails to understand today's xkcd. 18:28:38 !daemon bf ,[,] 18:28:38 ! 18:28:48 I win. 18:28:54 !nop 18:29:15 * oerjan hands pikhq the golden cup 18:29:52 * pikhq joins SimonRC. 18:35:02 :) 18:43:13 sorry, I'm a bit out of the loop.. is this some kind of game you are playing? 18:43:19 ~quit 18:43:20 -!- bsmnt_bot has quit. 18:43:24 -!- bsmnt_bot has joined. 18:43:40 Nope. 18:43:42 cannot open checkpoint file /home/gregor/esoteric/egobot/egobot/daemons/: Is a directory 18:43:43 cannot obtain a checkpoint stream 18:43:55 heh 18:43:59 EgoBot is broken 18:44:10 Gregor, do you not have write access to your home dir? 18:45:12 !bf +[>+] 18:45:22 realloc: Cannot allocate memory 18:45:44 -!- digital_me has joined. 18:46:21 !bf -[->+<] 18:46:38 Maybe it lost three games in a row. 18:46:44 ^^^ what does this mean? :) 18:46:49 !bf ++++++++++. 18:46:53 calamari: FYB. 18:47:00 SimonRC: me too 18:51:23 -!- digital_me has quit ("Lost terminal"). 19:03:31 * pikhq continues prodding Gregor 19:33:17 -!- pikhq has quit (Read error: 104 (Connection reset by peer)). 19:35:06 -!- pikhq has joined. 19:42:05 -!- ShadowHntr has joined. 19:48:02 Kill egobot, Gregor. 19:48:22 kiiiiiil it 19:48:25 kiiiiiil it! 19:48:55 * CakeProphet remembers how much he loves duck typing. 19:48:59 I'm getting PMd error messages. 19:49:02 duck typing is nice 19:49:05 can't do that in c++ 19:49:09 it makes sense. 19:49:52 What data can do should be defined by its propertie, rather than some "type". :P 19:50:54 and... 19:50:57 it has a cool name. 19:51:00 you can't beat that. 19:53:41 -!- EgoBot has quit (Read error: 104 (Connection reset by peer)). 19:53:54 -!- EgoBot has joined. 19:54:35 Now, chmod some of its directories +w. 19:54:43 !bf ++++++++++. 19:54:50 * pikhq waits for the error message 19:55:23 * pikhq waits for a newline, even 19:55:55 !bf +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++. 19:55:59 A 19:56:12 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++. 19:56:16 !bf +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++. 19:56:19 A 19:57:31 You realize that prodding is useless if you don't say "GregorR" 19:57:45 What with IRC clients highlighting tabs and such. 19:59:23 GregorR, you didn't respond when I said your full name. 19:59:47 I was asleep :-P 19:59:56 Is your home dir rw now? 20:00:07 !daemon bf ,[,] 20:00:09 hook up your alarm clock to your irc client 20:00:10 ! 20:00:58 OK, fyb is fixed. 20:01:12 !bf_txtgen A 20:01:37 And it runs as user egobot in /home/gregor/esoteric/egobot/egobot :P 20:01:38 there should be an algorithmic bf textgen 20:01:39 30 ++++++++[>++++++++>>><<<<-]>+. [53] 20:01:58 30 characters to make an A?? 20:02:00 !bf >+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.>+++++++++++++++++++++++++++++++++++++++++++.>-------------.>++.>++++++++.>+++.>--------------------------------. 20:02:03 G+уа 20:02:06 :) 20:02:13 well, getting close 20:02:19 oh 20:02:50 !bf +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.+++++++++++++++++++++++++++++++++++++++++++.-------------.++.++++++++.+++.--------------------------------. 20:02:53 GregorR 20:02:56 :) 20:03:01 i made a generator too! 20:03:04 xD 20:03:17 it's less effecient than EgoBot's 20:03:24 !bf_txtgen GregorR 20:04:01 80 ++++++++++++++[>+++++>++++++>++++++++>+++++++<<<<-]>+.>>++.>+++.++.<---.+++.<--. [250] 20:04:08 yep 20:05:00 is it really?!?!?!?!? :D 20:05:22 actually, mine is not much slower 20:05:33 just longer 20:05:35 EgoBot uses a genetic algorithm 20:05:42 genetic? 20:06:09 mine uses a generic algorithm and i wrote it just now in python in 2 minutes 20:06:33 so, yeah it sucks but i love all those chains of letters <3 20:06:57 what algorithm is GregorR's anyway? 20:07:13 GregorR: You should pipe the output of bf_txtgen through a bf optimizer 20:07:31 to remove the >>><<< stuff 20:08:45 [250]? 20:09:14 textgen.java . Look @ calamari :-P 20:09:14 my guess is the generations it wen't through 20:09:48 can i see the thingie? 20:09:51 ^[0-9]+ is the length, \[[0-9]+\]$ is the generations. 20:10:04 It's in the files archive. 20:10:08 that's what I thought 20:10:35 -!- maverickbna has joined. 20:11:11 -!- ShadowHntr has quit (Nick collision from services.). 20:11:52 okay, what is the files archive :) 20:12:03 -!- ShadowHntr has joined. 20:12:10 -!- ShadowHntr has quit (Read error: 104 (Connection reset by peer)). 20:12:41 http://www.esolangs.org/wiki/LOOK_IT_UP_YOURSELF 20:12:56 Or just http://www.esolangs.org/ :-P 20:13:00 i found no archive :\ 20:13:10 :O 20:13:12 OMG 20:13:24 SUPRISINGLY IT WAS NOT IN THE WIKI 20:13:38 stupid java 20:14:15 okay 20:14:21 i can't find it there either :) 20:14:29 http://www.esolangs.org/files/egobot/ ? 20:14:52 oh 20:15:09 cannot open checkpoint file /home/gregor/esoteric/egobot/egobot/daemons/: Is a directory 20:15:11 i thought it was like in a separate folder :) 20:15:11 cannot obtain a checkpoint stream 20:15:24 HA HA HA E GO BO T 20:15:36 That's curious :-P 20:15:45 !ps d 20:15:47 1 EgoBot: daemon nop reload 20:15:49 2 pikhq: daemon bf 20:15:51 3 GregorR: ps 20:15:55 You're just an e go bo t 20:15:55 Damn you pikhq ;) 20:16:00 !undaemon 20:16:10 Of course X-D 20:16:27 Aha 20:16:48 * pikhq grins 20:17:05 now what i wanted to check. 20:17:37 Someone needs to do something clever with bsmnt_bot 20:17:48 GregorR: I can be cruel to bots at times. 20:18:02 !daemon bf bf ,[.,] 20:18:13 !bf Testing... 20:18:14 -!- EgoBot has quit (Read error: 104 (Connection reset by peer)). 20:18:18 heh 20:18:24 -!- EgoBot has joined. 20:18:26 Hm. 20:18:30 !ps d 20:18:32 !daemon glass bf ,[.,] 20:18:33 That's sort of bad X-P 20:18:33 1 EgoBot: daemon nop reload 20:18:35 2 oerjan: ps 20:18:41 I should read the EgoBot source 20:18:45 !glass Whee. 20:18:49 Whee. 20:18:54 !undaemon glass 20:18:57 Process 2 killed. 20:18:58 You jackass :-P 20:19:05 !daemon glass glass '' 20:19:11 !glass There we go. 20:19:12 -!- EgoBot has quit (Read error: 104 (Connection reset by peer)). 20:19:21 -!- EgoBot has joined. 20:19:27 Hmm. 20:19:38 !daemon cat cat f 20:19:39 !cat f 20:19:40 -!- EgoBot has quit (Read error: 104 (Connection reset by peer)). 20:19:42 Apparently daemons can be recursive? 20:19:46 Can't. 20:19:50 -!- EgoBot has joined. 20:19:53 dude, wtf 20:19:53 Can't successfully :-P 20:19:58 -!- maverickbna has quit (Read error: 145 (Connection timed out)). 20:20:00 you wrote it in c++? 20:20:08 I'm a C++'er. 20:20:11 !daemon bf undaemon bf 20:20:12 That just ain't right 20:20:12 Process 1 killed. 20:20:17 !bf foo 20:20:31 NOT COOL DUDE 20:20:32 !bf foo 20:20:37 bsmntbombdood, as wouter said, ppl who don't like c++ don't understand it 20:20:44 bsmntbombdood: People who don't like C++ --- thanks, oklopol 8-D 20:20:51 :) 20:20:53 * pikhq needs to fiddle with egobot a bit 20:21:25 !daemon undaemon bf 20:21:38 * oerjan cackles evilly 20:21:39 what's cerr? 20:21:55 oerjan: 8-X 20:21:56 Dude, wtf? 20:22:13 !ps d 20:22:16 1 oerjan: ps 20:22:22 Why the hell are you writing IRC commands to stderr? 20:22:22 Hmmm.. 20:22:31 bsmntbombdood: It's the C++ stream interface to stderr. 20:22:37 oh 20:22:45 !daemon undaemon bf ,[,] 20:22:48 !ps d 20:22:51 1 oerjan: daemon undaemon bf 20:22:52 2 oerjan: ps 20:23:01 pikhq: netcat is a bit funky :( 20:23:05 That's better. Or worse. 20:23:23 heh, I don't understand the source at all 20:23:40 ... 20:23:41 !help raw 20:23:42 !undaemon undaemon 20:23:44 Process 1 killed. 20:23:45 bsmntbombdood: What's wrong with you. 20:23:46 To use an interpreter: Note: can be the actual program, an http:// URL, or a file:// URL which refers to my pseudofilesystem. 20:23:57 pikhq: There's no help on !raw 20:24:19 !raw QUIT :I don't want to live! 20:24:43 what's lockIRC_o()? 20:24:45 !raw PRIVMSG #esoteric :Do you /really/ think I use security by obscurity, dorkus? 20:24:45 Do you /really/ think I use security by obscurity, dorkus? 20:25:21 !raw PRIVMSG bsmntbombdood :Don't answer that. 20:25:53 * pikhq realised something stupid 20:26:02 if (sender != string(argv[2])) continue; 20:26:18 So Gregor alone can use raw. 20:26:32 Same for reload. 20:26:37 (bastard) 20:27:56 ./egobot EgoBot GregorR esoteric 10485760 >> EGOOUT 20:28:11 I don't understand how the fuck that allows netcat to access IRC. 20:29:00 what's a "trigger interpreter"? 20:31:51 ooooh, trigger is an esolang 20:36:06 At least there aren't any buffer overflows to exploit. . . 20:36:41 . . . I think I stand corrected. 20:36:59 !bf_txtgen was this the command? 20:37:13 !help 20:37:17 help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon 20:37:19 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl 20:37:27 okay 20:37:37 i... se 20:37:37 *See 20:38:01 162 +++++++++++[>+++>+++++++++++>+++++++++>++++++<<<<-]>>--.>--.<----.<-.>+.>+++++++.+.<-.<.>+.------------.---.<.>--.++++++++++++.--..------------.>+++++.<+++.>>---. [930] 20:38:11 No, your use of C strings is safe. . . 20:38:18 Still. . . Bad Gregor! 20:38:19 !bf_txtgen test 20:38:40 You should have written it in bf 20:38:51 54 +++++++++++++[>+++++++++>++++++++>><<<<-]>-.>---.<-.+. [32] 20:38:54 !bf_txtgen test 20:39:22 args.substr(0, 7) == "http://" 20:39:25 54 +++++++++++++[>+++++++++>++++++++>><<<<-]>-.>---.<-.+. [316] 20:39:41 Double quotes don't evaluate to a c string in c++? 20:39:52 Using char arrays in C++ isn't wise. 20:39:52 yes 20:41:56 What's the point of forking and then waitpid()ing on it? 20:44:10 "foo" is a static C string in C++. . . 20:50:03 Then line 253 of cmd.cc is broken I think 20:50:24 unless string::substr is magice 20:50:30 *magiv 20:50:33 *magic 20:51:21 No idea what the function is used for 20:54:02 Not broken. 20:55:14 -!- cmeme has quit (Connection timed out). 20:55:43 Oh right 20:55:55 string overloads == 20:56:45 string::substr is magic, indeed. 20:56:46 ;) 20:57:31 yeah 21:01:27 how does the txtgen randomize the same string every time :\ 21:01:37 or, even two times in succession 21:02:54 It's a genetic algorithm. . . You're experiencing dumb luck. 21:05:59 -!- Sukoshi has quit ("ERC Version 5.1 (CVS) $Revision: 1.796 $ (IRC client for Emacs)"). 21:06:08 heh, ERC 21:08:07 !bf http://esoteric.sange.fi/brainfuck/bf-source/prog/99botles.bf 21:08:12 99 Bottles of beer on the wall 21:08:20 damn, pm 21:08:31 !ps 21:08:34 1 bsmntbombdood: ps 21:08:35 !kill 1 21:08:38 Process 1 killed. 21:13:37 -!- oerjan has quit ("leaving"). 21:39:11 -!- jix__ has quit ("Bitte waehlen Sie eine Beerdigungnachricht"). 21:41:26 Wow... 21:41:30 This is great. 21:41:38 * CakeProphet absolutely loves the ring idea. 21:44:12 I don't understand why it's so great 21:45:21 In a static universe... it wouldn't be all that great. 21:45:21 I don't know what idea it is. 21:45:38 for a dynamic universe... it's pretty damn sweet. 21:45:41 and I've changed it a bit. 21:45:54 It's a sequence of functions that can be called. 21:46:59 when you call a ring... it calls the first function with those arguments, and uses the return value as the arguments for the next function, etc 21:47:20 but there's a "ring return value" as well... which is what the ring returns as a whole. 21:47:39 it's like function decorators. 21:47:53 but... not exactly. 21:48:51 it's not really meant to be a "pure" function (no side-effects) 21:48:59 it would work best where everything is a side-effect. 21:55:04 People who don't like C++ don't understand it? Lies! 21:55:33 I refuse to use any programming language that I cannot code first-order logic theories into! 21:56:47 I hate that excuse that people give 21:57:03 "You don't like it, so you must not understand it" 21:59:22 -!- Sgeo has joined. 21:59:29 That would be assuming that anything understood is liked. 22:00:10 * bsmntbombdood reads K&R 22:00:20 K&R? 22:00:31 That's not the virtualization thing, is it? 22:00:49 -!- sebbu has quit (Connection timed out). 22:00:49 no 22:01:02 kernighan and ritchie 22:01:20 -!- pikhq has quit (Read error: 104 (Connection reset by peer)). 22:01:56 -!- pikhq has joined. 22:07:25 No, CakeProphet, just that C++ is nice when you get it. 22:07:36 oh 22:07:46 you did say it genericly 22:07:50 math -> 22:11:07 -!- olli90 has joined. 22:11:13 hi all 22:11:28 Hello. 22:12:47 I have a question reguarding BrainF*ck .... 22:12:51 can you help me? 22:14:46 Sure. 22:14:54 Depends on the question, of course... 22:15:50 i have to make a brainfuck program that checks a string... 22:16:02 like a serial key checker 22:16:21 You *have* to? 22:16:45 Check one string against another, then? 22:16:48 i wuold like to 22:16:53 xD 22:17:00 sry for my english 22:17:46 then if the first is = to the second the program prints "OK" and is not = the program prints "wrong" 22:18:48 Hmm. . . 22:19:26 I can think of the basic structure for such a program in BFM. . . 22:19:46 Would it be a specific, builtin string, or would it compare two strings from stdin? 22:19:48 * ihope_ slaps pikhq 22:20:07 are the lengths known? 22:20:07 it haves to compare 2 strings... 22:20:10 ihope_: Sorry. . . It's easy to think about it at higher levels of abstraction. 22:20:11 no 22:20:19 yes i know 22:20:28 Input a character, go right, increment, go right, input a character, go right, increment, go right... 22:20:45 Continue until you receive a newline. 22:21:26 After you receive it, go left to the cell you incremented last, then [<<], then go right. 22:22:11 From there, you're at the beginning of the string you want to check against, and there's one cell between each pair of characters, and the next thing that will be input is the other string. 22:22:27 ok 22:23:09 thanks 22:23:25 I think I have undertund :D 22:25:46 bye 22:25:50 -!- olli90 has quit ("KVIrc 3.2.3 Anomalies http://www.kvirc.net/"). 22:25:52 * pikhq realises one thing that could be much faster in BFM, when compiled into Tcl and interpreted. . . 22:25:56 itoa is slow as hell 22:28:16 Of course, I know an even easier way to make the BFM interpreter faster. 22:28:27 Make it just compile to BF and run through egobfi. 22:28:49 Compile it to C. 22:28:53 C is nice and face. 22:28:56 st 22:29:15 That's great and all, but BFM already targets C. 22:29:37 I just need to get c.tcl pulled over onto my laptop and package it up. 22:29:45 Besides, egobfi8 is very fast. 22:30:07 tclsh ./bfm.tcl -f ~/esoteric/bfm/bott.bfm 1.22s user 0.04s system 56% cpu 2.218 total 22:30:11 egobfi8 0.14s user 0.07s system 9% cpu 2.213 total 22:30:28 Comparing with the BFM interpreter. . . 22:30:34 Give it a few minutes. 22:31:07 (comparing with my in-BFM implementation of 99 bottles of beer) 22:32:23 79. 22:32:46 Like I said: the in-BFM itoa implementation is slow as fuck. 22:33:10 (at least, it is in an environment where your interpretation of a while loop is very, very slow) 22:33:15 Just how slow is fuck? 22:33:48 I'm watching the thing spit out a string, wait a few seconds, spit out a number and a string, and so on and so forth. 22:34:34 Unbuffered output lets me see what the bottleneck is. . . 22:34:58 String output goes pretty quickly, even for a rather slow interpreter. 22:35:17 tclsh ./bfm.tcl -f ~/esoteric/bfm/bott.bfm -I 285.46s user 0.37s system 98% cpu 4:48.95 total 22:35:22 That's how slow fuck is. 22:36:57 -!- tgwizard has quit (Remote closed the connection). 22:39:15 * pikhq has made the thing a bit faster now. . . 22:39:29 I removed redundant calls to itoa in my bott.bfm program. 22:39:43 It should be 3 times as fast. 22:39:49 Which is still rather slow. . . 22:41:25 tclsh ./bfm.tcl -f ~/esoteric/bfm/bott.bfm -I 130.26s user 0.34s system 92% cpu 2:20.87 total 22:41:42 tclsh ./bfm.tcl -f ~/esoteric/bfm/bott.bfm 0.89s user 0.05s system 93% cpu 1.005 total 22:41:45 egobfi8 0.11s user 0.06s system 9% cpu 1.886 total 22:42:34 Now, we all know how slow fuck is. 22:43:47 i actually made an assignment! :) 22:43:53 . . . Yes? 22:45:30 Math. 22:45:41 . . . 22:45:55 i've done maybe 10 in high school if you don't count exams, so i'm very proud -_______- 23:12:51 . . . Wow. 23:13:01 I've got 939 lines of code in BFM. . . 23:13:16 Not counting my C backend, which I have yet to sync in with the rest of my tree. 23:13:59 My pre-rewrite build was 325 lines. 23:14:17 Kind of odd that I managed to have the thing grow in size as it increased in readability. 23:37:46 -!- FabioNET has quit ("notte notte"). 23:38:37 oklopol: you made an assignment? 23:39:24 You assigned something, then? 23:39:32 char a = 2; 23:39:34 Hard. 23:42:15 ya i assigned my foot in yer ass :\ 23:45:11 I had to carry out a derivation manually :OO 23:45:18 verry omg! 23:48:02 Gasp! 23:50:25 I have to do 150 to pass the course. I know the answer when I've read the question but it takes 20 minutes to do it. 23:50:31 so... 50 hours 23:50:33 for nothing