00:02:43 http://membres.lycos.fr/bewulf/Russell/AE6.py 00:05:04 There's nothing to distinguish variables from combinators, so I would avoid s-k-i. 00:05:22 Although I'm not even sure what it might do. 00:07:15 Well, it screw it up apparently. 00:50:50 -!- faxathisia has quit ("Leaving"). 01:15:31 -!- Sgeo has quit ("Ex-Chat"). 01:55:43 -!- SimonRC has quit (Read error: 110 (Connection timed out)). 02:05:34 -!- tesseracter has changed nick to weilawei. 02:08:32 -!- weilawei has changed nick to tesseracter. 02:21:05 Damn. The predecessor function won't pass through the ABSTRACTOR 02:48:46 -!- Jontte has quit (Remote closed the connection). 04:00:03 -!- calamari has quit ("Leaving"). 04:49:33 -!- slereah_ has joined. 05:08:48 -!- Slereah has quit (Read error: 110 (Connection timed out)). 05:09:05 -!- oerjan has quit ("Good night"). 05:48:25 -!- slereah_ has changed nick to Slereah. 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 10:52:53 -!- SimonRC has joined. 10:59:00 -!- Jontte has joined. 11:48:39 -!- sebbu has joined. 11:50:47 -!- AnMaster_ has joined. 12:01:50 -!- AnMaster has quit (Connection timed out). 12:19:22 [amsg] carte mère, cpu, ram, carte graphique, alim changés, windows marche encore 12:25:20 -!- faxathisia has joined. 12:25:24 -!- Hiato has joined. 12:25:34 Wassabi all :) 12:26:16 -!- AnMaster_ has changed nick to AnMaster. 12:34:52 alright fine, Hi all 12:35:19 Hello 12:36:11 Anything new happening in the eso community? (Wasn't here since Wednesday...) 12:37:26 hmm I'm not sure 12:37:39 ok cool 12:37:44 I'm trying to decide if this language is esoteric or not 12:37:56 which? 12:38:06 It's called Janus 12:38:15 Here is bubblesort http://rafb.net/p/woIN0k75.txt 12:38:31 hrmm 12:38:39 looks Lua-esque to me 12:38:43 it does look so odd (it's almost exactly like the While language), but you can any valid program in it forwards and backwards 12:38:51 which is certainly not usual :) 12:38:59 woow 12:39:03 that's cool 12:39:04 so I'm not sure how to classif y it 12:39:13 did you make it? 12:39:27 well I read a paper on it, then I emailed the authors asking for their interpreter.. 12:39:35 I see 12:39:36 they didn't reply though.. so I have written one 12:39:42 lol, awesome 12:40:06 hrmm 12:40:07 well 12:40:08 * faxathisia (is doing a compiler now so I can hopefully run the self interpreter) 12:40:18 that would be wicked 12:40:30 I must say, that it is not what I would expect from an eso lang 12:40:44 yeah, it might not count 12:40:49 * faxathisia isn't sure 12:40:52 I generally expcet either obfuscation or minimisation 12:41:07 seems to be a very structured language to 12:41:11 very keywordy 12:41:13 ;) 12:42:18 the only things are += -= ^=, if_then_else_fi_, from_do_loop_until, call_, uncall_ and skip, and the only data is numbers 12:42:34 oh... hrmm... 12:42:41 (32 bit integers) 12:42:44 I see 12:42:47 ^=? 12:42:50 XOR 12:42:54 cool 12:43:05 += -= are inverse, ^= is it's own inverse 12:43:13 yeah 12:43:16 and procedure 12:43:20 is that also a keyword? 12:43:23 Yes 12:43:33 hrmm 12:43:36 maybe it's eso 12:43:40 so hard to tell 12:43:42 ;) 12:43:45 It's kind of on-the-edge :D 12:43:49 yip 12:43:57 * faxathisia should try to come up with an esolang... 12:44:07 Yeah, that's a nice idea 12:44:16 I'd like to see what your mind can create :P 12:44:50 -!- timotiis has joined. 12:45:24 * faxathisia would really like to see more interesting sub-turing languages though 12:45:41 well, Im working on one as we speak 12:45:51 oo 12:45:57 actually though 12:46:03 it might be Turing complte 12:46:07 but who knows :) 12:46:23 someone will soon have proof by implementing brainfuck in it 12:46:24 :D 12:46:31 lol, yip 12:46:36 What is it? 12:46:43 I'll link now 12:46:46 one sec 12:48:53 http://rafb.net/p/TFMAVK60.txt 12:49:08 if stuff is mis-aligned, it's cause it cam out of word 12:49:11 ;) 12:49:22 sorry about the quantity 12:53:15 It's got loops and conditional branching.. probably universal 12:53:24 true 12:53:25 mad though :p 12:53:29 thanks :) 12:55:52 hmm 12:55:58 ? 13:01:38 be back soon(ish) 13:10:38 esolang propsal 1: Nothing -- Only valid program is the empty program, this language can compute everything in the NONE complexity class 13:14:20 back 13:14:22 hrmm 13:14:26 faxasthisia 13:14:34 I'm not so keen on that one 13:14:42 for some odd reason ;) 13:14:54 that would be leaning towards joke language 13:15:35 even though scientifically accurate, it can compute anything of zero complexity 13:15:48 http://qwiki.stanford.edu/wiki/Complexity_Zoo#none 13:16:29 lol 13:16:31 well 13:16:36 yes, you have a point 13:16:53 but then the interpreter would be int main() {return0}; 13:16:55 * faxathisia provides an implementation, in Nothing: 13:16:56 fascinating 13:16:59 :P 13:17:01 lol 13:17:26 ok, I wrote up the hello world prog : "" 13:17:31 and fib 13:17:33 That's impossible 13:17:35 ;) 13:17:37 true 13:17:44 what about a self interpreter 13:17:47 """" 13:18:05 I already pasted a self interpreter :P 13:18:14 :) 13:18:23 ok ok *tries harder* 13:18:29 lol 13:18:36 * faxathisia is reading the complexity zoo for inspiration 13:18:54 preferably come up with something with >=1 dimension of complexity 13:18:56 :) 13:18:59 enjoy ;) 13:19:01 hehe 13:32:04 ok, going somewhere, be back later 13:32:08 -!- Hiato has left (?). 15:28:51 -!- jix has quit (Read error: 60 (Operation timed out)). 15:29:18 -!- jix has joined. 15:57:05 -!- sebbu2 has joined. 16:01:10 -!- iEhird has joined. 16:01:26 esilang idea. 16:01:54 haskellesque type definitions only 16:02:08 they are much more powerful though 16:02:40 function bodies ate inaccessivle and determined by something like lambdabots djinn 16:03:24 Turing complete. hopefully. 16:03:56 thr ultimate dwcparative Lang 16:05:39 iEhird I love it!! 16:06:07 this is what I want to code in 16:06:14 though it is not very eso.. 16:06:39 Do you know this sort of exists already? 16:07:01 (just that the djinn bit is mostly done by the programmer) 16:08:18 -!- iEhird has quit (Remote closed the connection). 16:08:21 -!- oerjan has joined. 16:14:39 -!- sebbu has quit (Read error: 110 (Connection timed out)). 16:14:59 -!- iEhird has joined. 16:18:51 faxathisia: i say there are at least two kinds of esolangs, those that are syntactically esoteric and those that are semantically esoteric. Janus should not be disqualified just for not being in the first group. 16:19:48 especially since a bit of the second makes a language much more interesting... 16:20:37 it's just that making a weird syntax is so much easier that those tend to be a huge majority 16:22:09 in that case, Do you think it is one or not? 16:23:13 I mean I know of only.. 5 I think reversible languages 16:23:20 i think reversible languages are pretty esoteric :) 16:23:30 cool :D 16:23:48 there's a category on the wiki for them 16:24:20 however, we have a tradition that the intention of the language author counts too 16:24:37 oh right.. 16:24:56 I really have no idea what the authors intended 16:25:06 might be research 16:26:19 indeed 16:26:26 -!- faxathisia has left (?). 16:26:29 -!- faxathisia has joined. 16:27:38 type Integer = a -> Integer -> Integer 16:27:42 I think 16:27:59 huh ? 16:28:25 zero :: a -> b -> b 16:28:26 Error: Recursive type 16:28:41 oerjsn this ain't Gaskell 16:29:03 It's twelf! 16:29:03 Error: Lousy typing 16:29:04 thisbis Tc type system and nothing elsev-skell 16:29:18 Nat : Type, Z : Nat, S : Nat -> Nat 16:29:19 error iPhone youvhedreej tuppbg 16:29:25 touchscree 16:29:44 fax not enough without bodies 16:29:46 I don't think turing complete type system is good idea 16:29:48 anyway 16:29:49 but almost turing 16:30:05 if everything terminates you can encode proofs 16:30:27 otherwise you can prove false and proofs don't mean anything anoymore 16:30:46 Qi has TC type system apparently though 16:31:24 hmm anyone know a func rep of into that isn't church numerals 16:31:32 afair the point is if your type system is not terminating then you have to actually _run_ the types in your program 16:31:50 to check that they do terminate 16:32:03 you cannot just do them statically 16:32:04 oerjsn the types terminate the functions autogrnned by them may not 16:32:24 if you can encode a fixpoint in the type system then you basically got X : (a -> a) -> a, which lets you prove any 'a'? 16:32:40 e.g. everything is provable 16:32:57 yep - except the proof will not terminate 16:33:19 so if you actually run the proof you are still safe from reaching an erroneous conclusion, i think 16:33:26 hmmmmm 16:33:35 type Recur = Recur -> a 16:33:52 now this as usual my vague understanding from reading discussions... 16:33:57 *is as 16:34:22 Y :: Recur a -> ... 16:34:33 CBS to type the rest Oman iPhone 16:34:44 someone else fi I'd :P 16:34:49 lol 16:35:29 * oerjan half thinks iEhird must be wearing boxing gloves as well :D 16:35:50 no just typing really fast and ompeefixely 16:35:54 imprecicelt 16:36:22 doesn't it have spelling correction or something? 16:36:28 yes 16:36:39 that's the main problem 16:37:17 * faxathisia agrees about it being the ultimate declarative language 16:37:45 The kind of theorm proving required would be ... a lot of work to code in the first place though 16:38:39 I guess 16:38:46 I would just do 16:39:22 djinn(defs) 16:39:37 and die if we run into problems 16:39:49 actually they should add #djinn to haskell 16:40:00 #djinn curry :: ((a, b) -> c) -> a -> b -> c 16:40:20 IMO the best strategy would be compiling to c using some vm like stuff for dtnamicism 16:40:36 compiler written I'm hadell for pat matching 16:41:22 I think I lost xobbecton??? 16:41:30 hm a language based on spelling errors... 16:41:39 iEhird: still hearing you 16:42:09 lol xobbecton 16:42:30 oerjsn Yes 16:42:34 :D 16:43:34 I want iEmacs for iphone 16:43:51 write my compiler right here 16:43:53 :P 16:47:09 -!- iEhird has quit (Remote closed the connection). 16:53:08 -!- iEhird has joined. 16:56:44 -!- iEhird has quit (Remote closed the connection). 17:58:30 *yawn* Hello people. 18:02:18 * pikhq is of the opinion that an iPhone has a horrible keyboard, as do most portable devices. 18:04:24 hm, I wasn't a great fan of it when I played with one 18:05:50 Here, have some propaganda : http://www.thebestpageintheuniverse.net/c.cgi?u=iphone 18:06:22 no thanks, I don't feel like having propaganda 18:06:40 I do, but not right now 18:07:17 The iPhone actually has a decent interface, aside from that damnable keyboard. 18:07:28 The big thing that I hate is that it's all locked up. 18:07:37 I enjoy things like Rockbox and OpenMoko. 18:07:52 There's just something wonderful about sticking Doom on your MP3 player. 18:08:51 I have a mp3 of some vaguely Doom inspired song on mine. 18:08:55 "Blood on the wall" 18:09:06 Mine also runs the Game of Life. 18:10:02 my phone runs the game of life. useful when bored 18:10:57 Mine would if a) I had money b) the damned Neo 1973 would ship already. 18:11:26 http://rome.ro/sounds/Blood_On_The_Walls.mp3 18:11:35 Heh, still online. 18:19:42 hehe 18:19:53 there's a pretty nifty little java implementation out there 18:21:14 -!- iEhird has joined. 18:21:24 -!- iEhird has quit (Client Quit). 18:21:35 -!- iEhird has joined. 18:21:54 now THAT'S clever 18:22:36 a scheme interp that has really efficient continuations: it actually portable c 18:22:45 plies the c stack 18:23:51 now if you did that in a compiler scheme-c interaction would be trivial 18:24:17 scm proc = c proc 18:25:19 tail calls could be done using setjmp 18:25:34 Gah! Long jumps! 18:25:34 :p 18:25:43 like a macro TAIL(func,arg...) 18:26:19 setjmp(buf); func(buf,arg...); 18:26:37 dunno 18:27:22 basically: every function that tailcalls has a trampoline embedded 18:28:36 You want fun? int foo __attribute__((cleanup (foo_deconstructor))) = 0;. 18:28:44 Mmm. Attributes. :p 18:29:39 :) 18:29:57 no gcc specifics! 18:31:06 But GCC runs everywhere!... 18:32:20 SCMVAL scm_fact(SCMENV env, struct jmp_buf tail, SCMVAL n) { 18:32:43 hmm make that jmo buf * 18:33:14 hm 18:33:20 not sure... 18:35:22 pikhq 18:35:36 I guess if you are stack smashing already 18:36:19 then you could mangle sp-1 then jump 18:51:33 * pikhq observes that stack smashing might *not* work on this system. . . 18:52:05 My system, being AMD64, enforces the NX bit. 18:52:14 * Slereah imagines the incredible Hulk, smashing stacks 18:53:04 there's probably a way pikhq 18:53:21 stack smashing is quite a common trick 18:54:39 -!- iEhird_ has joined. 18:55:00 Um. . . Surely stack smashing is something that shouldn't be used? 18:55:19 (no more than actually *using* a buffer overflow?) 18:56:40 controlled stack smashing is useful in cases like this :-) 18:57:19 most/all common arch/os's support it somehow 18:57:33 It's also non-portable as fuck, *and* liable to break on systems like OpenBSD, NX-bit supporting systems, etc. 18:57:51 you can do it on openbsd 18:57:59 (granted, you can disable the stack-smashing protection on those systems. . . Doesn't make that a good idea.) 18:58:13 writing a libcstack would be good 18:58:16 Yeah; you have to compile with -fno-stack-protector 18:58:47 pikhq several common prigs do it 18:58:49 progs 18:58:51 -!- Sgeo has joined. 18:59:10 Doesn't make it a good idea. 18:59:50 It's almost *exactly* like relying on buffer overflows in your code. 18:59:57 void *dest; cstack_copy(dest); 19:00:25 cstack_unwind(); cstack_pushall(dest); 19:00:58 or something 19:04:52 -!- iEhird_ has quit. 19:05:14 -!- iEhird_ has joined. 19:05:54 -!- iEhird has quit (Read error: 113 (No route to host)). 19:13:59 pikhq ping 19:14:42 Pnog. 19:15:57 Gnap 19:18:20 I wonder how this will interact with gnu c 19:19:06 That depends. 19:19:28 If it depends upon undefined behavior, GCC will shoot you, then hand you a few errors and warnings. 19:19:30 -!- iEhird has joined. 19:19:45 actually I wonder the most portable way to find the srams 19:19:47 stack 19:21:06 -!- Hiato has joined. 19:21:29 Alright, back :) 19:21:32 Wassup all 19:22:03 Faxasthisia, how's the inspiration going? 19:22:08 another fun trick: call out native compiler then cast object code to func 19:22:25 = traditional interactive scheme system 19:22:52 -!- _KS has joined. 19:31:47 -!- oerjan has quit ("Supé"). 19:35:37 ping 19:36:06 -!- calamari has joined. 19:42:59 -!- Hiato has left (?). 19:45:52 -!- iEhird_ has quit (Read error: 113 (No route to host)). 19:57:20 -!- iEhird has quit. 19:58:01 -!- iEhird has joined. 20:06:08 There is one way to make tail recursion really easy to do: 20:06:16 seperate the data and return stacks 20:06:27 It is trivial for forth-like languages 20:07:10 how does that make it easy? 20:08:54 all calls have either a look-ahead or the compiler modifies the call into a jump 20:10:09 and every defined word ends in a call to another word, so there are lots of oportunities for tail-recusion 20:10:13 optimisation 20:10:15 ("hello".^#)^# 20:10:18 iEhird: ? 20:10:43 stack based esolang requiring quoting and unwrapping to loop! 20:11:05 (...) is a list 20:11:21 with elements "hello", ., etc 20:11:29 ^ is dup 20:11:39 . is output and pop 20:12:14 # is append the list on the top of the stack to the program and pop 20:12:25 so (x)# == x 20:13:15 -!- Hiato has joined. 20:15:44 iEhird: cool 20:15:52 seems familiar though 20:16:21 oh damn underload foes it 20:16:38 ok how about this 20:16:58 # wraps the rest I'd the prog 20:17:13 #abc -> (abc) 20:17:26 wait, no 20:17:44 hm 20:18:27 what about a Lang involving rewriting its own code by virtue of it being concatenrive and lists cab store code 20:20:04 ("hello".$0@$+$0!)$0@$+ 20:20:11 I think that's right 20:20:27 woow 20:20:45 where $ the program as a list 20:20:54 @ nth element 20:21:00 + append 20:21:05 ! delete 20:22:09 nasty 20:22:19 just put the whole program down, and have the output be the code after an illegal operation is executed. The only things you can modify are progra msource 20:22:25 simonrc but fun 20:23:51 ("hello"0\$@)0\$@ 20:24:15 @ get element call func with it 20:24:31 \ quote func 20:24:33 hmmm 20:24:37 * SimonRC goes. 20:25:31 ("hello"!+@0)+@0 20:26:03 hm 20:26:22 hm 20:26:58 I think that a language where the only thing you can do is modify the program itself would be interesting. Then the prog itself is simply read left to right, and each symbol has it's effect 20:27:00 +(!"hello"+@0) 20:27:11 no more stack 20:27:14 as soon as something illegal happens, the whole program exits, printing the current source 20:27:25 next remove @ 20:30:34 if you have a :xyz 20:30:41 x index 20:30:43 y list 20:30:49 z thing 20:31:01 append to y at x z 20:31:10 then that's possible 20:31:10 -!- calamari has quit ("Leaving"). 20:36:40 -!- calamari has joined. 20:37:40 Is daar iemand hier wat verstaan my as ek Afrikaans praat? 20:38:49 ?? 20:39:00 Ek het so gedink. 20:39:14 Come again, preferably in English 20:39:23 I said, "Is there anyone who will understand me if I speak Afrikaans?" 20:39:31 then I said "I though so" :P 20:40:05 I see 20:40:19 I got Afrikaans, but that was about it 20:40:24 lol 20:40:27 I suspected as much 20:40:30 what about 20:40:47 Mih mevin oti ca-usher uni ma-duber Ivrit? 20:40:49 Well, the verstaan is close enough to other germanic languages to understand too 20:40:55 yip 20:41:03 well, Afrikaans is nearly Dutch 20:41:05 For the rest, it will be hard! 20:41:09 :) 20:41:15 and the Hebrew? 20:41:19 no-one? ;) 20:41:27 I once spoke hebrew. 20:41:32 :D 20:41:34 When I was six years old. 20:41:40 Now, I've forgotten most of it. 20:41:45 Aha, well, I see 20:41:53 where are you from, Slereah? 20:41:56 France. 20:41:59 Cool 20:42:04 But my dad taught me. 20:42:04 so let me try: 20:42:15 Ja na par pa Franscois... 20:42:18 or something 20:42:20 cool 20:42:21 puhutteko suomea 20:42:21 Lulz 20:42:29 (= do you speak finnish) 20:42:36 Perkele! 20:42:36 nien 20:42:53 Ngia Kwazi Ogokoolooma Isizulu? 20:43:00 (I can't spell) 20:43:11 (=do you speak zulu?) 20:43:33 I got the zulu part! 20:43:36 Heh. 20:43:39 Hooray :) 20:43:56 there should be lots of "h" s though 20:44:30 Slereah, if you don't mind my asking, where was your dad from? 20:44:41 France as well! 20:44:46 :) 20:44:59 So where did the Hebrew pop out from ;) ? 20:44:59 But my great-grand-father was from Turkey. 20:45:04 Aahh 20:45:05 ok 20:45:09 mystery solved 20:45:10 And his ancestors from Spain. 20:45:15 hrmm 20:45:18 And their ancestors from Judea. 20:45:22 Woow 20:45:23 So that's that. 20:45:28 Ok, I see 20:45:37 nice to know your family history :) 20:45:48 I don't really know mine... 20:45:56 I have three relatives interested in genealogy, so it's not hard 20:46:05 lol, classic :D 20:46:36 Hrmm.. what is Haskel for? 20:46:43 Programming? 20:46:43 can it actually be used as a language? 20:46:47 yeah, yeah 20:46:50 but I mean 20:46:53 being laughed at because you don't use scheme, of course 20:46:53 ofc 20:47:05 should I bother writing anything in it 20:47:09 oh, I see 20:47:09 Oh timotiis, you minx. 20:47:11 right 20:47:11 its one of the best production lands 20:47:21 along with scheme 20:47:23 Hiato : Well, if you bother writing in Brainfuck, does it matter at all? 20:47:32 Slereah: I've been called a lot of things, but I think minx is a first 20:47:34 lol, so very true Slereah 20:48:05 but say, I distribute a prog (script?) in Haskell, is everyone gonna laugh and say :"Go learn a real language"? 20:48:29 compaered to FPC, Ruby etc 20:48:34 nah, it's a good language 20:48:37 I won't, but that's because I'm not in the programming communauty. 20:48:57 I also have a Haskell interpreter, to run the classic Unlambda. 20:49:15 I need to grab the scheme unlambda interpreter one of these days 20:49:20 Roger that timotiis, thanks. Slereah, that's a shame :( 20:49:27 no hiato 20:49:37 -!- iEhird has quit. 20:49:39 lol, wow, plenty of confidence there 20:49:42 ha 20:49:57 -!- iEhird has joined. 20:49:59 guess you can't give him a comeback, because he's not here 20:50:01 lol 20:50:09 yes I am 20:50:09 nevermind 20:50:15 Me, when I program, it has to be really easy or really hard. 20:50:21 Either Python or esolands. 20:50:25 g* 20:50:32 hrmm 20:51:04 Python + me = :( 20:51:04 Ruby + me = :\ 20:51:04 Delphi + me = :) 20:51:04 Eso + me = :D 20:51:16 But, python is awesome! :o 20:51:24 I can't use it though 20:51:31 I keep getting indentation blah blah 20:51:46 I like scheme, never really got into anything with too much syntax to learn 20:51:46 Heh. 20:52:15 scheme+haskell+c for objcode 20:52:18 yum 20:52:27 :) 20:52:31 hm 20:52:44 I should go back to haskell someday 20:53:12 Is that the Mecca of programmers? 20:53:13 incidentally, does anyone know if TeX is turing complete? 20:53:16 maybe 20:53:23 yes it is 20:53:26 I liked the XKCD on lisp, as far as they go 20:53:29 Well, other than Haskell, is there any *interesting* _easy_ (ish) and pleasant language that yanyone can recommend 20:53:36 *anyone 20:53:39 Scheme! 20:53:39 scheme. 20:53:45 cool 20:53:48 will check it out 20:53:52 I don't use many languages. 20:54:00 it's a dialect of lisp, so you'll have to get the hang of the parens 20:54:08 but it's really quite fun to use 20:54:14 O, I'll dig arounf 20:54:15 cool 20:54:17 *around 20:54:27 I've been wanting to move from delphi for a long time.. 20:54:34 but the C group brings me to tears 20:54:35 use my risk scheme compiler! oh wait its not written yet :P 20:54:41 and ruby has no real purpose 20:54:44 ;) 20:54:48 lol 20:54:54 use chicken. for now. 20:54:59 well, I'd like to iEhird 20:55:03 ruby could be worse. I've just never liked anything with more than two types of brackets 20:55:07 but PETA has something to say 20:55:20 Timotiis 20:55:22 I think 20:55:25 * Slereah is eating chicken right now. 20:55:29 heh. 20:55:31 Come and get me, PETA! 20:55:32 Therefore you are? 20:55:40 that how much you like a language, is directly related to the tutiorials you use 20:55:44 Yes. I are eating chicken. 20:55:46 :) 20:55:46 chicken = scheme compiler 20:55:47 lol 20:55:52 Maybe. I got into scheme with SICP 20:55:52 :D 20:56:11 Well, Ruby for me was hilarious because of Why's poignant guide 20:56:49 dangit, keep forgetting I have screen running. It's C-a a C-k to kill the line 20:57:38 :) 20:59:33 woow 20:59:39 Scheme looks daunting 21:00:00 why? 21:00:11 I could give you a basic primer in about 10 mins 21:00:19 yes please 21:00:21 :) 21:00:26 I get the reverse polish notation 21:00:28 but the rest.... 21:00:32 no, that's just polish notation 21:00:41 lol, shows how much I know 21:00:54 rpn is 3 2 +, pn is + 2 3 21:01:01 oh, I see 21:01:04 right o 21:01:09 rpn? 21:01:14 about that primer... 21:01:17 reverse polish notation 21:01:23 Oh. 21:02:00 hiato 21:02:02 okay... 21:02:05 let me see 21:02:14 what part is hard 21:02:18 yes iEhird 21:02:31 well, the whole thing in the wikipedia entry 21:02:38 syntax of define: (define (name arg1 arg2 ... argn) ) 21:02:38 (define a 10) (define eval-aplus2 (delay (+ a 2))) (define a 20) (force eval-aplus2) => 22 21:02:49 ok 21:02:51 roger 21:03:19 hiato 21:03:26 yes iEhird 21:03:28 (define (square x) (* x x)) 21:03:32 that should make sense, yes? 21:03:34 (lambda (args) code ) 21:03:34 yes 21:03:38 crystal clear 21:03:50 that square syntax 21:03:51 ooh, ok 21:03:54 yes 21:03:55 us short for 21:04:12 (define square (lambda (x) ... 21:04:20 aha 21:04:21 well 21:04:23 what's wrong with this one?, (define (fib n) (+ (fib (- n 1) (- n 2)))) 21:04:36 as in synatx 21:04:38 or logic? 21:04:40 logic 21:04:45 timoriis 21:04:46 well thta's obious 21:04:51 silly 21:04:54 :P 21:05:00 intentional, I promise 21:05:15 1 argument is taken for fib for starters, yet 2 are provided 21:05:16 then 21:05:21 its gonna go negative 21:05:26 very quickly 21:05:28 needs to be 21:05:35 no, the arguments aren't a problem. the lack of a test is a problem 21:05:48 timoriis wrong 21:05:53 (fib a b) 21:06:12 lawl yuu dum 21:06:13 generates the nth fib. what's wrong with that, apart from the fact it never stops computing? 21:06:32 hrmm 21:06:35 well, and it's tree recursive, so it's hopelessly ineffiecient 21:06:38 well 21:06:44 dude 21:06:50 read your code 21:06:52 I don't see it 21:06:55 I have, I wrote it 21:07:05 Hiato: doesn't test for 0 or the like 21:07:09 you give fib two args 21:07:19 Oh, ok I see 21:07:21 ah, shoot. typo 21:07:24 well I said it would go negative 21:07:27 lawl 21:07:34 (define (fib n) (+ (fib (- n 1)) (fib (- n 2)))) 21:07:35 (11:05:36 PM) Hiato: 1 argument is taken for fib for starters, yet 2 are provided 21:07:43 that's now correctly wrong 21:07:43 ;) 21:07:59 -!- iEhird has quit. 21:08:12 so if you feed in 0 21:08:18 -!- iEhird has joined. 21:08:20 its gonna give the fib's in negative 21:08:26 ? 21:09:00 yeah 21:09:05 cool 21:09:12 it never tests for reaching the bottom of the recursion 21:09:13 I grasp it :) 21:09:20 yeah 21:09:27 (11:05:42 PM) Hiato: its gonna go negative 21:09:33 hiato 21:09:33 Hooray ;) 21:09:36 suggestion 21:09:38 yes iEhird 21:09:51 read the little sxhener 21:09:55 sxhener 21:09:59 yes, read that 21:10:04 schemer 21:10:05 (define (fib n) 21:10:05 (if (zero? n) 0 21:10:05 (if (= n 1) 1 21:10:06 (+ (fib (- n 1)) (fib (- n 2)))))) 21:10:09 that's better 21:10:32 timoriis! remember tls? use cond 21:10:33 although it would break on a negative input 21:10:46 I much prefer if when it's a small statement like that 21:10:54 ok, I see now the structure of scheme 21:11:02 nested ifs are bad 21:11:03 but, where does a prgramme enter etc 21:11:13 hiato anywhere 21:11:15 (define (fib n) 21:11:16 (cond 21:11:16 ((zero? n) 0) 21:11:16 ((= n 1) 1) 21:11:16 (else (+ (fib (- n 1)) (fib (- n 2)))))) 21:11:22 and does (if (zero? n) 0 return zero? 21:11:30 you just put your code there 21:11:32 if n was 0, it does 21:11:39 cool 21:11:43 mostly 21:11:54 you interact with scheme via a 21:11:55 mostly? 21:11:58 repl. 21:12:02 zero? n returns #t if n was 0, so the if takes the first option, which was 0 21:12:14 you enter an expression it shows the results 21:12:26 oh, I see 21:12:34 iEhird, so like a shell 21:12:38 you do (load "file") to load some code you wrote 21:12:48 or just paste it in 21:12:48 cool, I get it 21:12:51 ok 21:12:54 when you're done developing that iteration 21:13:03 well, now I see the light ;] 21:13:03 then you use a batch compiler 21:13:12 and produce an executable 21:13:17 w00t 21:13:20 ;) 21:13:26 I like Scheme already 21:13:28 iEhird: happier with this then? 21:13:29 (define (fib n) 21:13:29 (if (or (zero? n) (= n 1)) 21:13:29 n 21:13:30 (+ (fib (- n 1)) (fib (- n 2))))) 21:13:39 there you go, properly written with a single if 21:13:42 and is functional stuff actually built with it? 21:13:47 it is functional 21:13:53 meh 21:13:55 I meant 21:13:55 although taht wasn't quite your question 21:14:04 it is imperative with a functional core 21:14:05 fully functional programmes 21:14:06 * Slereah is writing the help file for his pseudo-unlambda. 21:14:11 It's full of bird names. 21:14:14 (cool) 21:14:18 there is a set! func 21:14:23 ( :) ) 21:14:25 da, so it's not quite pure 21:14:25 meh 21:14:30 no no 21:14:33 I mean 21:14:34 but it's pretty good, and still generally usable for things 21:14:43 oh, what is it used for? 21:14:48 has Bob written stuff in Scheme 21:14:54 that you and I use 21:14:55 etc etc 21:15:03 yes, essentially timotiis 21:15:41 it's occasionally an extension language. I think the gimp is scripted in scheme. guile is a scheme dialect. you can do some pretty neat web stuff with it as well iirc, and there's an implementation for shell scripting 21:15:42 brb 21:15:47 k 21:16:00 awesome 21:16:00 but you probably don't use something written in it daily 21:16:06 understood 21:17:07 shceme vs haskell (because I like languages that can do [99,98..0] ) 21:17:10 which one? 21:17:46 http://99-bottles-of-beer.net/language-scheme-582.html 21:17:50 http://99-bottles-of-beer.net/language-haskell-1070.html 21:20:09 your call, really. I'd tend to rate scheme as easier to learn, but that's my opinion 21:20:31 ok, thanks 21:20:39 I'm just interested 21:20:44 because they both look the part 21:20:49 and both are unique 21:21:01 Does this work as an SKI-unlambda translator? http://membres.lycos.fr/bewulf/Russell/ski-unlambda.py 21:22:31 -!- Jontte has quit (Remote closed the connection). 21:22:35 I'm actually half-working on writing an infix notation system for scheme, including operator precedence :) 21:23:09 -!- Jontte has joined. 21:23:15 why? 21:23:20 for the hell of it 21:25:09 it's an interesting project to work on, really 21:25:22 and some of the functions I'm building as a part of it are quite useful 21:34:17 -!- RedDak has joined. 21:41:11 The iszero function seems to go okay through the Abstractor. 21:42:13 Why won't pred or succ go through! 21:44:18 Hiato: i got that. 21:44:18 that afrikaans 21:44:29 really 21:44:31 awesome 21:44:55 As ek nou Afrikaans pratt, sal net ons dit verstaan! 21:45:13 Praat jy Hollandse of Deutsch? 21:45:19 Hiato: "because they both look the part" -- What part? 21:45:55 by "the part" I mean "interesting, new to my eyes and different from everything I have seen thus far" 21:45:58 "Mih mevin oti ca-usher uni ma-duber Ivrit?" <<< this one i have no idea about, though, perhaps "i opine"? 21:45:58 :P 21:46:22 lol, well oklopol 21:46:26 ah right, I agree.. they are very unique 21:46:34 hebrew is next to impossible to write out in enlgihs letters 21:46:36 *English 21:46:54 yes faxathisia, even though I finally went with Haskell 21:47:04 because of lazy evalutaion and less brackets 21:47:23 should learn both though 21:47:51 yeah, I will eventually, but first I want to understand functional programming, and what better way to do it then Haskell 21:47:58 scheme, of course 21:47:59 then I can move onto scheme 21:48:06 I don't think there is a better place to find out what the hell call-with-current-continuation does than scheme 21:48:09 well, I see Haskell as being easier 21:48:18 true 21:48:26 though haskell is just, well I don't know really 21:48:35 I just think it looks easier to learn 21:49:30 faxathisia: I use scheme, and I still haven't figured out what it does 21:49:54 not properly, anyway 21:49:56 I have a few ideas 21:50:31 -!- ehird` has joined. 21:50:54 haha 21:51:09 anyhow. 21:51:21 ah, on a better machine at last? 21:51:57 Faxathisia: Did you ever come up with an Esolang in the end, or did the zoo prove useless? 21:52:17 well I kind of just watched Dune 21:52:20 :( 21:52:28 * faxathisia is going to try agian 21:52:30 oh 21:52:35 yes, I like that idea 21:52:47 Dune Made a Dune esolang? 21:53:05 lol, nope 21:53:08 "More spice required" 21:53:14 :) 21:53:45 Hm. 21:53:50 A D&D esolang. 21:54:03 that would be cool 21:54:08 Hiato: did it have something to do with "i opine"? :P 21:54:15 Variables would be in your backpack 21:54:19 though I think it is in the work in progress thing 21:54:21 fucking 40 minutes of logs 21:54:27 what is I opine 21:54:28 lol 21:54:43 Let's see if it is! 21:54:45 that thingie i tried to translate earlier 21:55:20 the hebrew, I understand that part, but what is "i opine" ? 21:55:22 There's one based on "a roguelike game" 21:55:30 there we go Slereah 21:55:52 I liek the idea. 21:56:02 Knock yourself ou 21:56:07 *out 21:56:07 :P 21:56:20 anyone: what is "i opine" ? 21:56:22 I already have trouble parsing minimalist languages. 21:56:33 lol, swithc to Ruby of FPC 21:56:41 then you just do case when/if 21:56:44 very easy 21:56:46 I'm not sure I could parse something with actual text. 21:56:50 lol 21:57:10 check out the Full 0 source, and you'll see it's just one big case statement 21:57:21 I will gladly write the interpreter though 21:57:25 if you want 21:57:35 oklopol 21:57:38 Well, I still need to finish my unlambda thingy. 21:57:41 don't leave me hanging 21:57:44 Maybe later. 21:57:46 sure Slereah 21:57:47 cool 21:58:32 oklopol, the Hebrew meant "Who will understand me when I speak Hebrew" 21:58:44 that was what you said first 21:58:54 yes 21:59:03 oh, afrikaans, then same in hebrew? 21:59:04 Maybe numbers could be, liek, a LEVEL N SWORD 21:59:21 yes, I did say the same thing in as many languages as I couldoklopol :P 21:59:25 "I hit input with my LEVEL N SWORD" 21:59:31 slereah, I like :) 21:59:42 perhaps, casting spell x calls the function 21:59:48 Yes! 21:59:48 and the mana is the argument 21:59:50 :P 22:00:02 timotiis: ? 22:00:08 and you need to move to an in to declare vars 22:00:10 or something 22:00:11 :P 22:00:20 *inn 22:00:22 Well, I think the argument would be more of a "cast spell on arg" 22:00:27 true 22:00:30 fair enough 22:00:37 and talking to an NPC would be output 22:00:42 or input 22:00:44 depending 22:00:46 puhutteko suomea? pratar ni svenska? sprechen sie deutsch? do you speak english? xu do tavla la lojban, plus a syntax error in the lojban one prolly. 22:01:00 wooow 22:01:06 Swedish!! :) 22:01:10 Input number : "YOU RECEIVE A LEVEL N SWORD!" 22:01:12 Yay! 22:01:12 heh 22:01:14 spechten? 22:01:15 surely 22:01:23 Although it would suck if your old word was better! 22:01:32 lol, yip 22:01:33 but you don't refuse a gift from the MJ! 22:01:40 oh yeah 22:01:41 err, GM. 22:01:47 sorry, i make no errors. 22:01:53 :) 22:01:53 -!- calamari has quit (Read error: 104 (Connection reset by peer)). 22:01:55 no worries 22:02:07 I don't even speak German, but I knew that much ;) 22:02:11 ... 22:02:22 i don't think you understood me :) 22:02:24 that it was german 22:02:29 I understood you 22:02:32 you were right 22:02:35 and I was wrong 22:02:36 A loop could be casting a spell on a monster with n health point, until he's dead! :o 22:02:42 but I recognised it was german 22:02:53 oh, i guess i misunderstood you too, a bit :) 22:02:55 that's what I was saying 22:02:59 Although you'd have to specify the damage of the spell in the function. 22:03:05 or then just i misunderstood anything. 22:03:06 a mutual misunderstanding :) 22:03:08 heh 22:03:24 i'll be fullscreen now, or i'll never get anything eaten... 22:03:24 -> 22:03:30 int Check_Stack_Grows_Down () { 22:03:30 char foo; 22:03:30 return &foo < stkbase; 22:03:30 } 22:03:30 Yes, though what would that mean Slereag 22:03:32 clever, clever 22:03:35 *h 22:03:40 :) 22:03:49 oklopol ^ 22:03:50 What would what mean? 22:03:58 damage of the spell in the function. 22:04:06 Well, for instance. 22:04:11 You have this monster. 22:04:15 He has 99 HP! 22:04:20 gasp 22:04:22 Then, you hit it with magic missile 22:04:30 With 1 damage point. 22:04:35 Until he's dead. 22:04:37 (cough someones been playing NWN ;) ) 22:04:44 I see, but why 22:04:45 Actually, no. 22:04:51 there needs to be incentive 22:04:55 we need to say that 22:04:56 XP 22:04:57 That way, the function is used 99 times! 22:05:03 ahahaha 22:05:08 that's brilliant 22:05:10 :D 22:05:14 recursion 22:05:19 so you can play as the DM 22:05:22 and summon a monster 22:05:22 Well, maybe the conclusion of the program would be "YOU WIN A MILLION XP" 22:05:26 then switch to hero 22:05:31 lol 22:05:31 Yes, the user is the DM. 22:05:34 then when hero 22:05:41 you cast spell x for n times 22:05:43 wicked 22:05:55 hrmm 22:05:56 He summons input monsters, and random number monster encounter! 22:06:03 Oh yeah! 22:06:09 And output would be talk to DM 22:06:12 xp = buy new functions premade 22:06:16 yeah 22:06:24 so 10 xp = fibonacci etc 22:06:35 or not actually.... 22:06:40 Heh. Maybe not. 22:06:49 The idea would be to have it usable. 22:06:56 true 22:06:59 Risk will be suuch a fast compiler :P 22:07:07 so where do NPC's fit in 22:07:10 :) 22:07:20 why bother talking 22:07:22 to them 22:07:25 I'm not sure so far. 22:07:28 aha 22:07:31 conditional 22:07:35 ooh 22:07:38 say you have stas 22:07:53 and you can only talk to an NPC if impress>10 and muscle>15 etc 22:08:00 so you can do if's like that :D 22:08:03 *stats 22:08:18 Well, if variables are objects, I guess conditional would be if you possess the object. 22:08:23 meh 22:08:27 I like the stats idea 22:08:28 For instance, a boolean could be a key to some dungeon door. 22:08:45 but okay 22:08:47 sure 22:08:51 it's you lang ;) 22:08:59 It's just an idea thrown around. 22:09:07 Not sure I will actually do something with it. 22:09:27 wait so programming is like you use a level editor 22:09:29 But it's true that it would be better to include NPC's, instead of just monster grinding. 22:09:31 then some AI plays your game? 22:09:43 well, kinda 22:09:51 I was thinking that you can be both DM 22:09:53 and Hero 22:09:57 to make it easier 22:10:01 but I suppose 22:10:08 that if we make it imperitive 22:10:12 then the hero 22:10:18 would just follow instructions 22:10:22 Maybe the input could be of two kinds. 22:10:24 and react acrdingly 22:10:33 *accordingly 22:10:44 Monster and object variables from the DM, and actions from the hero 22:10:50 yeah 22:10:52 there we go 22:10:53 :) 22:11:14 and it needs flashy 2D ascii graphics :P 22:11:17 like @ and # 22:11:19 ;) 22:11:29 The general words "monster" and "object" would be a cue for input 22:11:38 "A monster appear!" 22:11:53 hrmm 22:11:59 sounds like a script to me 22:12:02 While specific monsters would be values without requiring input 22:12:05 I imagined it differently 22:12:18 yes, that would be cool 22:12:26 each monster is the value of it's XP 22:12:30 and thus 22:12:34 killing it 22:12:48 adds it to the currently equipped item/variable 22:12:59 and casting on it casuses a loop 22:13:05 for it's Hp number of times 22:13:14 I like where this is going :) 22:13:14 Something like that. 22:13:33 But what would be strings? 22:13:45 Magic books or something? 22:13:56 I always carry a bunch of these in Oblivion. 22:13:57 yeah tomes of knowledge 22:14:00 Could you actually cannibalize an existing rouge-like? and use that for computing 22:14:01 :) 22:14:13 lol, I like 22:14:30 Perhaps, lists would be quests 22:14:35 :D 22:14:36 and Strings would be boks/tomes 22:14:48 and spell books would list the functions avaliable 22:14:49 :) 22:14:58 *books 22:15:05 "You find item n on your quest list" 22:15:09 And bam, you can use it 22:15:17 I like 22:15:33 or perhaps, quest lists could also be arrays 22:15:38 but yeah, it works anywho 22:15:42 a premature exit function would be when you die! :O 22:15:48 "You are eaten by a grue" 22:15:53 Ooh, sucks 22:15:55 :) 22:15:59 yes, though 22:16:02 that would be nice 22:16:11 and portals would return from a function 22:16:17 or quest 22:16:33 ? 22:16:36 call-with-current-continuation is when you go to a save point? 22:16:49 I don't know what that is, but sure, why not. 22:16:50 :D, but I like 22:17:13 * faxathisia is not sure if hat is close enough semantically 22:17:18 static main void would be the world (naah, just kidding) 22:18:00 Maybe you can include sentences without any program-specific meaning, to avoid doing a linear adventure. 22:18:11 Bandits would be the "garbage collectors" or variable destroyers as they raid unused variables 22:18:17 faxathisia: i'll explain call with current continuation 22:18:21 Heh. 22:18:21 yes, that would be nice 22:18:42 Say, you can only have x variables on you 22:18:48 so you go back through a portal 22:18:53 to you private stash 22:18:58 and exchange variables 22:19:06 -!- calamari has joined. 22:19:13 (call/cc f) copies the call stack, and constructs a function k. It then does (f k). When k is called with the argument x, the saved call stack is reinstated and the top call - that is, call/cc - returns x 22:19:17 Well, maybe your stash could be the other players. 22:19:33 and we could have the "Gardens of Negativity" from within which, if you drink the water, it applies NOT to all you equipped variables 22:19:33 "Take this, my back is killing me!" 22:19:41 alternatively: in (+ 2 (* 3 4) 5), when you get to (* 3 4), your continuation is (+ 2 [_] 5) 22:19:46 and the hole gets fileld in by the result 22:19:47 "I am encumbered, and cannot move!" 22:19:58 (call/cc f) calls f with a function that takes an argument to fill the hole 22:20:01 "Backpack overflow!" 22:20:15 lol :) 22:20:17 awesome 22:20:25 I Like ver much 22:20:27 :D 22:20:33 *y 22:20:50 Anyway, sorry to cut the "brainstorm" short 22:20:55 it's been fun 22:21:03 but its late here in GMT+2 land 22:21:09 Okay, bye. 22:21:14 so, I'll see you guys some other time 22:21:16 cheers 22:21:25 -!- Hiato has quit ("Leaving."). 22:26:54 I should really try to solve my lazy unlambda's problem, but now, there's no way I can think about it until I have some ideas written down. 22:27:26 "Dungeons and Data" 22:27:42 * ehird` is reinventing Foobrain with multiple files because it was getting bloated 22:27:45 and using Parsec 22:27:57 who wants to help make a brainfuck compiler that in the end will probably do the most optimizations evarr? :P 22:27:59 Parsecs? That's going to be a large program! 22:28:08 -!- elsa22 has joined. 22:28:13 I can't write machine code. 22:28:19 I got a note from my doctor! 22:29:21 faxathisia: getting to a save point would be calling a continuation, call/cc would be saving 22:30:22 -!- elsa22 has quit (Client Quit). 22:32:02 -!- Arrogant has joined. 22:35:53 no-one? :-) 22:36:10 Nope 22:36:50 -!- oerjan has joined. 22:37:04 It is far more exciting to be involved in a glorious medieval fantastic adventure, I guess! 22:37:13 * faxathisia doesn't know what optimizations you can do 22:37:16 (other than trivial stuff) 22:37:29 seems a very hard language to do optimizations with 22:37:54 nahh 22:38:03 there's even a compiler that optimizes 'if' algorithms 22:38:08 with haskells pattern matching! 22:38:12 it'll be easy! 22:41:30 wait 22:41:40 I was assuming Brainfuck -> Brainfuck 22:41:51 but you actually meant something else didn' tyou? 22:42:05 yes 22:42:05 Brainfuck -> C 22:45:06 ehird` and his crazy best-ever brainfuck compilers :-) 22:45:18 same one all the time 22:45:20 :P 22:45:22 heh 22:45:41 have you read egobf? 22:45:42 The important thing is that no one notice! 22:50:01 egobf is fun :P 22:50:43 Hm. What would be a good way to define a real variable in Dungeons and Datas? 22:51:00 drop some item in a specific place? 22:51:16 Yes, but what kind of item! 22:51:45 Integers are either n xp with some weapon including the name of the variable, or just some level n weapon. 22:52:33 Booleans are keys. 22:52:45 Strings are books. 23:14:30 I think I will have to make more than one process for loops. 23:20:22 -!- timotiis has quit ("leaving"). 23:27:46 oerjan: you there? 23:28:18 yep, just posting an interpretation of the obfuscated Perl code on the wiki 23:28:35 *ahem* 23:29:00 X_X 23:29:02 ANYWAY. 23:29:13 Doest though know the `Parsec'? 23:29:23 Indeed I do. 23:30:13 how doth my parser `infini-loop'?! 23:30:24 exampl~e: 23:31:14 http://hpaste.org/4818 23:32:30 :S 23:32:42 maybe i need a terminating case but i think it's more than that 23:32:51 no that's it 23:33:03 ok 23:33:07 so what would that be? :) 23:33:09 brainfuck = many oneIns "program" 23:33:58 you should browse the combinators in the parsec manual 23:34:13 possibly! :-) 23:34:27 my brain was thinking many (oneOf "abc") 23:34:30 instead of many PARSER 23:34:31 -!- RedDak has quit (Remote closed the connection). 23:34:42 aha, oerjan 23:34:44 you are wrong 23:34:48 oneIns returns [BF] 23:34:51 wait 23:34:53 that's unneeded 23:34:56 -!- Arrogant has quit ("Leaving"). 23:35:21 indeed 23:36:27 the <|> oneIns is wrong 23:36:48 kay 23:36:48 what should it be 23:37:03 or wait 23:37:30 the thing is, in Parsec you nearly always want to skip whiteSpace and comments before starting a real parser 23:37:45 OK 23:37:49 elaborate 23:37:50 :P 23:38:23 because of the way Parsec works, you don't want to have to back up more than necessary 23:39:26 put another way, your parser as written has the same problem of ] or eof following comments as your hand-written one had at one point 23:39:55 okay. 23:40:05 so how do i do skipping? 23:40:09 because you are entering oneIns before you know that there _is_ a non-comment operation available 23:40:11 i assume there's a combinator for it 23:40:22 -!- sebbu has joined. 23:40:29 skipMany (noneOf "[]<>+-.,") 23:41:09 in oneIns? 23:41:32 why not do like: map (fromJust . lookup [('+',Add 1),...] $ filter (any "[]<>+-,.") $ text 23:41:41 or whatever the syntax is 23:41:48 faxathisia: plz give me the [ and ] entries. 23:41:50 at the beginning, and after every operator 23:41:53 kthx 23:41:56 -!- iEhird_ has joined. 23:42:03 oh right I get you 23:42:05 oerjan: hm, example? 23:42:14 faxathisia: that will lose position information 23:42:49 like the lexeme parsers in Parsec 23:42:54 oerjan: perl interpretation obfuscated posting? 23:43:07 oklopol: my last wiki post 23:43:29 someone added Perl to the wiki 23:43:35 :D 23:43:47 arguably justified 23:43:49 and i was inspired 23:44:59 that your interpretation? 23:45:14 sorry, i'm bad at using the fancy wiki features... 23:45:32 ehird`: i use to define a function op c = char c >> skipSpace >> return c or equivalent 23:45:46 hm 23:45:48 probably, you did say something about interpretation... 23:45:55 oerjan: where would that be used, though? 23:45:57 oneIns? 23:45:58 yes i added that section 23:46:11 ehird`: also loop 23:46:30 everywhere you use char, since in brainfuck every character can be followed by comments 23:46:36 i think that's a pretty perfect description of what the code does 23:47:02 anyone happen to know what "continuation" is in finnish :-) 23:47:16 i'm not even sure of norwegian... 23:47:17 i use char in loop 23:47:19 -!- iEhird_ has quit (Remote closed the connection). 23:47:21 but oneOf in bfIns 23:47:23 :-) 23:47:40 oh right oneOf 23:47:51 then you want the skip function right after oneOf 23:47:57 i've tried searching in a few dictionaries... unfortunately it seems these web dictionaries are made by java queers who don't know what a continuation is :) 23:48:22 also, skip at the beginning of program 23:48:22 * oklopol apologises to any java queer residing here 23:48:44 oerjan: so what would the oneOf become? 23:49:00 the oneOf is as before 23:49:17 but on the next line, add your skip operation 23:49:48 -!- iEhird has quit (Remote closed the connection). 23:49:55 hm it may not actually be worth having an op that takes an argument 23:50:55 just make a skipComment function 23:51:31 add it (1) after char ']' (2) after oneOf (3) at the beginning of brainFuck 23:51:57 skipComment :: ? 23:52:06 skipComment :: Parser () 23:52:49 oneIns surely has to change? 23:52:49 after char '[' is not necessarily because it passes straight to brainfuck which already starts with one 23:53:07 yes, add one as a second line 23:53:26 ? 23:53:45 you want to do skipComment right after you do oneOf 23:54:32 oh btw the return's can be moved outside the case 23:54:37 it doesn't handle unmatched ]s now :( 23:54:39 just put $ between 23:55:51 hm? surely the parser would stop with an error if oneIns hits ] without being in ... oh right 23:56:13 you want your main parser to do an eof after calling brainfuck 23:56:40 i..see 23:56:44 explainerate :P 23:57:14 brainfuck just reads up until eof or ], it doesn't raise any error itself 23:57:26 so its caller must take care of the check 23:57:37 ok 23:57:38 esplain 23:57:40 :P 23:57:42 :P 23:58:28 mainParser = do prog <- brainfuck; eof; return prog 23:58:29 -!- sebbu2 has quit (Connection timed out).