00:22:39 -!- sebbu2 has joined. 00:30:30 -!- puzzlet has quit (Remote closed the connection). 00:30:31 -!- puzzlet has joined. 00:39:20 -!- puzzlet has quit (Remote closed the connection). 00:39:23 -!- puzzlet has joined. 00:42:46 -!- sebbu has quit (Connection timed out). 00:42:46 -!- sebbu2 has changed nick to sebbu. 00:48:50 -!- puzzlet has quit (Remote closed the connection). 00:48:51 -!- puzzlet_ has joined. 00:53:26 -!- ehird` has quit (Remote closed the connection). 01:00:08 -!- sebbu2 has joined. 01:02:09 -!- sebbu3 has joined. 01:05:34 -!- sebbu2 has quit (Nick collision from services.). 01:05:35 -!- sebbu has quit (Nick collision from services.). 01:33:09 -!- puzzlet has joined. 01:43:20 -!- puzzlet_ has quit (Read error: 110 (Connection timed out)). 02:20:58 -!- sebbu3 has quit ("@+"). 02:55:45 -!- puzzlet has quit (Remote closed the connection). 02:55:45 -!- puzzlet_ has joined. 03:14:38 -!- puzzlet has joined. 03:24:59 -!- puzzlet_ has quit (Read error: 110 (Connection timed out)). 04:29:27 -!- RodgerTheGreat has quit. 04:36:12 * pikhq goes to celebrate his status as an Agoran Spy 05:09:49 -!- puzzlet has quit (Remote closed the connection). 05:09:50 -!- puzzlet has joined. 05:32:55 -!- puzzlet has quit (Remote closed the connection). 05:32:55 -!- puzzlet_ has joined. 05:55:39 -!- puzzlet_ has quit (Remote closed the connection). 05:55:40 -!- puzzlet has joined. 07:17:58 -!- dbc has joined. 07:23:05 -!- pinwee has joined. 07:30:30 Slereah-: why are bunting and becard the same combinator :o 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:28:53 wtf 08:29:05 why doesn't freenode ping off my bot :< 08:29:10 guess i should register it... 08:29:41 -!- puzzlet_ has joined. 08:30:54 right, can't register it because ololobot is online too :D 08:39:51 -!- puzzlet has quit (Read error: 110 (Connection timed out)). 09:01:51 -!- Jontte has joined. 09:20:03 -!- pinwee has quit (Read error: 110 (Connection timed out)). 09:30:32 fun looking at random #esoteric logs and finding myself talking crap every 15 sentences :D 11:02:09 -!- Jontte has quit ("Konversation terminated!"). 11:30:54 -!- faxathisia has joined. 11:33:26 -!- puzzlet_ has quit (Remote closed the connection). 11:35:03 -!- puzzlet has joined. 11:39:55 -!- AnMaster has quit ("mouse broken, restarting to fix related issue"). 12:10:50 -!- AnMaster has joined. 12:28:51 >>> F={};F![/N]=(/N*8);f"a" 12:28:51 "aaaaaaa" 12:28:55 dynamical scoping owns :) 12:29:21 whoops 12:29:41 "aaaaaaaa" 12:29:55 i'm a lousy interpreter 12:31:47 PLEASE SAY HELLO WORLD, LOUSY INTERPRETER 12:37:12 hélo word 12:49:09 Damn you! 12:49:45 -!- sebbu has joined. 12:49:48 I won't even ask you to take that bottle of beer of the wall, you'll probably get drunk before the end of it! 13:41:55 -!- jix has joined. 14:08:03 -!- mtve has quit ("Terminated with extreme prejudice - dircproxy 1.0.5"). 14:08:26 -!- mtve has joined. 14:10:31 -!- mtve has quit (Client Quit). 14:10:54 -!- mtve has joined. 14:16:04 oklopol: what lang was that? 14:16:16 pikhq: ?? 14:21:23 what? 14:21:32 oh, oklotalk, of course :) 14:21:38 where? 14:22:37 where? 14:45:32 where is the definition online 14:46:31 http://en.wiktionary.org/wiki/online 14:47:00 SimonRC: none published yet 14:47:08 since it still constantly evolves :o 14:47:29 i'm aiming for perl6, with some features and syntactic sugar added! 14:48:05 (well, the language is completely different, the reference was purely to the amount of... stuff) 14:49:50 -!- Maxdamantus has quit (Remote closed the connection). 14:49:51 ok 15:02:08 error message oriented programming 15:03:18 hm? 15:03:41 10 IGNORE INPUT 15:03:41 20 PRINT "Your program is wrong" 15:03:41 30 GOTO 10 15:03:57 * faxathisia is struggling with a type system.. 15:04:03 which? 15:04:07 Agda2 15:04:20 It's very nice but I don't know what I'm doing :p 15:04:37 one of yours 15:05:44 ? 15:05:53 oh, no not mine 15:06:59 http://www.cs.chalmers.se/~ulfn/talks/agda2-060510.pdf ?? 15:07:09 yeah 15:11:07 -!- RedDak has joined. 15:12:17 -!- puzzlet has quit (Remote closed the connection). 15:12:19 -!- puzzlet has joined. 15:13:12 faxathisia: could I help? 15:13:27 I have s little understanding of this kind of thing 15:13:35 -!- jix has quit (Nick collision from services.). 15:13:45 -!- jix has joined. 15:13:49 I'm trying to write a function, plus_s : (m : Nat) -> (n : Nat) -> suc (m + n) == (m + suc n) 15:13:56 it is not really much beyond Generalised Algebraic Data Types in Haskell 15:14:11 faxathisia: ok... 15:14:22 * faxathisia reads about Generalised Algebraic Data Types 15:15:53 well I think you need some lambdas in there... 15:15:54 SimonRC: ?? 15:16:14 faxathisia: you seem to have mixed up a type sig and a definition 15:16:34 :D 15:16:37 That's what I want to do 15:16:51 the types depend on the parametrs 15:17:57 umm, are you sure? 15:18:14 pikhq: what was the last thing you said before I said that to you? 15:18:17 or rather, when? 15:18:17 not 100% :s 15:18:25 ah, I see now 15:19:06 faxathisia: I would think you need one type sig, one case for m = 0, and one case for m > 0 15:19:52 plus_s : Nat -> Nat -> Nat 15:20:09 SimonRC: My logs don't go *back* that far. 15:20:16 At least a few days ago. ;) 15:20:36 pikhq: it was about being an "Agoran Spy" 15:20:39 what is that? 15:20:41 *Oh*. 15:20:48 It's a patent title in Agora. 15:20:53 (newly defined for my sake) 15:22:04 define: "Agora" 15:22:22 Agora is a Nomic; a game whose rule-changing procedures are rule-defined. 15:22:42 is it possible to back a nomic into a dead-end? 15:22:48 Very much so. 15:23:02 is it possible to make it undefined using temporar loops 15:23:05 *+l 15:23:13 That's one possible means. 15:23:26 Some Nomic rulesets are better at handling that than others. 15:23:39 actually, every Noic ruleset is equally bad at it 15:23:51 because they are nomics 15:24:01 SimonRC: This stuff is cool http://www.iis.sinica.edu.tw/~scm/2007/agda-exercise-proving-that-mergesort-returns-ordered-list/ 15:24:10 B Nomic, for example, can only survive that because they have a rule allowing for the temporary suspension of the rest of the rules to reset the game. 15:24:35 which is fine unless you remove that rule 15:24:49 Agora survives that sort of thing because such events are usually done wrong via a technicality. During which time the bug will be fixed. 15:24:52 True, true. 15:25:00 I believe that one requires unanimous support. 15:25:07 to amend. 15:26:09 there needs to be something between a nomic and an orgdinary game maybe 15:26:27 But that loses the fun of a Nomic. 15:26:29 where you can make most rule changes, but not any that screw up the game 15:26:32 hmm 15:26:47 Nomic in Agora is *kinda* like that. . . 15:26:53 In theory, you can make any rule change. 15:27:01 In practice, you won't be *allowed* to. 15:27:11 not too bad then 15:27:12 Agorans care quite a bit about their precious Nomic. 15:27:51 (not that I can blame them. . . It's really a *hard* ruleset to abuse, for one thing. . . Representing 14 years of rule-changing) 15:32:53 ah, waitamo... 15:33:09 I just realised I failed to say what I was thinking just then 15:33:20 I was lookking at nomics from a programming PoV 15:33:43 there must always be some immutable base to it all, I think 15:34:03 (That is one of my objections to "changing laws of physics" theories, too.) 15:34:30 It is actually moar of a "changing constants" 15:35:12 well that's ok 15:36:29 Is there a particular process to change lambda expressions int combinators? 15:36:31 but if laws of physics "change", then time can't be all the mutable or one of them would have fucked it up by now 15:36:39 Slereah-: er, what? 15:36:46 what is an "int combinator"? 15:37:02 By just applying the transformation pretty much randomly, I end up on some variables that can't bbe changed. 15:37:05 Into, SimonRC. 15:37:13 ah 15:37:17 hm.. 15:37:26 ISTR that unlambda homepage has a method 15:37:41 I suppose there's a particular order for it, but... 15:37:47 it causes an exponential blowup in program size in the general case 15:38:13 Doesn't worry me too much. 15:38:19 it is a simple recursive method 15:39:32 I suppose it's under "Abstraction elimination" 15:40:13 yes 15:40:25 and "Making abstraction elimination more efficient" 15:40:47 if you are using Haskell, it should be easy to implement 15:41:06 abstraction elimination is eta reduction I think 15:41:17 dunno 15:57:45 ololobot_ does the conversion with pl 15:57:56 i mean, the one described on the unlambda page 16:12:12 SimonRC did you see the link ? 16:16:30 faxathisia: which? 16:16:35 ah 16:19:41 looks like epigram to me 16:20:11 Yeah I think it's the same kind 16:20:16 I couldn't get epigram to run though >:| 16:32:40 Have you done anything with Epigram? 17:01:54 -!- Sgeo has joined. 17:21:17 faxathisia: no 17:50:30 Holy fuck. Abstraction elimination is some ugly business. 17:50:41 I'm flooded with parenthesis. 17:51:23 ooo lets see? :D 17:51:24 ABSTRACTION TERMINATED. 17:51:41 http://projecteuler.net/ i'm hooked :P 17:54:55 So far, it looks like this : http://membres.lycos.fr/bewulf/Russell/AE.jpg 17:55:05 brackets!! 17:55:09 I'm not sure all the parenthesis are in the right place. 17:55:23 You're not doing this manually.. are you? 17:55:30 8| 17:55:33 ... yes :( 17:55:40 you're a god 17:55:43 wouldn't it be easier to write a program? 17:55:56 please stop bullying the deity 17:56:03 Well, I usually prefer to do such things by hand first. 17:56:08 To get the feel of it. 17:56:27 maybe this helps http://www.angelfire.com/tx4/cus/combinator/birds.html ! 17:56:30 Remember the addition program? I got the idea after doing this : http://membres.lycos.fr/bewulf/Russell/5+12.txt 17:56:40 Already know it. 17:57:04 And I programmed my Turing machine because I had a hard time doing the examples in Turing original article. 17:57:59 (Starting with the second one. Being a Turing machine is a thankless job!) 18:07:55 Slereah-: you know, I think you are supposed to start from the outside lambda inwards... 18:12:15 Isn't that what I did? 18:12:28 Bloody hell. 18:13:15 I decomposed the thingy into T[^ T[^ T[^ ...]]] and started by the innermost lambda in it. 18:13:38 yeah, the op[posit of what I said 18:13:50 the first thing to eliminate would be the \m 18:14:05 um, I think 18:14:27 http://membres.lycos.fr/bewulf/Russell/AE2.jpg 18:14:55 I don't suppose anyone has the combinator version of multiplication somewhere. 18:15:01 To check. 18:15:50 I get ((S((S((S(KS))((S(KS))((S((S(KS))((S(KK))(KS))))((S((S(KS))((S(KK))(KK))))((S(KK))I))))))(KI))((S(KK))(KI))) 18:17:34 Slereah-: you mean multiplication of church numerals? 18:17:41 What's the lambda term for it? 18:18:10 See the first step. 18:18:10 as in: 5 = \x\y.x(x(x(x(xy)))) ? 18:18:28 ^mnf.(mn)f 18:18:48 hmm 18:19:44 surely if m and n are church numerals, (mn)f == m(nf)? 18:20:10 ah, waitamo... 18:20:34 \mnf->(mn)f is exponentiation 18:21:37 e.g. it turns 5,4,x into (5 4) x == (\y. 4 (4 (4 (4 (4 y))))) x = 4(4(4(4(4x)))) 18:21:52 which is 1024 x 18:22:01 i.e. (5^4) x 18:22:14 multiplication of church numerals is composition 18:22:22 Damn. Where did I get that. 18:23:06 "The function which multiplies two Church integers (by applying them consecutively to the same function) is ^m^n^f`$m`$n$f, i.e. ``s`ksk" 18:23:22 Oh. I actually made a typo when I wrote it on the first line. 18:23:31 Well, so much for that. 18:24:03 I forgot Unlambda's notation. Is `ab = (ab)? 18:24:12 Or is it (ba) 18:30:40 ab 18:30:41 (ab) 18:33:10 I did spend 20 lines doing the wrong problem didn't I. 18:34:09 I'll try some combinator with a known SKI decomposition instead. 18:35:17 The Mockingbird. Three combinators. 18:35:22 That's more inspiring. 18:51:43 -!- jix has quit ("CommandQ"). 18:53:23 I just can't keep track of the parenthesis. 18:53:29 I'll just cook up some code. 18:53:43 I wrote some code to it but it doesn't work! 18:54:53 Hell, I don't even have any idea how to deal with brackets! 18:55:05 But well, let's see if I can cook up something. 18:56:25 are not free and bound two different things? 18:56:43 Why yes, yes they are. 18:56:48 They are different thing, that is. 18:56:51 What's the difference.. 18:57:16 Free variables are in the expression without some lambda to cramp their style. 18:58:24 From what I've seen on the abstract elimination thingy, a variable that isn't at all in the expression is considered not free for the rule T[^x.E] = K T[E], with x not free in E. 18:59:58 * SimonRC goes. 19:00:18 Byes. 19:08:24 grr 19:08:35 I wrote something which seesm to do it but it only works in one direction 19:14:28 I wonder if there's a shorter set of rules for it. 19:14:35 Free and bound variables are bothersome. 19:15:21 i guess that comes once you've made it pointless? 19:15:27 point-free 19:15:39 *comes in, i guess 19:16:00 Yes free and bound vars are the problem 19:17:19 but I doubt sidestepping it is possible :| 19:17:23 i meant, i guess what you are doing is exactly reducing it to the shorter set of rules 19:17:42 Well, you can get rid of a lot of the free-bound rules in logic for instance. 19:17:55 guess, because i just skimmed your conversation for keywords :) 19:17:56 But then again, LC seems pretty much based on it. 19:21:56 -!- oerjan has joined. 19:38:27 -!- tesseracter has joined. 19:39:32 Hello sir. 19:39:44 hi? 19:39:55 i was actually looking for a obfuscated code channel 19:40:08 * oerjan strangely hears something out of another dimension 19:40:19 Well, esolangs are quite obfuscated 19:40:59 right, but python oneliners arent exactly esoteric, more obfuscated. 19:41:08 Yes. 19:41:11 http://dpaste.com/28780/ 19:41:13 Esolangs are a subset of it 19:41:36 people here have been known to make IOCCC entries... 19:42:07 For instance, this is somehow obfuscated : http://membres.lycos.fr/bewulf/Russell/99Turingprog5.txt 19:42:13 And a one-liner, too! 19:42:29 I can't read that 19:42:33 Mostly because I can't find how to strip the code of LF. 19:43:26 I have a somehow commented version, but it's commented in French. 19:44:43 -!- weilawei has joined. 19:44:56 Hi. 19:45:41 for some reason Slereah-, you remind me of a bot. kinda spooky. 19:45:42 what do you mean strip the code of LF? 19:45:49 Line feeds. 19:45:54 oh right.. 19:46:13 Since I'm not that good at manipulting strings, it just reads it like one big block. 19:46:46 tesseracter: Why do you think Slereah-, I remind me of a bot. kinda spooky. 19:46:46 strings are in general really awkward to deal with :| 19:47:16 It's nice to have logic programming or some combinator parser someone else wrote around 19:47:29 The solution would have been to just put strip(LF), but I would need the curses module 19:47:38 oerjan: ha. 19:47:42 And it doesn't exist on windows. 19:48:55 faxathisia: what language have you been using 8| 19:49:12 oklopol: what do you mean? I used a lot of languages 19:49:38 "strings are in general really awkward to deal with" i feel the exact opposite, so... just wondered 19:49:55 What languages have *you* been using? 19:50:04 python, mostly 19:50:07 especially awkward in c, javascript and python 19:50:12 I use python. 19:50:14 oh :\ 19:50:23 and yes, what have you been using!? :D 19:50:25 Well, I'm incompetent, but I assume faxathisia isn't. 19:50:45 i use python almost exclusively these days 19:51:08 you chould show some good string processing code? 19:51:22 python has reasonably simple regexps 19:51:35 module re, i think 19:51:49 regexps + a way to use a string like a file, and i don't really see how anything could be awkward 19:52:33 and no, i can't show you any *good* code, since i don't know what that means 19:52:48 :( 19:52:54 We need a philosopher on that one. 19:53:49 i don't think anyone has called my code readable 19:54:03 Sparse comments? 19:54:18 comments are useless 19:54:43 add descriptive lambdas into the language like i did with oklotalk for comments 19:54:45 ! 19:54:50 hmm 19:54:54 "descriptive" 19:55:00 err... i mean declarative or smth 19:55:11 oklopol: comments should only need to explain _why_ you implemented something the way you did. 19:55:13 like, lambdas that describe the result. 19:55:24 in the future we don't need comments :) 19:55:25 i guess 19:55:29 indeed 19:55:35 that is how i see it. 19:55:44 sometimes they are required though, like: Don't give an empty list to this! 19:55:56 or: Takes a valid printf string 19:56:02 tesseracter: in that use, i consider then fully useless :) 19:56:10 as if that's anyone's business. 19:56:22 *them 19:56:26 -!- puzzlet has quit (Remote closed the connection). 19:56:37 faxathisia: that can be done using the language itself. 19:56:47 if not, the language sucks, not my problem :) 19:56:47 oklopol: What language[s]? 19:56:59 oklotalk, mostly :P 19:57:02 hehe 19:57:08 where is there some info on oklotalk? 19:57:23 if something is easy in oklotalk - a non existent language sofar - i consider it something that should be easy in other languages too 19:57:27 and if not, they suck 19:57:37 nowhere online :) 19:57:48 being a programming language is not about making things easy for programmers :p 19:57:50 i've been talking about ot for years 19:57:57 but i finally have a real reason to finish it 19:58:04 it's my high-school graduation project 19:58:36 heh, oklotalk makes up for it's nice debugging facilities in being extremely obfuscatable :) 19:58:36 o_O 19:58:52 o_O? 20:03:05 if that was for "mostly oklotalk", i meant i don't know what other languages provide for the stuff i have in mind, since i only know python, java and c++ well enough to confidently know what's doable in them 20:03:12 * oerjan imagines several options for oklopol flunking high school now... 20:03:20 ah :) 20:03:45 another reason is i don't have a course i need to have, and it's not given anymore 20:04:40 -!- puzzlet has joined. 20:04:43 a spoken english course :D 20:04:43 guten morgen 20:04:58 ist schon sehr spät 20:05:40 six function calculator in one line of python: http://dresstosurvive.wordpress.com/2007/12/21/six-function-calculator-in-one-line-of-python/ 20:05:53 i think tesseracter spoiled my surprise >_> 20:06:01 no eval() 20:06:24 * oerjan must have greatly misremembered the time zone of germany 20:06:40 hmm, same as yours, no? 20:07:07 i'll show my bf interpreter oneliner again! 20:07:09 thought so, and hier ist kein gute morgen 20:07:43 aww I did a bf interp one liner but I lost it 20:07:57 it had to be < 512 chars for lambdabot to understand 20:11:14 what lang? 20:11:21 can't find mine :< 20:11:45 haskell 20:13:18 * Slereah- plans on doing some BF interpreter on his Turing machine 20:13:25 And well, it will have to be one line. 20:13:35 But first, I need to install them penguins. 20:13:49 * weilawei has some up for sale 20:13:55 lol 20:14:06 Linux for sale? What a bargain! 20:14:07 every turing machine program is a one liner because i t uses infinite tape 20:14:11 then do some turing machine with bf! 20:14:27 and run that bf interpreter again with that 20:14:29 faxathisia : The instructions themselves aren"t on the tape. 20:14:34 * tesseracter wants a hardware bf CPU 20:14:38 ((lambda: "penguin") for x in customers) 20:14:47 it generates penguins for customers =D 20:14:50 yes! and calculate the eigenratio 20:14:52 ooh :( 20:14:54 also, my Turing Machine supports multi tapes :o 20:15:25 I will probably use 3 for the BF interpreter. 20:15:27 the lambda was gratuitous, i admit 20:15:44 One for the code, one for the "tape" of BF, and one to keep track of the brackets. 20:15:54 * weilawei isn't sure whether penguins or lambdas are cuddlier 20:16:11 what of combinatory birds? 20:16:26 hardware bf cpu sounds very.. useful! 20:17:01 You could run your BF programs in record time! 20:18:28 tejeez: ok ok, howabout a water-based bf cpu? the output would drip on your head. 20:18:58 well, a bf cpu made with discrete components or simple logic chips would be quite interesting project 20:19:39 -!- sekhmet has quit (Read error: 104 (Connection reset by peer)). 20:21:46 There's a BF CPU diagram. 20:22:16 -!- sekhmet has joined. 20:23:07 http://science.slashdot.org/article.pl?sid=04/10/06/2026222 tejeez, this is what i was talking about... 20:24:06 yeah, that would be even cooler way to implement a brainfuck cpu! 20:24:07 What if there's a clog? :o 20:24:46 * weilawei gets the draino 20:25:14 INPUT DRAINO 20:25:17 "theres a bug. is it hardware or software?" 20:25:33 There's an ant drinking the sweet sweet computer juice 20:25:44 obviously you would need to use filters. 20:26:37 Try to use 1's rather than 0. They're aerodynamics, less turbulence in the water 20:27:38 but as every cell in brainfuck is initially 0, it'd be better to make 0's more aerodynamic 20:28:02 Some sort of losange? 20:28:09 i think 0's are naturally more aerodynamic due to the curvature 20:28:49 Well, unless that curvature is infinite, the water is going to bump on its cross-section! 20:29:40 Then again, there's worse I guess. 20:29:42 Like 5. 20:30:27 -!- sekhmet has quit (Read error: 104 (Connection reset by peer)). 20:30:31 CPU lag/queue? you dont get your water till something else comes down the pipe... 20:30:57 Could you overclock it with a bicycle pump? 20:31:16 i think a simple siphon might help.. 20:31:32 but.. overclocking it would.. make it run cooler? 20:31:33 >_< 20:32:22 ok guys, combine the fluid gates with http://blog.wired.com/wiredscience/2007/12/macgyver-scienc.html and you can make your own BF water CPU at home!!! 20:33:22 who has a link to the bf cpu schematics? 20:34:08 how do you input your program? 20:34:15 http://www.clifford.at/bfcpu/bfcpu.html 20:35:11 tesseracter: a lot of cups that should be filled (1) or left empty (0) 20:35:26 three such cups would be one instruction 20:35:31 * weilawei and tesseracter are plotting... 20:36:54 or maybe a lot of valves? 20:37:00 steampunk! 20:37:05 * oerjan envisions the Zen fluid bf cpu, where the cups are either half full or empty. 20:37:17 Steam? This isn't even Clockpunk! 20:37:24 *half empty 20:37:30 What would be the fluid? 20:37:45 this if brainfuck, not some (brain)fucking steampunk 20:37:48 maybe alcohol and water? 20:37:50 Slereah-: you need 2 different density fluids 20:38:04 aka: the indifference engine 20:38:11 Heh. 20:38:38 brain[fp]u[cn]k? 20:38:52 Brainpunk 20:39:02 -!- sekhmet has joined. 20:39:26 brainpuck 20:39:26 steamfuck? 20:39:37 http://content.answers.com/main/content/wp/en/1/14/William_Stanley_Jevons_Logic_Piano.jpg 20:40:24 oerjan: quantum brainfuck? 20:40:30 :) 20:40:45 * oerjan is disappointed brainpunk does not appear to denote a musical genre 20:41:02 does brainfunk? 20:41:05 Quantum Brainpunk is when you fill the cup randomly. 20:41:19 Like you just use some cups lying around your house. 20:41:58 quantum is not the same as random! there needs to be entanglement... 20:42:24 Well, with cup, I'm not sure I can do it. 20:43:26 weilawei was worried that you couldnt use a bf water cpu in space...turns out, you can just spin it. need overclocking? spin faster! 20:43:41 * weilawei is planning to market it to NASA 20:43:52 Spinning it will induce coriolis forces 20:43:59 That could screw up the results! 20:44:10 Slereah-, see, i said use an impeller or a pump.. 20:44:12 but nooo 20:44:28 in space though.. once it was spinning.. 20:44:34 0 watt BF cpu 20:44:54 it would be hard to read the results weilawei... 20:44:59 You know that pesky law of thermodynamic? 20:45:04 Slereah-, SHH 20:45:29 yes we know, but we're aiming to preserve our natural environment as best as possible 20:45:59 Let's train monkeys to do symbol manipulation. 20:46:11 Slereah-, forget that. too easy 20:46:14 Apefuck! 20:46:16 :( 20:46:33 >_< 20:46:42 train chihuahuas to be quiet and you should win a nobel 20:46:58 I can, but it would qualify as animal cruelty. 20:47:17 * tesseracter tried to make a little dog punter once. it didnt get many investors tho... 20:55:20 i wonder what cpu has the least amount of logic gates... 20:55:56 -!- ehird`_ has joined. 20:56:02 the infinite improbability drive? or the bistromath drive? 20:56:08 Zero I assume. Unless you mean "Turing complete" as well. 20:56:26 Slereah-: i definitely mean turing complete. 20:56:37 The EMPTY CPU :O 20:56:57 probably some very simple 1-bit cpu :-o 20:58:13 http://www.esolangs.org/wiki/SCAB_computer? 21:04:34 * weilawei thinks tesseracter is scheming to limit his time on #esoteric 21:05:06 what, because youre at work? 21:05:18 if you're so busy @work, what're you doing here? 21:05:37 * tesseracter stares blankly... 21:05:49 thanks tejeez, just what I needed. 21:07:20 hmm. is a water cpu a clock or an asynchronous system? 21:08:20 brainfuck can be easier to do with clocked..? 21:12:42 tejeez: yeah, but the difficulty is with the water, not brainfuck. 21:14:26 Heh. 21:20:57 -!- ihope_ has joined. 21:24:52 Slereah-: i just read what i wrote again. scary. 21:28:55 ridiculous, esoteric scheme compiling idea 21:28:59 for compiling 'define' 21:29:10 err 21:29:13 'begin' 21:29:41 first reduce all begins to two subforms. (begin x y z) -> (begin x (begin y z)), etc. Then, reduce (begin x y) to (and (or x #t) (or y #t)) 21:29:42 :D 21:29:57 What's begin? 21:30:16 (begin x y z) -> (and (or x #t) (or (and (or y #t) (or z #t)) #t)) 21:30:24 ihope_: begin executes all its arguments one after another 21:30:34 so you can do: 21:30:46 (if cond (begin (display 1) (display 2)) (begin (display 3) (display 4))) 21:30:48 Interesting. 21:31:03 of course it's trivial to compile in the first place :-) 21:31:24 to most imperative languages, for instance, it can simply be ignored and used merely as a grouper 21:32:31 ehird`_: um, begin should return its last argument so you don't want to use or there? 21:32:43 hmm, good point 21:32:48 but it's the only way to get and to work 21:33:24 (and (or x #t) y) should work? 21:33:37 yes, you're right :P 21:34:18 I compiled scheme into java 21:34:29 just for the sake of generating horrible code 21:34:42 e.g. context = new Context(Symbol.intern("succ"), new Lambda(new Cons(Symbol.intern("n"), new Nil()), new Lambda(new Cons(Symbol.intern("f"), new Cons(Symbol.intern("x"), new Nil())), new Cons(Symbol.intern("n"), new Cons(Symbol.intern("f"), new Cons(new Cons(Symbol.intern("f"), new Cons(Symbol.intern("x"), new Nil())), new Nil()))))), context); 21:34:59 that's not compiling 21:35:11 that's just parsing and convertnig to something that calls out to an interp 21:35:17 also, new Nil()? there's only one () 21:35:35 old Nil() :) 21:36:01 oerjan: make a language with that, now 21:36:01 :P 21:36:11 hahaha 21:36:47 ehird`_: huh .. ? 21:36:51 i thought that's the definition of compiling 21:36:55 faxathisia: err, no 21:37:06 compiling would remove the need for the scheme interpreter underneath all that :-) 21:37:18 what does it stand on? 21:37:24 There's got to be -an- interpreter somewhere 21:37:54 sure, the jvm interpreter in your case 21:38:05 I'm confused 21:38:28 it seems arbitrary (that to the JVM or x86 assembly) is compiling but this isn't 21:38:45 actually what faxathisia pasted doesn't seem that much interpreted. 21:38:55 it's just using lots of constructors 21:39:37 or wait 21:40:15 nah i'm speaking nonsense 21:40:29 oerjan: well, evidently that's in a function somewhere but new Lambda(...) is NOT compiled by any reasnable definition :-) 21:40:50 right 21:41:02 it's just an AST 21:41:05 when I said compiling.. I meant changing something from one language to another 21:42:09 speaking of compiling scheme, i've made myself a compiler and compiled the factorial scheme definition to a reasonable definition that would be easy to compile to. i'm thinking of making SCM_if a C if, though. CPS. http://paste.lisp.org/display/52894 21:42:17 like abstraction elimination from \x\y -> SK combinators is compiling too ? 21:42:33 hmm, SCM_OBJECT * returns should really be SCM_CALL returns 21:45:35 -!- cmeme has quit (Excess Flood). 21:46:25 faxathisia: i think the issue that your java version contains both the AST and an interpreter for it 21:46:30 http://paste.lisp.org/display/52894#1 version 2 21:46:32 *is that 21:47:00 oerjan: see any way i could improve that compiler output? :-) 21:47:26 -!- cmeme has joined. 21:47:30 (of course, it uses absolutely 0 stack space so "fact" will never die even if you give it 384797435987359834759345 or something, and call/cc is extremely efficient) 21:48:03 * oerjan suddenly has an urge to press Mark as Spam >:) 21:49:27 oerjan: :( WHY 21:49:47 Because It's There 21:50:36 * oerjan never said he actually did so 21:55:14 SO, any comments on it? :P 21:58:15 how can it not use stack space? it is not tail recursive. 21:59:58 yes it is 22:00:01 even if you allocate scheme frames on the heap there could still be plenty of them 22:00:02 SCM_CALL does nt call 22:00:05 not 22:00:11 it returns a SCM_RETURN structure 22:00:16 a trampoline handles the rest 22:00:20 i.e. 22:00:40 ok it doesn't use C stack 22:00:41 res = func(...); while (res != OK_STOP) { res = res.func(res.args); } 22:00:42 or whatever 22:00:53 but still it uses plenty of scheme "stack" 22:00:57 nuh-huh 22:01:01 look up, no stack at all 22:01:11 and this is nothing new. this is standard continuation-passing style 22:02:05 a continuation is a "stack" 22:02:40 yes, but it still won't run out 22:03:04 but your scheme program is not tail recursive 22:03:14 i know 22:03:17 anyway 22:03:21 it must remember the n's somewhere 22:03:23 yes 22:03:38 but it's goinig to run out a lot further in time than an actually recursive C version 22:03:42 next on my list: scheme->python translator with CPS 22:03:43 :D 22:06:17 -!- Sgeo has quit (Success). 22:07:10 -!- bsmntbombdood has quit (Read error: 110 (Connection timed out)). 22:09:43 http://paste.lisp.org/display/52897 voila 22:40:25 -!- RedDak has quit (Remote closed the connection). 23:08:21 -!- puzzlet has quit (Remote closed the connection). 23:08:22 -!- puzzlet_ has joined. 23:17:39 -!- calamari has joined. 23:30:29 -!- puzzlet_ has quit (Remote closed the connection). 23:30:30 -!- puzzlet has joined. 23:37:24 -!- puzzlet_ has joined. 23:41:17 -!- ehird`_ has quit (Read error: 113 (No route to host)). 23:44:30 -!- puzzlet__ has joined. 23:47:01 -!- ehird` has joined. 23:47:43 -!- puzzlet has quit (Connection timed out). 23:49:46 -!- calamari has quit ("Leaving"). 23:50:43 -!- puzzlet has joined. 23:54:45 -!- puzzlet_ has quit (Connection timed out). 23:56:19 -!- puzzlet has quit (Remote closed the connection). 23:56:20 -!- puzzlet_ has joined.