00:03:20 someone come up with a run length encoding of brainfuck 00:03:24 that's still brainfuck 00:03:35 ie a brainfuck->brainfuck transformation 00:03:48 isn't that er, impossible 00:03:54 dunno 00:04:03 you might have to embed an interpreter 00:04:12 what would be cool is just a BF->BF compiler 00:04:19 i.e. implementing it like you would a BF->C compiler 00:04:36 you could call it pfsdbfs (Program For Slowing Down Brainfuck Sources) 00:04:50 it's been done 00:04:55 seriously? 00:04:56 ohmigawd 00:04:59 show me 00:05:18 maybe 00:05:43 DOOO EEET 00:06:02 you can just do ${code to load program onto tape}${bf-in-bf interpreter} 00:06:15 no, that's not what i mean 00:06:21 yes it is 00:06:26 that's like writing a bf->c program that does "bf("...")" 00:06:30 and an implementation of bf 00:06:37 yeah 00:06:46 which isn't what i mean 00:06:56 yes it is 00:07:04 no it isn't, stop pretending you know what my mind is thinking 00:07:46 here's a compiler: sed 's/x/x/' 00:07:57 sigh 00:08:11 you can't compile x->x without some restrictions on the target language 00:08:28 x->x' where x' is restricted x 00:08:35 BF->BF, without a 1-1 translation or simple variant thereof, and without embedding an interpreter 00:08:52 all bf compilers are 1-1 translations 00:09:04 like, use GregorR's tape/stack thingy (i.e. E1E1E1 where E is an element) for the tape 00:09:15 it's very simple what i'm explaining 00:09:24 i know what you mean 00:09:33 so you're just arguing for the sake 00:09:37 no 00:09:58 whatever 00:10:09 write a bf->unlambda and an unlambda->bf 00:10:14 there you have it 00:10:21 sigh 00:10:29 what? 00:10:41 that would do it 00:11:22 in an incredibly convoluted fashion 00:11:23 :P 00:11:39 -!- oerjan has joined. 00:12:27 in an incredibly increasing code size fashion 00:12:30 which is what you want 00:12:48 i kind of meant something simple 00:12:49 i mean 00:12:53 take the BF->C paradigm 00:12:57 and apply it but replacing C with BF 00:13:08 bf->c is nothing, 1-1 00:13:40 actually 00:13:47 GregorR: how good is c2bf? 00:13:53 bsmntbombdood: it is NOT 1 to 1 00:13:57 because you allocate an array on the stack 00:14:02 char bf[3424234] 00:14:07 yes it is 00:14:12 the idea is to do that, in BF 00:14:21 bsmntbombdood: Not as bad as getting shot, not as good as fine champagne. 00:15:01 can it compile the output of a bc->c compiler? 00:15:29 that's not really the same but ok :P 00:15:34 arrays, pointer manipulation, i/o? 00:15:36 GregorR: how does bf2c handle libs? 00:15:44 c2bf 00:15:52 yes yes 00:15:55 what does it do with, e.g. malloc? 00:16:02 ... what about if you tried to use sockets? you know. 00:16:12 It has no libc :P 00:16:29 so can you not malloc? how does printf work? 00:16:42 printf can be implemented in C 00:16:59 given write_char or somesuch 00:17:06 and varargs :P 00:17:07 is there a write_char? :) 00:17:08 presumably 00:17:15 There is a putchar. 00:17:22 what about malloc 00:17:23 It's something like: asm("."); :P 00:17:25 -!- cpressey has joined. 00:17:28 is there a way to do tape manipulation? 00:17:32 if so i could implement malloc i guess 00:17:40 actually 00:17:46 it'd be a lot easier if you could access the tape as an infinite pointer 00:17:48 well 00:17:48 given sbrk you can implement malloc in C 00:17:54 the space of tape not being used by c2bf 00:17:58 i.e. no-mans-land 00:18:08 because, a basic allocator is really simple of course 00:18:23 * GregorR reappears. 00:18:43 It divides the tape using that whatsisname's hotel rooms problem. 00:18:50 (Infinite hotel rooms, all full, add more people) 00:19:11 malloc without free: int top = 0; void *malloc(int size) { void *res = no_mans_land[top]; top += size; return res; } 00:19:17 with free requires a bit more, but meh 00:19:30 assuming no_mans_land is c2bf's no-mans-land (i.e. tape not used for c2bf stuff) 00:19:38 you don't need free when compiling to bf... 00:19:49 * oerjan wonders if there are any bf-hosted languages on at least PEBBLE's level, or if it will be the first when ehird` is finished... 00:20:04 oerjan: bf hosted = compiler in BF? 00:20:05 if so, i doubt it 00:20:11 pebble.bfm will probably be the first 00:20:12 compiler + result 00:20:40 i.e. you need essentially nothing more than a bf interpreter to use it 00:21:49 i guess i mean, the compiler is self-hosting + compiles to bf 00:22:32 GregorR: is there a no_mans_land? :) 00:23:02 Sort of ... not really. 00:23:17 How could I get one? :P 00:23:19 Well, I mean 00:23:25 how can I get some unused space in c2bf? 00:23:27 or rather 00:23:28 any space 00:23:31 that isn't reserved for stack etc 00:23:39 Once a libc is implemented, you'd just up the sbrk. 00:23:45 In short: malloc. 00:23:54 Right now, you don't, C2BF is far from far from far from complete :P 00:24:20 So right now any memory allocation is impossible in c2bf 00:24:22 Right? 00:24:38 Wrong, but you'd have to roll-your-own sbrk. 00:24:47 Right now, the heap is your no-mans-land :P 00:24:53 It's just reserved for the heap in the future. 00:24:54 Ok. 00:24:57 Bah 00:24:58 Ok :P 00:25:04 So, nothing uses the heap right now. correct? 00:25:12 Correct. 00:25:24 Can I programmatically access it? 00:25:26 That is, as a pointer 00:26:17 i.e. can you write c2bf malloc in the C part? 00:26:22 oerjan: obviously 00:26:26 Yes. 00:26:26 but can you, GregorR? :) 00:26:28 Woot 00:26:28 how 00:26:42 You don't want to hear this, it's so hacky X-D 00:26:45 OK, here 'tis: 00:26:57 I just want to know how to get at the heap, with c2bf 00:26:57 :) 00:27:05 Traditional (correct) C: Heap is in one place, stack is in another. 00:27:16 c2bf... intertwined? 00:27:17 C2BF: Heap and stack are in the same place, all pointer math is modulo-2. 00:27:23 Aieeeeeeeeeeeeeeeeee! 00:27:31 SO, the heap is 1, 3, 5, 7, 9, 11, etc. 00:27:33 Ok, while I'm having a seizure, tell me how to programmatically mess with the heap :P 00:27:35 Ahh 00:27:36 Ok 00:27:41 So just cast 'em to a pointer? 00:27:57 So (void *)5 = third heap entry? 00:27:59 Yeah - but no guarantees it'll actually work, I don't really remember how complete C2BF is :P 00:28:58 void *top = (void *)0; void *malloc(int amount) { void *ptr = top; top += amount*2; return ptr; } 00:29:01 And why are you so interested in this? 00:29:21 GregorR: Run bf2c translator on brainfuck code, use c2bf to get significantly larger, slower program 00:29:27 Remember what I said? All pointer math is modulo-2. 00:29:43 Oh. 00:29:51 Ok, that makes things harder 00:29:52 :P 00:29:53 It's like how: int *a = &foo; a += 1; // a is increased by (e.g.) 4 00:30:00 No, it makes things easier. 00:30:03 Oh 00:30:07 I just need top += amount then 00:30:12 Yuh 00:30:20 i don't think modulo-2 is the right word 00:30:22 void *top = (void *)0; void *malloc(int amount) { void *ptr = top; top += amount; return ptr; } 00:30:27 oerjan: yeah, i got confused by that 00:30:37 GregorR: does c2bf work in cygwin? 00:30:37 Oh, it isn't, hahah X-D 00:30:45 ehird`: Idonno, probably? 00:30:53 modulo-2 would mean there are two cells of memory :P 00:30:59 indeed 00:31:12 So 00:31:15 svn.sourceforge.net is down 00:31:17 Who wants to give me c2bf 00:31:35 I don't think I even have a copy on my home computer :P 00:31:49 Who else wants to :P 00:32:08 it's not in the file archive? 00:32:18 No, there are no releases. 00:33:08 And, it could use a rewrite - the method by which I did this nasty stack/heap trick needs to be replaced :) 00:33:28 I JUST WANT A TAR :( 00:33:37 I JUST WANT TO TAR AND FEATHER YOU 00:35:24 GregorR: if stack and heap are in the same place, why not just allocate (chunks of) the stack, on the heap? 00:35:37 makes push and pop a bit more involved i suppose 00:35:49 anyone? :( 00:36:01 Because then you would have either a fixed stack size, or have to maintain multiple stacks >_> 00:36:11 * cpressey gives ehird` Jeffry's BASIC-to-Brainfuck compiler instead 00:36:33 GregorR: I was thinking, store it in chunks, with the chunks linked together... when you run out of stack space in one chunk, allocate another 00:36:34 but i want c2bf 00:36:34 :( 00:39:12 cpressey: Hence multiple stacks. 00:39:38 GregorR: ok -- i thought you meant multiple seperate stacks 00:39:54 instead of what i would call just one stack, broken up :) 00:39:59 Oh, no, just multiple "physical" stacks for one "virtual" stack :) 00:40:01 :| 00:40:30 wow, c2bf is hex for 48955 00:40:55 so? 00:41:05 anyone have c2bf? 00:41:09 Wow, that's ... a number with no real significance :P 00:41:19 ehird`: I do believe you'll find that nobody has it :) 00:41:24 GregorR: why =( 00:41:29 bsmntbombdood: i did a web search for c2bf and got hex values :) 00:41:33 ehird`: Because it's old and crap? :P 00:41:40 but it's fun 00:41:58 Sure, but until this day nobody has mentioned it for months and months and months :P 00:42:05 Therefore I'm not particularly inclined to finish it. 00:42:26 GregorR: finish it! 00:42:38 FINISH YOUR FACE 00:42:39 (burn) 00:42:42 i've always found c2bf interesting 00:42:45 i just want a copy 00:42:48 :P 00:42:54 * cpressey wants a hs2bf 00:43:06 that will NEVER happen 00:43:08 i guarantee it 00:43:14 there's already hs2c 00:43:14 if that ever happens, i will pay you £100 00:43:18 Probably easier to do hs2c and c2buf :) 00:43:19 bsmntbombdood: Fuck. 00:43:23 Erm, c2bf ... 00:43:25 so when GregorR finishes c2bf... 00:43:27 Uh, I was just joking <.< 00:43:32 Hashahaha 00:43:37 Damn it, typos X_X 00:53:32 doing a garbage collected language with lots of pointer indirection in bf will _not_ be pretty. 00:54:04 oerjan: like said above there's a hs2c 00:54:20 but beh 00:54:22 i want c2bf 01:00:27 oerjan: you don't _have_ to implement garbage collection 01:02:10 running haskell without garbage collection will _not_ be pretty, either. 01:02:43 who cares, it's in brainfuck anyway 01:04:28 "The simplest garbage collector is no garbage collector" :P 01:08:02 * cpressey is trying to implement a garbage collector in 6502 asm on the C64 01:09:23 one thing i have always wanted to do is build a system from scratch 01:09:32 homebrew a CPU and put some ram there 01:09:37 PNEUMATIC 01:09:39 get an instruction set working 01:09:46 -!- ihope_ has quit (Connection timed out). 01:09:46 implement some form of an OS 01:09:52 add a programming language 01:09:56 One thing I've always wanted to do but don't have the skills or resources is to make a pneumatic CPU :) 01:10:02 put a simple video card in, attach it to a monitor 01:10:09 make keyboard+mouse work 01:10:18 invent new gui paradigm, code to work on OS with video card in programming language 01:10:21 write software 01:10:27 voila, system from nil 01:10:29 well, nearly nil 01:10:45 You forgot about forging the atoms from the ether. 01:10:53 heh 01:10:58 i'll start at the cpu level i think 01:10:59 but, that would be fun 01:11:03 -!- i4nic8 has joined. 01:11:21 i wanted to build a brainfuck CPU out of TTL chips once 01:11:29 I mean, you might even get interesting results 01:11:37 i also wanted to build an OISC CPU out of discrete transistors 01:11:38 howzit 01:11:46 A fun experiment would be to connect it to the net and use it and only it for e.g. a month 01:11:57 try and have no preconceptions about what software should be like 01:12:07 i.e. don't mimic anything, just let it work how you think it should intuitively 01:12:23 -!- ihope has joined. 01:12:37 also, using a computer with a whole stack - cpu, isa, proglang&os, gui, software - that you made yourself, would be pretty 1337 :P 01:13:15 There's a limit to how much one can make oneself. 01:13:20 Are ICs allowed? 01:13:25 ICs being? 01:13:28 sorry, i'm n00b :P 01:13:34 Integrated circuits. 01:14:01 I dunno, whatever most homebrew CPUs are 01:14:11 valves 01:14:22 if you could safely say every part of it was made by you (transisitors, etc withstanding) then i guess it'd be ok :P 01:14:24 Again, pneumatic CPU = whoot ^^ 01:14:34 Yay, fluidics. 01:14:56 I just think watching a pneumatic CPU extremely-slowly calculate 1+1 would be awesome. 01:15:26 Extremely slowly? Just blow into it and the result blows out the other end. 01:15:38 One thing I imagine would emerge from a system like I describe 01:15:40 I mean a real CPU - programmable. 01:15:40 is extreme mouse-use 01:15:44 Oh. 01:15:54 mice actually tend to come out /faster/ than keyboards, in practice, when the interface is good 01:15:59 contrary to actually most research 01:16:10 You know, I think I'm comfortable just making the software myself. 01:16:16 ;) 01:16:19 ehird`: Touchscreen > both 01:16:31 GregorR: OK let's assume this custom computer has a budget 01:16:34 A very small budget 01:16:36 Hahaha 01:16:45 Let's assume that everything should be as low powered as possible while still producing a useful machine 01:16:49 I would just try to build LCARS :P 01:17:00 (of course every part of current computers are bloated so you can't really use their specs to compare:P) 01:17:14 The more I use a tablet PC, the more I realize that LCARS is the best UI imaginable. 01:17:44 LCARS? 01:17:46 * cpressey wants to know whatever happened to light pens 01:17:56 I might try that from-scratch computer 01:17:56 Is that a type of brain interface? 01:17:59 PROBLEM: I suck at everything 01:18:01 ihope: LCARS is the computer system on Star Trek (>NG) 01:18:18 I could never make a cpu, I would probably stumble designing an ISA, I would have much trouble programming it - especially a full OS 01:18:19 etc :P 01:19:15 Don't make a CPU; use a really cheap one. 01:19:25 No 01:19:27 That's not from scratch 01:19:28 :P 01:19:39 I mean, using an external CPU you get locked into an ISA etc 01:19:48 That forces you into a certain other-persons model of thinking 01:19:52 That's against the spirit of the idea 01:19:54 I see. 01:20:05 Make it be cellular automata, then! 01:20:13 xD no 01:20:45 No? 01:21:00 Quit ridiculing my greatest idea! :-P 01:21:05 :P 01:24:39 oh snap someone wrote a quine for my esolang rofl 01:25:00 Which esolang is that? 01:25:04 http://koti.mbnet.fi/yiap/programs/phawn/kquine.phn 01:25:07 phawn 01:25:24 wow 01:25:35 somebody likes your language apparently 01:25:45 cool 01:25:47 http://esolangs.org/wiki/PHAWN 01:25:57 ahh keymaker 01:26:13 is he a regular on the wiki? 01:26:29 or, enjoys writing quines? 01:26:30 he just writes an awful lot of quines etc 01:26:54 lol 01:27:32 he helped me fix the interpreter too 01:32:18 So 01:32:26 Who thinks I should try that from-scratch idea? ;) 01:33:11 the brainfuck cpu? 01:33:18 naw 01:34:27 which one? 01:34:52 you weren't in here for it 01:35:49 -!- bsmntbombdood_ has joined. 01:37:50 ic 01:40:02 anyone have comments? ;) 01:42:03 ehird`: "cheap" and "simple" and "low-power" and "non-preconceived idea of an isa" are conflicting requirements 01:42:15 although i guess you didn't say "simple" 01:42:47 cpressey: ;) 01:42:55 if cheap, i'd go with a Z80 cpu and maybe wire it up after i've had a few, to make it interesting 01:43:44 megh 01:43:45 anyway 01:43:48 i'm going now 01:43:50 if non-preconceived... use a FPGA or discrete ICs... depending on how much soldering you want to do 01:43:52 see you all tomorrow :) 01:43:55 ok, cya ehird` 01:43:59 and porbably fpga 01:44:20 -!- bsmntbom1dood has joined. 01:44:48 how to get rid of all this <<<<<<.>>>>>> 01:45:06 ounch a child 01:45:39 -!- ehird` has quit (Read error: 104 (Connection reset by peer)). 01:46:33 -!- bsmntbombdood_ has quit. 01:47:08 -!- bsmntbombdood has quit (Nick collision from services.). 01:47:13 -!- bsmntbom1dood has changed nick to bsmntbombdood. 01:48:12 -!- i4nic8 has quit ("ChatZilla 0.9.78.1 [Firefox 2.0.0.9/2007102514]"). 02:04:39 -!- Tritonio has quit (Remote closed the connection). 02:57:21 -!- ihope has quit (Read error: 110 (Connection timed out)). 03:24:36 -!- Sgeo has joined. 04:55:26 -!- cpressey has quit (Read error: 110 (Connection timed out)). 06:42:35 -!- Sgeo has quit (Read error: 110 (Connection timed out)). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:28:34 -!- oerjan has quit ("leaving"). 08:38:30 Here's a simple program that outputs 2^(2^65536) bytes. Add another '+' to the start and it will output 2^(2^(2^65536)) bytes, and so on. 08:38:44 +++++++[>>+<[>[>+<-]>[<++>-]<<-]>[<+>-]<<-]>[.-] 08:41:07 (Naturally, this assumes integer cells as in ihope's challenge. And it's way too tidy to be the best answer for this length.) 08:59:19 haha 09:42:53 -!- sebbu2 has changed nick to sebbu. 09:58:11 -!- bartw has quit. 10:04:30 -!- bartw has joined. 10:45:34 Hey bsmnt. >>>>>>>>>++++++++[<[++<]++[>]<-]<[<]>[[<++++++++>-]>] 10:48:13 bsmntbombdood and depending on what context you need it in, you may be able to lose the >>>>>>>>> and/or the <[<] part. 11:10:51 -!- bartw has left (?). 11:42:56 -!- jix has joined. 12:03:12 -!- SEO_DUDE56 has quit (Remote closed the connection). 12:13:19 -!- RedDak has joined. 12:23:06 -!- SEO_DUDE56 has joined. 13:07:48 -!- RedDak has quit (Remote closed the connection). 13:36:21 -!- ihope_ has joined. 13:36:36 -!- ihope_ has changed nick to ihope. 13:38:12 -!- ihope has quit (Client Quit). 14:05:40 -!- RedDak has joined. 14:20:37 -!- ehird` has joined. 14:20:55 ooh, ololobot 14:20:58 oklopol: anything changed with it? 14:31:41 -!- RedDak has quit (Remote closed the connection). 14:42:52 -!- ihope has joined. 15:01:37 ehird`: not really. 15:01:45 >>> numbda "o\no" 15:01:46 o\no 15:01:54 i added that, but it's on the other ololobot 15:01:55 defmacro? :P 15:01:55 :) 15:02:03 i mean, added multiple lines 15:02:10 other ololobot? 15:02:21 on my other comp, the real ololobot 15:02:33 this one is just an old version i opened since you asked 15:03:06 hahah 15:57:05 -!- ihope has quit (Read error: 104 (Connection reset by peer)). 16:29:04 -!- Tritonio has joined. 16:49:58 I'm implementing a GC in Python, am I crazy? 16:50:09 (it's for something similar to oklopol's lisp, but more complete :)) 16:51:44 -!- puzzlet has quit ("Lost terminal"). 17:15:26 -!- bsmntbom1dood has joined. 17:24:10 -!- puzzlet has joined. 17:26:14 -!- bsmntbombdood has quit (Read error: 110 (Connection timed out)). 17:27:46 -!- jix has quit (Nick collision from services.). 17:27:54 -!- jix has joined. 17:32:16 oklopol: hey, how do i set values in scope with olololisp 17:32:20 >>> sch (set a 1) 17:32:23 >>> a 17:32:37 huh? 17:32:52 >>> sch (define a 1) 17:32:53 () 17:32:55 >>> sch a 17:32:56 1 17:32:59 ? 17:33:00 define is global 17:33:02 no? 17:33:07 ya 17:33:12 what about local 17:33:13 well... 17:33:13 hmm 17:33:31 (set a 1) would set a in the very topmost scope 17:33:35 >>> sch ((lambda () (define a 1))) 17:33:36 () 17:33:36 i.e. local var 17:33:40 like that. 17:33:45 >>> sch a 17:33:45 1 17:33:49 O RLY 17:33:50 >>> sch ((lambda () (define a 4))) 17:33:51 () 17:33:52 >>> sch a 17:33:53 1 17:33:54 ah 17:33:55 ok 17:33:56 thanks :) 17:34:19 isn't it always like that? 17:34:35 >>> sch (define test (lambda () (define test2 (lambda () x)) (define x 2) (test2))) 17:34:36 () 17:34:40 >>> sch (test) 17:34:41 () 17:34:51 i'm... pretty sure that's not right 17:34:55 it should give a variable definition error 17:34:58 since in the scope x is not defined 17:35:07 hmm 17:35:09 >>> sch drhg 17:35:10 None 17:38:03 -!- ttm has quit ("Seeeeeya"). 17:38:10 -!- ttm has joined. 17:38:31 phew 17:38:33 i just implemented my lisp 17:38:40 well, all of the types 17:38:44 now i need to do some minimal eval stuff 17:38:48 and the stdlib 17:40:22 fast 17:41:07 ;) 17:41:19 technically, i still need to do the gc 17:41:24 but i'm leaving that for later 17:41:40 (i've stopped python collecting itself by pushing every object to an array called "heap" :D) 17:41:41 what do you use gc for 17:41:48 myeah 17:41:49 garbage collecting 17:41:52 :P 17:42:24 put it on 17:42:41 nah 17:42:47 i need to implement: 17:42:51 1. some simple scoping functions 17:42:57 2. parsing 17:43:05 3. the actual functions - right now you can't actually do anything, but all the code is there 17:43:12 won't take long 17:43:15 scoping was the only part that took time in my implementation 17:43:25 i've actually done the lexical scoping for functions 17:43:54 yar 17:43:56 my LFunc class is ridiculously simple 17:43:57 http://rafb.net/p/LJGsOA14.html 17:45:15 Damnit! 17:45:18 I forgot to make LString 17:45:52 -!- ttm has changed nick to dbc. 17:48:41 OK! All done apart from parsing and stdlib (stdlib includes e.g. lambda ;)) 17:50:28 >>> sch (1 . 2) 17:50:29 not-callable(1) 17:50:37 you don't support (x . y) syntax? 17:50:37 good 17:50:39 i don't have to, then 17:50:40 ;) 17:51:04 heh 18:04:17 back 18:05:01 -!- bsmntbombdood has joined. 18:07:23 now i'm doing the parser 18:09:59 >>> sch "lollerburger" 18:10:00 None 18:10:03 hm 18:10:06 no string parsing oklopol? 18:13:27 nope :) 18:13:40 >>> numbda "has it" 18:13:40 has it 18:14:04 numbda isn't lisp though, no? 18:14:08 >>> numbda (lambda (x) x) 18:14:09 error:syntax:multiple-adjacent-objokens 18:14:30 >>> numbda {A->A} 18:14:30 lazy:[apply opr:-> to id:A(0) and id:A(0)] 18:14:36 >>> numbda {A->A}!3 18:14:36 num:3 18:15:03 hmm 18:15:05 numbda == oklotalk? 18:15:12 no 18:15:26 although some of it is legal oklotalk. 18:15:35 since oklotalk is pretty flexible 18:16:02 -!- bsmntbom1dood has quit (Read error: 110 (Connection timed out)). 18:19:07 2 The earth was without form, and void; and darkness was on the face of the deep. And the Spirit of God was hovering over the face of the waters. <<< what's "being on the face of the deep"? 18:19:40 there is something deep, and over it there's darkness? 18:20:05 the bible isn't meant to make sense 18:20:09 :P 18:22:31 hmm 18:22:32 bugs in parser 18:22:35 ((lambda (x) x) 2) is not parsing 18:23:00 ah i see 18:24:09 hehe, my parser recurses like hell 18:26:39 hah 18:26:39 return LCons(parse(string), parse_list(string)) 18:26:49 parse* modify string, so that is actually right 18:26:49 :) 18:36:14 ( . ( . NIL)) 18:36:17 not meant to happen! 18:39:59 dbc: nice 18:42:54 >>> sch -5 18:42:55 -5 18:42:58 >>> sch (+ -5 1) 18:42:58 -4 18:43:08 >>> sch 5.4 18:43:09 None 18:43:15 i should probably handle - 18:46:54 oklopol: :D it's almost done! 18:47:00 then i can write some functions... 18:47:00 ... like lambda... 18:47:42 lambda isn't a function 18:48:38 it is in mine :) 18:48:57 special forms are just functions with evalargs=false 18:51:08 loooool 18:51:08 error, not callable: error, not callable: error, unbound symbol: lambda 18:52:48 -!- Tritonio has quit (Read error: 104 (Connection reset by peer)). 18:56:29 woot 18:56:33 oklopol: parser, evaller, works :) 18:56:35 now for stdlib 18:59:21 i actually realized you weren't nearly as fast as i thought 18:59:31 time is slipping again 18:59:50 i think i'll translate genesis to my language today 19:00:12 my interp is currently 324 lines 19:00:12 :D 19:02:43 is that a lot or a little 19:02:44 ? 19:03:19 -!- bsmntbom1dood has joined. 19:06:06 dunno 19:06:06 :P 19:06:19 its quite a mess 19:07:58 yay, writing lambda! 19:08:58 my code for defining a function written in Python looks like some kind of c calling interface 19:08:59 scope[0][SymbolF("lambda")] = LFunc(p_lambda, (-1, ""), False) 19:14:45 -!- bsmntbombdood has quit (Read error: 110 (Connection timed out)). 19:17:56 woot!! 19:18:00 oklopol: it works! :) 19:18:47 oklopol: http://rafb.net/p/ijMepf32.html 19:19:01 time for a gc 19:19:03 methinks 19:19:22 * oklopol want in bot it. 19:19:35 all it has right now is lambda :P 19:19:36 but ok 19:19:42 * ehird` hooks up quick irc bot 19:19:47 what's the IRC message syntax again? 19:19:48 it's: 19:19:59 PRIVMSG #channel :sadoijfoidjhitr eotihjerg iajergoi 19:20:05 orrr whutta ya mean? 19:20:09 You have stuff in front of it too 19:20:10 i think 19:20:15 nope 19:20:16 ioh 19:20:17 :asdfsdf PRIVMSG #channel :adbsad 19:20:20 yeah 19:20:21 well yeah, when you receive 19:20:21 you do 19:20:31 it's PRIVMSG #channel :asdfiugh aeuhg 19:20:38 is teh hostmasker 19:25:36 almost done with the bot oklopol 19:29:15 oklopol: is there a way to read one line from a socket? :| 19:33:55 -!- bsmntbombdood has joined. 19:37:01 ok 19:37:03 here he comes 19:37:06 > code 19:37:08 -!- lithp has joined. 19:37:08 to eval lisp code 19:37:16 arg 19:37:18 registered 19:37:19 -!- lithp has quit (Remote closed the connection). 19:37:25 -!- ehird` has changed nick to lithpbot. 19:38:06 ok 19:38:08 here he comes 19:38:14 -!- lithp has joined. 19:38:15 oklopol: > code means "eval code" 19:38:17 > 2 19:38:23 allow me to rephrase 19:38:25 it SHOULD mean that 19:38:36 -!- lithp has quit (Remote closed the connection). 19:38:59 ok 19:39:04 heh 19:39:07 -!- lithp has joined. 19:39:07 -!- lithpbot has changed nick to ehird`. 19:39:08 -!- lithp has quit (Remote closed the connection). 19:39:10 baah 19:39:10 ok 19:39:12 #esoteric-blah 19:39:12 ;P 19:39:15 :D 19:39:32 -!- lithpbot has joined. 19:40:02 surry 19:40:30 -!- lithpbot has quit (Remote closed the connection). 19:40:41 -!- lithpbot has joined. 19:41:04 -!- lithpbot has quit (Remote closed the connection). 19:41:30 -!- lithpbot has joined. 19:41:33 -!- lithpbot has quit (Remote closed the connection). 19:42:04 -!- lithpbot has joined. 19:42:39 -!- ehird` has changed nick to lithpbo1. 19:42:43 -!- lithpbot has quit (Remote closed the connection). 19:42:44 -!- lithpbo1 has changed nick to lithpbot. 19:43:22 -!- bsmntbom1dood has quit (Read error: 110 (Connection timed out)). 19:43:33 -!- bsmntbom1dood has joined. 19:43:53 -!- lithpbot has changed nick to ehird`. 19:44:26 -!- lithpbot has joined. 19:44:48 oklopol: It's done! :D #esoteric-blah 19:44:57 -!- lithpbot has quit (Remote closed the connection). 19:46:46 -!- lithpbot has joined. 19:46:59 -!- lithpbot has quit (Remote closed the connection). 19:47:05 Oops. 19:47:09 quitspam :P 19:47:10 -!- lithpbot has joined. 19:47:14 that's all over now 19:47:15 it works 19:47:55 -!- lithpbot has quit (Remote closed the connection). 20:04:33 -!- lithpbot has joined. 20:04:56 -!- lithpbot has quit (Remote closed the connection). 20:05:18 -!- lithpbot has joined. 20:05:38 -!- lithpbot has quit (Remote closed the connection). 20:06:03 -!- lithpbot has joined. 20:06:38 -!- lithpbot has quit (Remote closed the connection). 20:07:12 -!- bsmntbom1dood has quit (Read error: 104 (Connection reset by peer)). 20:07:35 -!- lithpbot has joined. 20:08:00 -!- bsmntbom1dood has joined. 20:08:32 -!- lithpbot has quit (Remote closed the connection). 20:08:43 -!- lithpbot has joined. 20:08:46 -!- lithpbot has quit (Remote closed the connection). 20:09:25 -!- lithpbot has joined. 20:09:30 -!- lithpbot has quit (Remote closed the connection). 20:10:03 -!- lithpbot has joined. 20:10:54 -!- lithpbot has quit (Remote closed the connection). 20:11:05 -!- lithpbot has joined. 20:11:29 -!- lithpbot has quit (Remote closed the connection). 20:11:52 -!- lithpbot has joined. 20:13:43 -!- lithpbot has quit (Remote closed the connection). 20:14:38 -!- oerjan has joined. 20:14:44 -!- lithpbot has joined. 20:15:53 -!- lithpbot has quit (Remote closed the connection). 20:16:42 -!- lithpbot has joined. 20:16:45 -!- lithpbot has quit (Remote closed the connection). 20:17:49 darn i was just going to test (LITHT (PLUTH 2 2) (TIMETH 3 3)) 20:18:49 -!- lithpbot has joined. 20:18:53 -!- lithpbot has quit (Remote closed the connection). 20:19:39 -!- lithpbot has joined. 20:19:49 (LITHT (PLUTH 2 2) (TIMETH 3 3)) 20:19:53 you need > code 20:19:54 not code 20:20:06 > (LITHT (PLUTH 2 2) (TIMETH 3 3)) 20:20:06 error, unbound symbol: LITHT 20:20:08 :) 20:20:27 > (PLUTH 2 2) 20:20:28 error, unbound symbol: PLUTH 20:20:39 no arithmetic atm 20:21:23 > (CONTH 1 (CONTH 1 NIL)) 20:21:47 > ul ```skki 20:21:47 error, unbound symbol: ul 20:21:53 > sk ```skki 20:21:54 error, unbound symbol: sk 20:21:58 ... 20:22:00 i fail 20:22:02 >>> sk ```skki 20:22:03 -> i 20:22:12 oerjan: i don't even hvae cons! ;) 20:22:21 no p in the repl? 20:22:31 -!- lithpbot has quit (Remote closed the connection). 20:22:37 em, does it have any functions at all? 20:23:09 yeah, it does have functions 20:23:11 -!- lithpbot has joined. 20:23:20 > (def id (x) x) 20:23:20 20:23:23 > (id 2) 20:23:23 2 20:23:29 > (if #t 1 2) 20:23:30 1 20:23:36 > (set a 2) 20:23:36 2 20:23:38 > a 20:23:38 2 20:23:50 #esoteric-blah if you want to test it, to avoid spamming here 20:23:56 don't you mean THET? 20:24:18 something tells me this is not quite LITHP 20:24:36 lithpbot is just a name :P 20:24:50 >>> sch (define s (lambda (a) (lambda (b) (lambda (c) ((a c) (b c)))))) 20:24:51 () 20:25:05 oklopol: my lexical scoping is borked 20:25:06 >>> sch (define k (lambda (a) (lambda (b) a))) 20:25:07 () 20:25:07 waa, giving us false hopes :( 20:25:13 >>> ((k 5) 2) 20:25:14 oerjan: aww 20:25:17 >>> sch ((k 5) 2) 20:25:17 5 20:25:26 oklopol: MY LEXICAL SCOPING IS BROKEN 20:25:29 >>> sch (((s k) k) 9) 20:25:30 9 20:25:40 BUT I WAS SCARED I FAILED 20:25:47 luckily i didn't 20:26:06 -!- lithpbot has quit (Remote closed the connection). 20:26:10 added scoping debug 20:26:15 i'll find out what's wrong with set 20:26:18 -!- lithpbot has joined. 20:26:20 -!- lithpbot has quit (Remote closed the connection). 20:26:20 kayzorz 20:26:26 Hah. 20:26:48 * oklopol dances a little dance for having made a workind lexical scoping faster 20:26:50 *working 20:27:03 -!- sebbu has quit (Connection timed out). 20:27:12 -!- lithpbot has joined. 20:27:12 lexical scoping is hard when your implementation sucks 20:27:13 :P 20:27:15 -!- lithpbot has quit (Remote closed the connection). 20:27:22 heh 20:27:27 iqkdo gócûsieäegòubue goupeiäeívôifìe dáevôezzdìa góöesemoevôevài gocûeliekuemua liekue goís^yeliehàmäeréylieäedàe gozâolíeöydèiäedáeöynèi viekue miekue deiäösoekue 20:28:42 that a real language? o_O 20:28:45 ATTEMPT #45056 20:28:47 oerjan: oklopol's 20:28:50 -!- lithpbot has joined. 20:29:33 oerjan: yeah! 20:29:53 vocabulary may change completely, but i think semantics are ready. 20:29:56 i mean 20:29:58 err 20:29:59 syntax 20:30:00 grammar 20:30:03 whatever :)= 20:31:00 polysynthetic? 20:31:29 given those long words... 20:32:17 hmm, what's polysynthetic? :) 20:33:00 when one word combines what is several words, or even a whole sentence in other languages 20:34:25 Greenlandic is one example 20:35:03 hmm 20:35:38 well, basically you can just squeeze sentences into single words, since parsing is unambiguous... at least i think (..hope) it now is 20:36:08 >>> (define test lambda (a) b) 20:36:09 http://en.wikipedia.org/wiki/Polysynthetic_language 20:36:13 >>> (define b 7) 20:36:18 >>> sch (define test lambda (a) b) 20:36:19 () 20:36:23 >>> sch (define b 7) 20:36:24 () 20:36:32 >>> sch (test 6) 20:36:43 >>> sch (define test (lambda (a) b)) 20:36:43 () 20:36:46 >>> sch (test 6) 20:36:46 7 20:36:50 :DDDD 20:37:00 okay... i also have dynamic scoping xD 20:37:07 hahahahaha 20:37:33 yeah 20:37:53 i realized that as i was looking at my implementation, kinda lolled 20:38:40 so who actually knows how to implement lexical scoping? :p 20:39:30 that's trivially made lexical if you just check every variable is actually bound when you make a lambda 20:39:44 so like what? 20:39:45 but i'm not gonna add that, since i kinda like it now :)) 20:39:52 oh 20:39:54 mine isn't? 20:39:56 i mean 20:39:59 mine isn't trivially made lexical 20:40:00 ? 20:40:03 i meant mine 20:40:07 aw 20:40:12 (ehird`) so who actually knows how to implement lexical scoping? :p <<< i was referring to this. 20:40:27 -!- sebbu has joined. 20:40:41 ok 20:42:00 does lConst work? 20:42:02 ... 20:42:04 lCons 20:42:10 ...LCons 20:42:46 it's a cons structure... 20:42:48 (a . b) 20:42:54 (car that) -> a 20:42:57 (cdr that) -> b 20:43:08 i kinda guessed that. now does it work? 20:43:08 a list is (e1 . (e2 . (e3 . ()))) 20:43:20 umm 20:43:21 look at it 20:43:22 it works 20:43:32 what is confusing about it 20:43:33 hehe, actually, how could it not work ;) 20:43:42 i read code very slowly. 20:44:19 lookup has a fun implementation 20:44:33 you have the same stack structure i have 20:44:43 of course 20:44:52 the stack itself is fine 20:44:56 it'd the binding that's up 20:45:04 presumably LFunc is where I go wrong 20:45:09 specifically self.closure = scope[:] 20:46:22 hmm 20:46:33 you don't need to save *everything* in the closure 20:46:36 just what's used 20:46:55 yeah but that shouldn't be the problem 20:46:57 .. should it? 20:47:00 nope. 20:47:09 global scope 20:47:09 old_scope = scope[:] # poof 20:47:09 scope = self.closure # zoop 20:47:11 maybe thats wrong 20:47:20 yeah 20:47:39 you should just push the closure on the scope, methinks. 20:47:55 ok 20:47:56 so 20:48:02 scope.extend(self.closure) 20:48:19 then pop off the scope len(self.closure) times? 20:48:37 scope.extend? 20:48:37 hmm. 20:48:41 scope is a list 20:48:49 x.extend(y) is x = x + y, for lists 20:48:50 but quicker 20:49:05 -!- lithpbot has quit (Remote closed the connection). 20:49:07 anyway 20:49:09 i did that 20:49:12 let's see how it goes 20:49:18 -!- lithpbot has joined. 20:49:27 > (set a 2) 20:49:28 2 20:49:28 > a 20:49:29 2 20:49:29 didn't know that, weird. 20:49:39 > (def get-a () a) 20:49:40 20:49:43 > (get-a) 20:49:43 2 20:49:44 > (def s (a) (lambda (b) (lambda (c) ((a c) (b c))))) 20:49:44 20:49:46 esesesese 20:49:46 sto 20:49:47 stop 20:49:47 STOP 20:49:48 STOP 20:49:54 > (set a 5) 20:49:55 5 20:49:56 > (get-a) 20:49:57 5 20:49:58 :< 20:49:58 ok 20:50:00 that is broken 20:50:01 correct? 20:50:01 what a meanie. 20:50:23 (set a 2) (def get-a () a) (set a 5) (get-a) should return 2 right 20:50:26 well broken in that it's not lexical 20:50:36 err 20:50:40 yeah. 20:50:50 ok, i think i get it 20:50:51 so 20:50:57 what is the best way to get the closure? 20:51:01 loop through, check for symbols? 20:51:04 that's ugly, slow 20:51:13 it should be correct already. 20:51:17 and no, it's not slow or ugly. 20:51:30 of course you have to check what variables a lambda encloses... 20:51:44 if you don't, you *have* to save every variable in the closure. 20:51:52 yeah 20:51:52 i guess 20:51:57 i think my implementation is kinda broken 20:51:59 don't you? 20:52:01 you can just do that while parsing. 20:52:30 hmm... well we know it *is* broken in that the closures don't work, but i can't really say what's broken. 20:52:38 well, i mean 20:52:42 i thought about it the wrong way 20:52:43 from the start 20:53:32 rewriting a program is often more fruitful than debugging it. 20:53:51 you're the anti-joel 20:54:11 I AM TEH ANTICHRIST 20:54:11 -!- lithpbot has quit (Remote closed the connection). 20:54:24 ono 20:54:41 ok 20:54:43 Lisp, mark two 20:54:51 #esoteric-blah 20:55:56 oklopol: ping #esoteric-blah 20:56:56 sheesh 20:59:29 -!- bsmntbom1dood has quit (Read error: 104 (Connection reset by peer)). 20:59:42 -!- bsmntbom1dood has joined. 21:13:34 i think the word for the time complexity of this algorithm is "fuck-assly slow" 21:14:54 what algo? 21:15:32 bf text generation 21:16:07 can you specify a bit? 21:16:23 it's hard to explain 21:22:15 http://pastebin.ca/760176 21:22:18 there's the code though 21:23:15 sex + pee = heaven 21:23:39 indeed 21:25:03 i think its time complexity is O(l**2 * f**l) 21:25:20 what's f? 21:25:59 the length of the tape 21:28:31 goddamn 21:28:38 i started doing hello world like 10 minutes ago 21:33:33 -!- Sgeo has joined. 21:35:30 -!- pikhq has joined. 21:36:27 >>> (define a 7) 21:36:30 >>> sch (define a 7) 21:36:31 () 21:36:39 >>> sch (lambda (b) a) 21:36:40 21:36:45 >>> sch (define c (lambda (b) a)) 21:36:46 () 21:36:49 >>> sch (define a 7) 21:36:49 () 21:36:52 >>> sch (define a 4) 21:36:52 () 21:36:58 >>> sch (c 6) 21:36:59 7 21:37:04 it's lexical alright 21:37:04 ehird`: Any progress? 21:37:09 pikhq: on... 21:37:46 pebble.bfm 21:37:58 STILL going 21:38:06 pikhq: doh 21:39:16 and i thought EgoBot's algorithm was slow 21:41:48 hmmm, it is very parellizable 21:49:06 who wants to set up a cluster for it? 21:58:03 oklopol: in scheme, define usually doesn't create a new variable if there is already one in the exact same scope 21:58:10 iirc 21:58:34 in other words, (c 6) should have returned 4 21:59:19 (ML does it the other way around, btw) 22:00:43 err hwat 22:01:32 if there is already an a defined at the same level, (define a 4) in scheme acts as (set! a 4) 22:01:40 oh. 22:01:53 and any old references to a will get the update 22:02:17 i don't really know the imperative side of scheme 22:02:28 actually 22:02:33 i don't really know scheme. 22:02:51 btw bus to catch 22:03:04 -!- oerjan has quit ("Bus"). 22:05:03 * ehird` catches oerjan's quit message 22:15:13 -!- fizzie has joined. 22:17:45 dbc: how do you generalize that? 22:22:51 this has been going for over an hour now :( 22:25:06 this better be one damn good hello world 22:38:55 :D 22:39:22 if it's okay, i'll lol a bit if EgoBot beats it :) 22:39:58 !bf_txtgen Hello, world! 22:40:41 ... 22:40:41 119 +++++++++++++++[>+++++>+++++++>++++++++>+++<<<<-]>---.>----.+++++++..+++.>>-.------------.<-.<.+++.------.--------.>>+. [995] 22:41:03 whoa 22:41:09 that's pretty much the same approach i took 22:41:27 haven't you ever seen EgoBot's output? :| 22:41:37 i've never really looked at it 22:41:54 is it random? 22:41:55 hmm, understandabel 22:41:57 elele 22:41:57 !bf_txtgen Hello, world! 22:42:09 it's genetic, it may not find the same thing every time 22:42:16 yeah that's what i meant 22:42:26 but, it usually finds the same thing 22:42:39 117 +++++++++++[>++++++>+++++++++>+++>++++<<<<-]>++++++.>++.+++++++..+++.>>.<-.<++++++++.--------.+++.------.--------.>+. [906] 22:42:42 heh 22:42:44 or not. 22:43:01 and that one's shorter! 22:43:04 !bf_txtgen Hello, world! 22:43:10 2 shorter 22:43:12 hmm 22:43:12 or 22:43:43 impossible to calculate. 22:43:48 122 ++++++++++++++[>+++++>+++++++>++++++++>+++<<<<-]>++.>+++.>----..+++.>++.------------.<++++++++.--------.+++.------.<-.>>+. [400] 22:43:52 "mommy, what's 6*8?" "oh, sweetie, those are two completely different numbers!" 22:43:54 bah 22:44:09 i was hoping it stored the previous one and improved on it 22:44:17 like google maps does 22:44:24 well, that's a separate program 22:45:50 oklopol: hm 22:46:30 ehird`: olp? 22:57:50 olp 22:58:01 !bf_txtgen Hello, world! 22:58:44 121 ++++++++++++++[>+++++>+++++++>+++><<<<-]>++.>+++.+++++++..+++.>++.------------.<++++++++.--------.+++.------.--------.>+. [192] 23:04:21 i once did a bf textgen that produced short output most of the time.... but back then i was trying out lisp .... so i can't read or run that code anymore ^^ 23:04:46 and it was awfully slow 23:05:51 i bet it's faster than mine 23:06:02 bsmntbom1dood: still going? :D 23:06:31 bsmntbombdood: why are you still running it? rewrite it already 23:06:43 i dunno how to make it faster 23:06:47 oklopol: yep 23:06:55 ehird`: don't ruin the fun! 23:07:27 i should write one in c++... 23:07:37 bsmntbombdood: make it print debug output, see what's happening 23:07:44 jix: you shouldn't write ANYTHING in c++ 23:07:54 ehird`: tell me a better language 23:07:54 ehird`: why? 23:07:58 jix: scheme, c 23:08:01 jix: C or something higher level 23:08:08 if you're going for speed, probably C 23:08:24 c is a pain in the ass 23:08:25 bsmntbombdood: because you'll get even incomplete results asap 23:08:32 jix: because you try to use it like c++ 23:08:33 dynamic arrays in c... 23:08:37 ... are trivial 23:08:41 that's true 23:08:42 are annoying as hell 23:08:47 i programmed c for years before learning c++ 23:08:56 bsmntbombdood: so you'll be able to see if it works well, how it's doing etc 23:08:59 so don't tell me i try to use c like c++ 23:09:04 but i don't want to waste 2 hours of time 23:10:46 i'm not going to use c for anything besides linux kernel modules and maybe 4k intros anymore 23:10:47 bsmntbombdood: keep running it 23:10:52 just set its priority lower 23:11:24 hmm ok 23:12:07 how do you renice a running proccess? 23:12:15 bsmntbombdood: with renice 23:12:30 oh lol 23:12:42 bsmntbombdood is clinically retarded, news at 11 23:12:43 ;) 23:13:22 but i don't want a language war right now... 23:17:27 ok, now it's going to print the best so far 255 times in its running 23:20:41 maybe you should do more than 255 times 23:20:47 I mean, that's an awful lot considering how long it's taking 23:25:26 those are the only places where there is a complete product 23:28:53 and the only place to print that wouldn't print every single step 23:29:07 why not print every single step? 23:34:54 ...because that would print O(l**2 * f**l) times 23:34:58 so what 23:34:59 :) 23:36:11 it would spend more time printing than calculating, and that's too much information to be usefull 23:36:43 alright, make it print every iteration % 1000 == 0 23:36:47 or 10000 23:37:07 ...that would require a shitload of bookkeeping to number iterations 23:37:18 that's a disadvantage of functional programming 23:37:50 oklopol: lithpbot is ready! 23:37:51 -!- lithpbot has joined. 23:37:55 with REAL LEXICAL SCOPING(TM) 23:38:00 i just, haven't written any functions yet 23:38:00 > 2 23:38:01 -!- lithpbot has quit (Remote closed the connection). 23:38:03 heh 23:39:10 -!- lithpbot has joined. 23:39:10 the glottal stop in lisp bot is unpleasant 23:39:27 bsmntbombdood: even worse in "lithp bot" 23:39:28 > 2 23:39:28 2 23:39:33 > (2 2) 23:39:33 -!- lithpbot has quit (Remote closed the connection). 23:39:35 WTF 23:39:39 haha 23:39:39 oh 23:40:16 -!- lithpbot has joined. 23:40:17 > (2 2) 23:40:17 (err)not callable: 2 23:40:31 lookie what i made: http://abacus.kwzs.be/~bsmntbombdood/book1.jpg 23:40:34 > (+ 1 2) 23:40:35 (err)unbound: + 23:40:37 book2.jpg, book3.jpg 23:40:39 > (add 1 2) 23:40:40 (err)unbound: add 23:40:49 jix: i said i didn't impl any functions yet 23:40:54 it even has a elastic keep-closed strap and pocket in the back cover (not shown) 23:40:57 the infrastructure is there though 23:46:16 -!- lithpbot has quit (Remote closed the connection). 23:46:29 -!- lithpbot has joined. 23:47:26 > lambda 23:47:27 #native-function:1 23:47:29 :D 23:47:33 -!- Sgeo has quit ("Ex-Chat"). 23:47:41 > (lambda () 2) 23:47:41 -!- lithpbot has quit (Remote closed the connection). 23:47:48 typical 23:48:09 -!- lithpbot has joined. 23:48:10 > (lambda () 2) 23:48:10 None 23:48:14 hm 23:48:15 oh 23:48:38 -!- lithpbot has quit (Remote closed the connection). 23:49:10 -!- lithpbot has joined. 23:49:11 > (lambda () 2) 23:49:11 #function:8 23:49:13 > (lambda () 2) 23:49:14 #function:e 23:49:15 > (lambda () 2) 23:49:15 #function:14 23:49:23 that's... odd growth 23:49:23 :) 23:49:31 ah, no 23:49:32 that's right 23:49:37 > ((lambda () 2)) 23:49:37 -!- lithpbot has quit (Remote closed the connection). 23:49:40 ifgiushf 23:50:10 finally 23:50:10 fixed 23:50:18 -!- lithpbot has joined. 23:50:21 > ((lambda () 2)) 23:50:22 2 23:50:25 :D 23:50:26 oklopol: ping 23:50:43 pong 23:50:45 > (lambda () ((lambda () 2))) 23:50:45 #function:14 23:50:48 > ((lambda () ((lambda () 2)))) 23:50:48 2 23:50:52 it's rewritten 23:50:55 niec 23:50:56 ?? 23:50:57 > ( 23:50:58 (err) unmatched ( 23:51:04 bsmntbombdood: lithpbot! 23:51:12 > (quote 2) 23:51:12 (err) unbound: quote 23:51:23 no strings right now either 23:51:23 > (def s (a) (lambda (b) (lambda (c) ((a c) (b c))))) 23:51:23 (err) unmatched ( 23:51:27 > (def k (a) (lambda (b) a)) 23:51:27 (err) unmatched ( 23:51:33 ... 23:51:34 > (((s k) k) 3) 23:51:34 wait, what 23:51:34 (err) unmatched ( 23:51:34 asd. 23:51:40 > (2) 23:51:40 (err) not callable: 2 23:51:43 > ((2) 2) 23:51:43 (err) not callable: 2 23:51:46 > ((2 3) 2) 23:51:46 (err) not callable: 2 23:51:48 for my lisp textgen i used A* for the 2nd part... i wonder whether there is a better algoritm for that 23:51:52 better as in faster 23:51:52 > (((2 3) 2) 4) 23:51:53 (err) not callable: 2 23:52:10 > (def s (a) (lambda (b) (lambda (c) ((a c) (b c))))) 23:52:10 (err) unmatched ( 23:52:12 .. 23:52:13 hmm 23:52:18 yeah 23:52:20 my parser is borked, somehow 23:52:26 i see, darn 23:52:30 anyway 23:52:32 no def right now 23:52:33 ;P 23:52:36 just lambda 23:52:48 kay. 23:52:49 however 23:52:51 you can do this 23:52:51 > 2 3 23:52:52 3 23:53:01 > ((lambda () 2)) (lambda () 2) 23:53:01 #function:7a 23:53:08 i really need a gc 23:53:09 :| 23:53:41 > ((((lambda (a) (lambda (b) (lambda (c) ((a c) (b c))))) (lambda (a) (lambda (b) a))) (lambda (a) (lambda (b) a))) 8) 23:53:41 (err) unmatched ( 23:53:44 ... 23:54:05 YOUR MOTHER IS AN UNMATCHED ( 23:54:05 it's broken! 23:54:06 ok! 23:54:18 > (abc def) 23:54:18 (err) unmatched ( 23:54:22 > (abc d) 23:54:22 (err) unmatched ( 23:54:24 > (a d) 23:54:24 (err) unmatched ( 23:54:26 i see 23:54:43 -!- lithpbot has quit (Remote closed the connection). 23:54:47 * ehird` adds debug calls 23:54:54 -!- lithpbot has joined. 23:54:57 i thought just def was, but anyways, gotta sleep soon 23:55:05 aww 23:55:09 > (a d) 23:55:10 (err) unmatched ( 23:55:28 -!- lithpbot has quit (Remote closed the connection). 23:55:37 oklopol: after i fix this, i'm doing def etc 23:55:40 -!- lithpbot has joined. 23:55:43 > (a d) 23:55:44 -!- lithpbot has quit (Remote closed the connection). 23:56:04 we don't need no steeenking def 23:56:10 well whatever 23:56:12 > 'a 23:56:12 i'm fixing this atm 23:56:21 yeah 23:56:21 bsmntbombdood: 1. it's gone 2. you mean (quote a) 23:56:26 3. quote isn't implemented yet 23:56:29 :D 23:56:38 lol how can quote not be implemented yet 23:56:58 how can it not not be? 23:57:19 bsmntbombdood: the interp isn't that old 23:57:27 it's about an hour old 23:57:28 :| 23:57:37 interps grow quotes at about 3 hours old 23:57:42 lmao 23:58:43 -!- lithpbot has joined. 23:58:43 oh, this has been studied already? 23:58:46 > (a d) 23:58:47 (err) unmatched ( 23:58:51 sdfsdjfhsaidfh4i4thdkjbdkjgbxnckl;v 23:59:02 > ?1 23:59:02 (err) unbound: ?1 23:59:12 > wtf does this lithp have 23:59:12 (err) unbound: wtf 23:59:22 > (let ((x 1)) x) 23:59:22 (err) unmatched ( 23:59:22 it has core lisp stuff. 23:59:25 shut up 23:59:27 THE PARSING IS BROKEN 23:59:27 THE PARSING IS BROKEN 23:59:30 ^^^^^^^^^ 23:59:31 I AM FIXING IN 23:59:32 no shit 23:59:34 *IT 23:59:39 -!- lithpbot has quit (Remote closed the connection). 23:59:46 why do you think it keeps restarting! 23:59:52 -!- lithpbot has joined. 23:59:59 > (a d) 23:59:59 (err) unmatched (