< 1173486081 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :bah < 1173486426 0 :ShadowHntr!i=sentinel@wikipedia/Shadowhntr JOIN :#esoteric < 1173486652 0 :RodgerTheGreat!n=Rodger@24-236-191-30.dhcp.mrqt.mi.charter.com JOIN :#esoteric < 1173486659 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :hi everyone < 1173486779 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :i < 1173488088 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :http://www.cs.duke.edu/~rodger/baking/cs030327.html < 1173488334 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :hunh < 1173488346 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :Original, I guess < 1173490365 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :edible turing machines, eh? < 1173490503 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :if you could execute the program by eating the muffins, that would make it better < 1173490545 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :like, a muffin could be an unpunched cell on a tape < 1173490569 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :bitwise cyclic tag would be awesome with an infinite series of muffins extending to the right < 1173490638 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :no, not infinite, remember, just unbounded < 1173490661 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :haha- true, true < 1173493094 0 :GreaseMonkey!n=thematri@210-86-105-129.jetstream.xtra.co.nz JOIN :#esoteric < 1173495816 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :what's the difference? < 1173495838 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :infinite muffins is too expensive and nobody can afford it < 1173495848 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :but unbounded muffins just means you have to be ready to go out and buy another one if need be < 1173495864 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :in reality, there has to be a bound, but you can fake it < 1173495906 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :what lang is this? < 1173496007 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :i believe it's a turing machine < 1173496019 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1173498028 0 :GreaseMonkey!unknown@unknown.invalid NICK :^_` < 1173498788 0 :calamari!n=calamari@ip72-200-73-175.tc.ph.cox.net JOIN :#esoteric < 1173498846 0 :GregorR_!n=GregorR@c-24-22-56-63.hsd1.or.comcast.net JOIN :#esoteric < 1173498921 0 :oklopol!unknown@unknown.invalid QUIT :calvino.freenode.net irc.freenode.net < 1173498921 0 :sekhmet!unknown@unknown.invalid QUIT :calvino.freenode.net irc.freenode.net < 1173498921 0 :NK`!unknown@unknown.invalid QUIT :calvino.freenode.net irc.freenode.net < 1173498921 0 :SimonRC!unknown@unknown.invalid QUIT :calvino.freenode.net irc.freenode.net < 1173498921 0 :GregorR!unknown@unknown.invalid QUIT :calvino.freenode.net irc.freenode.net < 1173498941 0 :^_`!unknown@unknown.invalid QUIT :Killed by ballard.freenode.net (Nick collision) < 1173498942 0 :oklopol!n=villsalo@194.251.102.88 JOIN :#esoteric < 1173498942 0 :sekhmet!n=pez@ppp-70-226-146-235.dsl.mdsnwi.ameritech.net JOIN :#esoteric < 1173498942 0 :GregorR!n=GregorR@c-24-22-56-63.hsd1.mn.comcast.net JOIN :#esoteric < 1173498942 0 :NK`!i=niko@213.151.173.210 JOIN :#esoteric < 1173498942 0 :SimonRC!n=sc@bylands.dur.ac.uk JOIN :#esoteric < 1173498945 0 :GregorR!unknown@unknown.invalid QUIT :Nick collision from services. < 1173498973 0 :thematrixeatsyou!n=thematri@210-86-105-129.jetstream.xtra.co.nz JOIN :#esoteric < 1173498974 0 :GregorR_!unknown@unknown.invalid NICK :GregorR < 1173499017 0 :thematrixeatsyou!unknown@unknown.invalid NICK :GreaseMonkey < 1173499662 0 :SimonRC!unknown@unknown.invalid QUIT :calvino.freenode.net irc.freenode.net < 1173499662 0 :sekhmet!unknown@unknown.invalid QUIT :calvino.freenode.net irc.freenode.net < 1173499662 0 :NK`!unknown@unknown.invalid QUIT :calvino.freenode.net irc.freenode.net < 1173499662 0 :oklopol!unknown@unknown.invalid QUIT :calvino.freenode.net irc.freenode.net < 1173499752 0 :oklopol!n=villsalo@194.251.102.88 JOIN :#esoteric < 1173499752 0 :sekhmet!n=pez@ppp-70-226-146-235.dsl.mdsnwi.ameritech.net JOIN :#esoteric < 1173499752 0 :NK`!i=niko@213.151.173.210 JOIN :#esoteric < 1173499752 0 :SimonRC!n=sc@bylands.dur.ac.uk JOIN :#esoteric < 1173499882 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :good night everyone < 1173499906 0 :RodgerTheGreat!unknown@unknown.invalid QUIT : < 1173501338 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :the wiki db backups were messed up for a few days < 1173501348 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :i think they're good now < 1173502986 0 :Sgeo!unknown@unknown.invalid QUIT :"Leaving" < 1173504637 0 :Arrogant!i=Arrogatn@115.orlando-09-10rs.fl.dial-access.att.net JOIN :#esoteric < 1173505283 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :afk food < 1173505832 0 :digital_me!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1173505959 0 :calamari!unknown@unknown.invalid QUIT :Remote closed the connection < 1173506316 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :back < 1173507056 0 :ShadowHntr!unknown@unknown.invalid QUIT :"End of line." < 1173509428 0 :anonfunc!n=dholman@ppp-67-121-238-228.dsl.chic01.pacbell.net JOIN :#esoteric < 1173511725 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :getting off now, cya < 1173511801 0 :GreaseMonkey!unknown@unknown.invalid QUIT :"There's always another bug to fix" < 1173513599 0 :clog!unknown@unknown.invalid QUIT :ended < 1173513600 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1173514726 0 :anonfunc!unknown@unknown.invalid QUIT : < 1173514779 0 :anonfunc!n=dholman@ppp-67-121-238-228.dsl.chic01.pacbell.net JOIN :#esoteric < 1173514838 0 :anonfunc!unknown@unknown.invalid QUIT :Client Quit < 1173514911 0 :anonfunc!n=dholman@ppp-67-121-238-228.dsl.chic01.pacbell.net JOIN :#esoteric < 1173516883 0 :Arrogant!unknown@unknown.invalid QUIT :"Leaving" < 1173517384 0 :anonfunc!unknown@unknown.invalid QUIT : < 1173518146 0 :sebbu!n=sebbu@ADijon-152-1-55-7.w83-194.abo.wanadoo.fr JOIN :#esoteric < 1173522452 0 :jix!n=jix@dyndsl-091-096-033-198.ewe-ip-backbone.de JOIN :#esoteric < 1173523033 0 :nazgjunk!n=htitan@wikipedia/Nazgjunk JOIN :#esoteric < 1173526331 0 :jix__!n=jix@dyndsl-080-228-190-123.ewe-ip-backbone.de JOIN :#esoteric < 1173526836 0 :jix!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1173527117 0 :jix__!unknown@unknown.invalid NICK :jix < 1173529502 0 :tgwizard!n=tgwizard@c-a73ee155.178-1-64736c10.cust.bredbandsbolaget.se JOIN :#esoteric < 1173529638 0 :UpTheDownstair!n=htitan@wikipedia/Nazgjunk JOIN :#esoteric < 1173529685 0 :nazgjunk!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1173529829 0 :UpTheDownstair!unknown@unknown.invalid NICK :nazgjunk < 1173530610 0 :nazgjunk!unknown@unknown.invalid QUIT :"Leaving" < 1173540831 0 :mike_the_person!n=asdf2@66-239-63-229.starstream.net JOIN :#esoteric < 1173540972 0 :mike_the_person!unknown@unknown.invalid PRIVMSG #esoteric :!help < 1173540975 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon < 1173540977 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl < 1173541525 0 :mike_the_person!unknown@unknown.invalid QUIT :"Chatzilla 0.9.77 [Firefox 1.5.0.10/2007021601]" < 1173541961 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1173546268 0 :sekhmet_!n=pez@ppp-70-226-141-18.dsl.mdsnwi.ameritech.net JOIN :#esoteric < 1173546304 0 :sekhmet!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1173546599 0 :sekhmet_!unknown@unknown.invalid NICK :sekhmet < 1173552213 0 :twice11!n=karcher@212.21.88.27 JOIN :#esoteric < 1173552245 0 :Sgeo!n=sgeo@ool-18bf61f7.dyn.optonline.net JOIN :#esoteric < 1173552680 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :On the wiki, it says 0x29A is turing complete. Are there any references supporting that claim? < 1173553069 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it seems to contain combinator calculus as a subset, by using the sk~ commands. < 1173553128 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :I did not succeed in finding out how to create a function on the stack that increments the accumulator by to when executed (getting passed enough arguments to start running). < 1173553218 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :And I am quite lost in finding out how to do anything useful if i can't somehow save the accumulator to the stack (in form of a function). < 1173553223 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(+(+x)y)y < 1173553227 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i think < 1173553262 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :You mean ++x~y~~y~? < 1173553309 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :eh... < 1173553318 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :That does not work, because (+x)y gets already executed when I try to build the function. < 1173553326 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh. < 1173553398 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :use the abstraction elimination of \z. +(+xy)y < 1173553514 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :Sorry, I can't follow you on that. < 1173553534 0 :tgwizard!unknown@unknown.invalid QUIT :Remote closed the connection < 1173553565 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :let me use Unlambda notation. < 1173553594 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :\z. ``+``+xyy = < 1173553618 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :``s``s`k+``s``s`k+`kx`ky`ky < 1173553691 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :I am not used to unlambda, but you apply the s combinator to (k+). I already tried that < 1173553729 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :It does not work, because (((s(k+))x)y) gets converted to (((k+)x)y) < 1173553756 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :This does not get anything, because the k combinator is too deep inside the parens to match any of the reduction rules. < 1173553762 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you mean (+x)y < 1173553800 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh? < 1173553814 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :My implementation of 0x29A does *not* to the step from (((k+)x)y) to ((+x)y) < 1173553836 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :I think this is according to the documentation. < 1173553865 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :well then you mean (((k+)y)(xy) < 1173553867 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :Oops. It should do the step from (((k+)x)y) to (+x), of course... < 1173553885 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :Sorry, yes. < 1173553924 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :To put it right. I meant (((s(k+)x)y) gets (((k+)y)(xy)), and this gets stuck. < 1173553989 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :You get stuck as soon as the "x" in (((sx)y)z) is anything but a k-like combinator (k,+-.,) or s, maybe applied to something. < 1173553994 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i see. so there is an error in the embedding of combinator calculus into 0x29a. < 1173554049 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :I admit to have overlooked in my search for a possibility of doing something useful what happens if x in (((sx)y)z) is is of the form (sx). < 1173554210 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :right. it evaluates only the top level of the function, if you take the description literally. < 1173554278 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :seems like a bug in the language description to me. < 1173554304 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :Might be. < 1173554325 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :I think I suceeded in writing a +2 function. < 1173554354 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :(((s(sa))b)c) with a=(+), b=(+x) and c=y < 1173554373 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :[where x, y are don't care functions] < 1173554457 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :Yes, I tried it. It works. < 1173554458 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :=sac(bc) = a(bc)(c(bc)) < 1173554522 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric := ++r, bc = ++r, ++r, x < 1173554541 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :looks good < 1173554587 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :See http://pastebin.ca/389482. < 1173554696 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :The haskell 0x29A interpreter is at http://pastebin.ca/389491 < 1173555086 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :there seems to be no way to duplicate values on the stack. < 1173555115 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :so a function can only be evaluated once. < 1173555143 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :Yes. This is also a problem. < 1173555195 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :But I did not yet prove whether it is impossible to create a function that runs the function and returns the function on the stack. < 1173555202 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :This would solve the problem. < 1173555242 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i was pondering whether you could make a pair of functions simulate a brainfuck tape. < 1173555307 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :I got lost at simulating the tape when I found out that there is no way to access anything but top-of-stack and next-to-top-of-stack. < 1173555360 0 :twice11!unknown@unknown.invalid QUIT :"taking a break." < 1173555693 0 :RodgerTheGreat!n=Rodger@24-236-191-30.dhcp.mrqt.mi.charter.com JOIN :#esoteric < 1173555830 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :hi, everyone < 1173555841 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1173557251 0 :bsmntbombdood!unknown@unknown.invalid NICK :xor < 1173558069 0 :ShadowHntr!i=sentinel@wikipedia/Shadowhntr JOIN :#esoteric < 1173561508 0 :twice11!n=karcher@212.21.88.27 JOIN :#esoteric < 1173561528 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hi, i think i solved the tape implementation < 1173561573 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i put a description on the wiki. < 1173561623 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :I think I also have an idea. You use two functions as stack. < 1173561638 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :One for the values before current, one for values after currents. < 1173561651 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :that was my idea too :) < 1173561672 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :I will try to implement it on my own, just as an exercise. < 1173561697 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :But this has the problem that brainfucks + and - operations get O(N). < 1173561713 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :I don't see a way around it. < 1173561720 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :eh, i save the _current_ cell in the register. < 1173561748 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :maybe you mean > and < ? < 1173561759 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :Oh, sorry. Yes, of course. < 1173561794 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :actually not O(N), but with a possible constant factor <= 256. < 1173561813 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :so still technically O(1). < 1173561834 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :OK, I used to use 16 or 32 bit cells on brainfuck with numeric I/O < 1173561856 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :So I am used to cells containing 5-figure numbers. < 1173561868 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :0x29A has byte registers. < 1173561884 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :*register < 1173561921 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :Yes :-). So it seems like emulating byte-brainfuck with ascii-code I/O is the simplest thing. < 1173561984 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :BTW, is there literature on doing binary arithmetic in bf where cells are used as bits, to get O(logN) addition. < 1173561999 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :That was a strange idea I had some year ago. < 1173562023 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :This kind of bf use seems to translate into 0x29A without too high performance penalties. < 1173562038 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i think i've seen it mentioned. Try looking at boolfuck. < 1173562083 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :or similar variants. < 1173562190 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :Yes, the translation they offer is mainly the same idea. < 1173562265 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :But the problem with boolfuck compared to my brainfuck-with-binary approach < 1173562279 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :is that I can't detect carries in boolfuck. < 1173562306 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :And of course, performance is complete gone after translation from boolfuck to brainfuck. < 1173562524 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :heh, i wonder... < 1173562561 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :maybe the broken S combinators work if you use continuation passing style. < 1173562580 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :because that corresponds to always staying at the top expression. < 1173562600 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :The whole language seems to work only with CPS. < 1173562625 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :And I currently think about the k-style combinators (+-,.) just as < 1173562640 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :operators that get a continuation and a "start-now" flag as parameters. < 1173562672 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :I am still puzzled about how to write a +3 function, but don't tell me. I will find out on my own. < 1173562695 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :I seem to have run into the "broken S combinators" on my first attempt. < 1173562705 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :don't look at the wiki then because i have exactly that as the example < 1173562730 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :I just plugged the +2 function into the +2 function. Probably I should have changed the other + to +2. < 1173562732 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :essentially. < 1173562869 0 :twice11!unknown@unknown.invalid QUIT :"tearing down dial-up line. back later. reading logs." < 1173565268 0 :twice11!n=karcher@212.21.88.27 JOIN :#esoteric < 1173565296 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: I got the same results as you. < 1173565335 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :I use "ss+~~%~" to add one to the result of the function currently on the stack < 1173565353 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :and "k%~" to separate to functions. < 1173565354 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :by coincidence? although i did start with that +2 function you mentioned earlier. < 1173565391 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :well then it simply has to work :) < 1173565402 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :And I got the idea for the two-functions-make-a-tape by your comment from 11:34:02 < 1173565411 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :"i was pondering whether you could make a pair of functions simulate a brainfuck tape." < 1173565440 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :I fell into the trap that i did not remember that ] does not < 1173565455 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :decrement the register, so my first attempt for the reg-to-stack loop < 1173565460 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :got an endless loop. < 1173565482 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :The second attempt showed that my 0x29A parser (a real hack) < 1173565501 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :stops parsing after the first looped. After fixing, it worked. < 1173565536 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric : run "+%~k~+%~k~+%~k~ k%~[ss+~~%~-%~k~] k~" < 1173565560 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :puts the number 3 into the register (first part), saves it into a function (second part) < 1173565567 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :and executes it (third part). < 1173565600 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :As output is destructive, I still have to develop a clone-value < 1173565619 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :right < 1173565628 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :function (so of course a run function with itself as continuation function) < 1173565654 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :But currently I think it should be possible using the s combinator somehow. < 1173565655 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :btw i suggest applying to i to execute the function. < 1173565684 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :because then i works also as the end of tape < 1173565726 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :The function applied to execute gets omitted by the k-like combinators. < 1173565738 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :I don't think it matters at all, which one I use. < 1173565752 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it matters if you want the tape to expand automatically. < 1173565817 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :unless you manage to make the unlambda v combinator. < 1173565952 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :for the output value cloning it may be simpler to make the loop build two independent functions. < 1173565993 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :You are right. Applying k to the end of tape puts k to the stack. Putting i there is better. < 1173566103 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm, wait... < 1173566117 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it actually doesn't matter that much. < 1173566138 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :applying to k just make you flip between k and (kk). < 1173566140 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :Building two functions in the loop works. < 1173566145 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and is shorter. < 1173566160 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :*makes < 1173566203 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :To build two functions, the loop looks like k%~k%~ [ss+~~%~%ss+~~%~ -%~k~] < 1173566559 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :There is a catch: one should start the function (at least the later-executed one) with i < 1173566569 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :to get completely rid of it with %~ < 1173566633 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :right < 1173567001 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :A working translation for bf "." is: < 1173567006 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :sk~s~ sk~s~ [ss+~~%~%ss+~~%~ -%~k~] k~.%~ %~ < 1173567278 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i'm not sure that last %~ is quite right. Remember that . loses its second argument. < 1173567295 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :eh wait < 1173567397 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :Oops, there is a fault. The working (tested) version has < 1173567433 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :(sk~s~)~.%~k~ ~ %~ past the loop < 1173567605 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :somehow i suspect it can be done shorter somehow with just k's than with sk~s~ < 1173567762 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :note that a final drop can also be done with %k%~%~ < 1173567983 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :Yes. Independent of the start value. You are right. < 1173568207 0 :graue!unknown@unknown.invalid QUIT :"Leaving" < 1173568363 0 :graue!i=graue@ip68-100-130-21.dc.dc.cox.net JOIN :#esoteric < 1173568531 0 :jix!unknown@unknown.invalid QUIT :"Bitte waehlen Sie eine Beerdigungnachricht" < 1173568605 0 :SevenInchBread!n=CakeProp@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake JOIN :#esoteric < 1173568665 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :Except for ".", where I seem to have something messed up by simplification, my bf->0x29A seems to work now. < 1173568678 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :s/by/on/ < 1173568705 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :cool < 1173568734 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :I will put it to the pastebin when it's ready. < 1173568769 0 :graue!unknown@unknown.invalid QUIT :"Leaving" < 1173568796 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is looking at ways to encrypt information so that it can't be censored or subject to copyright law. < 1173568799 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :some links on the wiki would be nice too < 1173568811 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :mainly steganography, anonymous proxies and stuff. < 1173568827 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :How permanent is the pastebin? Can I link to there? < 1173568863 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :LOL CRYPTO-ANARCHISM < 1173569111 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :http://www.cs.duke.edu/~rodger/baking/cs.html < 1173569129 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :Actually, I just got that from here, didn't I? < 1173569132 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :D'oh. < 1173569132 0 :xor!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: old < 1173569161 0 :xor!unknown@unknown.invalid PRIVMSG #esoteric :haha < 1173569166 0 :xor!unknown@unknown.invalid PRIVMSG #esoteric :CompSci 4: Alice Programming Language" < 1173569174 0 :xor!unknown@unknown.invalid PRIVMSG #esoteric :"CompSci 6: Introduction to Java" < 1173569205 0 :xor!unknown@unknown.invalid PRIVMSG #esoteric :ACTION screams about misuse of CS < 1173569295 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :indeed < 1173569302 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :twice11: you could submit it to one of the maintainers of the esolangs archive. < 1173569307 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :they shouldn't be teaching languages < 1173569313 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :They should be teaching paradigms < 1173569349 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :I put the brainfuck -> 0x29A translation to the wiki. It's short. < 1173569367 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :that too :) < 1173569378 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :The 0x29A interpreter needs some polishing, it's worst WFM quality. < 1173569394 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :I will put it to some webspace I own and link it from the wiki. < 1173570366 0 :twice11!unknown@unknown.invalid PRIVMSG #esoteric :The translation is on the wiki now.