< 1088212415 0 :iamcal!~bees@h69-cpe104.insinc.com JOIN :#esoteric < 1088221521 0 :Toreun!~Toreun@ool-45738c44.dyn.optonline.net JOIN :#esoteric < 1088228727 0 :Tril!tril@bespin.org JOIN :#esoteric < 1088231899 0 :iamcal!unknown@unknown.invalid QUIT :"buh bye" < 1088236799 0 :clog!unknown@unknown.invalid QUIT :ended < 1088236800 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1088237077 0 :WildHalcyon!~1c34f3b3@c-24-18-250-7.client.comcast.net JOIN :#esoteric < 1088237589 0 :WildHalcyon!unknown@unknown.invalid QUIT :"Goin' away now!" < 1088276569 0 :bbls!~bbls@80.97.121.133 JOIN :#esoteric < 1088276580 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :hello < 1088276624 0 :Toreun!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1088276636 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :hi Toreun < 1088276654 0 :Toreun!unknown@unknown.invalid PRIVMSG #esoteric :how are you, bbls? < 1088276658 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1088276669 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :thinking to create a new language :) < 1088276680 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :[yes.. yet another one :)] < 1088276716 0 :Toreun!unknown@unknown.invalid PRIVMSG #esoteric :hehe < 1088276730 0 :Toreun!unknown@unknown.invalid PRIVMSG #esoteric :how many have you made < 1088276731 0 :Toreun!unknown@unknown.invalid PRIVMSG #esoteric :? < 1088276750 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :well i have no ideea :) < 1088276757 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :actually it's the same language < 1088276771 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :improved, name changed several times, etc < 1088276781 0 :Toreun!unknown@unknown.invalid PRIVMSG #esoteric :ah, I know how that is < 1088276784 0 :Toreun!unknown@unknown.invalid PRIVMSG #esoteric :how's it work? < 1088276784 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1088276787 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :well < 1088276791 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :i have certain problems < 1088276847 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :especially with floating point stuff < 1088276862 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :because using floats < 1088276866 0 :Toreun!unknown@unknown.invalid PRIVMSG #esoteric :floating point? an esolang with floats? < 1088276876 0 :Toreun!unknown@unknown.invalid PRIVMSG #esoteric :not many of those, iirc < 1088276878 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :a+b-a is not necesarly b < 1088276919 0 :Toreun!unknown@unknown.invalid PRIVMSG #esoteric :that's true < 1088276928 0 :Toreun!unknown@unknown.invalid PRIVMSG #esoteric :where's the problem arising? comparisons? < 1088276937 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :not just comparisons < 1088276944 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :my plan is to create a language < 1088276963 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :that is designed in a such way so that the compiler can easly prove that it can't generate exceptions for any input value < 1088277048 0 :Toreun!unknown@unknown.invalid PRIVMSG #esoteric :oh. hmm < 1088277057 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :for example < 1088277063 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :f(x)=1/x < 1088277078 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :the compilation should fail because division is not defined for x=0 < 1088277087 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :you have then to define < 1088277098 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :NonZeroReal:= [x | x in Real and x<>0]; < 1088277108 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :f(NonZeroReal x):=1/x; < 1088277108 0 :Toreun!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1088277117 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :this is ok now < 1088277135 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :althrought the function < 1088277138 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :f(x):=switch < 1088277139 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :{ < 1088277148 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric : x= 0 : 0; < 1088277158 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric : x<>0 : 1/x; < 1088277158 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :} < 1088277167 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :is always defined, so it's ok < 1088277191 0 :Toreun!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1088277207 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :more complex situations arise from < 1088277222 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :f(x):=1/(3*x^2-2*x+1); < 1088277241 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :the compiler needs a builtin symbolic algebra engine < 1088277256 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :so that it can solve that equation and find that it has no real solutions < 1088277261 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :so that the function is always defined < 1088277303 0 :Toreun!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1088277321 0 :Toreun!unknown@unknown.invalid PRIVMSG #esoteric :are there any symbolic algebra libraries out there? < 1088277329 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :don't know < 1088277335 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :but i want to code that too < 1088277346 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :not just use some out of the box lib < 1088277352 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :because it need some other stuff < 1088277386 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :like patterns of recursivity that can be proven to be finite by induction, etc < 1088277401 0 :Toreun!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1088277413 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :because you have to prove that the recusrivity is finite < 1088277417 0 :Toreun!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1088277427 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :you can't do that in general < 1088277442 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :but for particular algorithms/particular patterns you can < 1088277506 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :so you need to build some kind of database < 1088277519 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :also this database will contain basic identities such a+b=b+a < 1088277534 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :or basic inferences such a>b -> a+c>b+c < 1088277550 0 :Toreun!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1088277601 0 :Toreun!unknown@unknown.invalid PRIVMSG #esoteric :hmm... the TI-89 calculator I *think* uses logic to do most basic inferences, but I have no idea how, rather than a database < 1088277642 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :you need a database and smart algorithms for searching in the database < 1088277657 0 :Toreun!unknown@unknown.invalid PRIVMSG #esoteric :you need a database? < 1088277683 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :the database of proof tips (identities, etc) just what i told you before < 1088277694 0 :Toreun!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1088277705 0 :Toreun!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1088277714 0 :Toreun!unknown@unknown.invalid PRIVMSG #esoteric :I suppose you would need basics, thinking about it < 1088277729 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :obviously there are lot of papers on the net about that < 1088277733 0 :Toreun!unknown@unknown.invalid PRIVMSG #esoteric :computers can't exactly handle Number Theory, etc. < 1088277744 0 :Toreun!unknown@unknown.invalid PRIVMSG #esoteric :are there? I haven't looked < 1088277756 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :but i can't find papers that deal with the problem of limited precision < 1088277763 0 :Toreun!unknown@unknown.invalid PRIVMSG #esoteric :apart from Turing's thesis with deals with computational theory < 1088277765 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :that result in problems like a+b-a<>b < 1088277982 0 :Toreun!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1088278038 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :there is no problem for a symbolic math package < 1088278058 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :but since the program is supposed to run on a real machine < 1088278063 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :that results in big trouble < 1088278072 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :a really huge problem < 1088278077 0 :mtve!unknown@unknown.invalid PRIVMSG #esoteric :two ways: 1) symbolic computations, 2) keeping miscalculation, i.e. keeping two numbers - result and precision < 1088278099 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :or keeping 2 numbers, lower limit and higher limit or result < 1088278113 0 :mtve!unknown@unknown.invalid PRIVMSG #esoteric :yep, same thing. < 1088278201 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :but the problem is how you do symbolic computation with that < 1088278254 0 :tonsofpcs!~mirx@ool-4351f382.dyn.optonline.net JOIN :#esoteric < 1088278317 0 :Toreun!unknown@unknown.invalid PRIVMSG #esoteric :hi there tons < 1088278538 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1088278548 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :it might be possible to write a number < 1088278555 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :as [minlin:maxlim] < 1088278573 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :and still do symbolic computations < 1088278635 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :but you have to provide minlim and maxlim for all primitive operations < 1088278651 0 :Tril!unknown@unknown.invalid PART #esoteric :? < 1088281300 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :wow we had Tril in here < 1088281387 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :bbls: Somehow I don't think precision is your biggest problem < 1088281403 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :lament what you think then that's my biggest problem? < 1088282339 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :well < 1088282343 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :? < 1088282344 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :Would this compile? < 1088282353 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :for(;;); < 1088282356 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :return 1/0; < 1088282356 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :no < 1088282363 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :since the language is a pure functional language < 1088282371 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :not an iterative one < 1088282377 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :UM < 1088282384 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :You see my point. Hopefully. < 1088282407 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :well that's why is purely functional :) < 1088282418 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :also recursion is limited to specific cases < 1088282422 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :?? < 1088282427 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :that are known from database to be finite < 1088282454 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :also 1/0 would be catched < 1088282465 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :because division is not defined for 0 < 1088282507 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :What database? < 1088282524 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :you need a database < 1088282524 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :So your language will be incapable of running a program that doesn't halt? < 1088282529 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1088282538 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :it will be impossible to compile a such program < 1088282550 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :then it's not Turing-complete < 1088282557 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :also it would be impossible to compile a program that generates exceptions < 1088282562 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :hence not very fun < 1088282564 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :not it is not turing-complete < 1088282620 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :but that does not means that ppl really neet turing-complete languages < 1088282625 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :*need < 1088282687 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :Well < 1088282695 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :If you manage to create a language like that, it will be the first. < 1088282703 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1088282708 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :i know that < 1088282713 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :and there are many problems < 1088282715 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :I'm not aware of any languages in which non-halting programs are impossible which is of any use. < 1088282739 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :Also, how will you construct this database? < 1088282745 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :you need a database < 1088282750 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :that contains all basic identities < 1088282762 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :such "a>b -> a+c>b+c" < 1088282763 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :and so on < 1088282771 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :just like a normal symbolic algebra package < 1088282798 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :And what does that have to do with recursion? < 1088282813 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :well < 1088282824 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :you also have to prove that all recursions in the program are finite < 1088282839 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :and for that you need to specify in the database < 1088282845 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :some particular cases < 1088282850 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :when the recusion is finite < 1088282854 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :Such as? < 1088282866 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :f(x):=switch < 1088282867 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :{ < 1088282876 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric : x=0 : 0; < 1088282894 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric : x>0 : f(x)-1; < 1088282895 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :}; < 1088282911 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :usually functions that respect that pattern < 1088282916 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :can be proven to be finite < 1088282920 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :using induction < 1088282941 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :Usually, but certainly not always. < 1088282971 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :as i said < 1088282972 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :f(x):=switch < 1088282972 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :{ < 1088282972 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric : x=1 : 1; < 1088282977 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :there will always be a program that can't be compiled < 1088282981 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :with a specific version < 1088282995 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric : x%2 == 0: f(x/2); < 1088282996 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :you you can add support for it in next version < 1088283006 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric : else: f(x*3 + 1); < 1088283007 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :} < 1088283025 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :"else" is banned < 1088283032 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :irrelevant < 1088283038 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :s/else/x%2!=0 < 1088283045 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :not < 1088283047 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :since < 1088283053 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :x%2=0 < 1088283057 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :conflicts with first < 1088283058 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :one < 1088283060 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :(x=1) < 1088283066 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :you can't have overlapping conditions < 1088283073 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :nor you can have missing cases < 1088283090 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :That's pure nazism :) < 1088283104 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :anyway, this is irrelevant < 1088283111 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :it is relevant < 1088283115 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :no, it's not < 1088283118 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :because of those restrictions < 1088283123 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :no, it's not < 1088283127 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :the compiler will be able to actually do some work < 1088283132 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :rewriting my function to fit your restrictions is trivial < 1088283141 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :a(x):=switch < 1088283149 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :{ < 1088283154 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :er < 1088283156 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :ACTION thinks < 1088283160 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :first you mix < 1088283167 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :reals with naturals < 1088283258 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :a(x):=switch < 1088283262 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :{ < 1088283262 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric : x%2==0: b(x/2); < 1088283262 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric : x%2!=0: b(x*3+1); < 1088283262 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :} < 1088283262 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :b(x):=switch < 1088283265 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :{ < 1088283268 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric : x==1: 1; < 1088283270 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric : x> 1: a(x); < 1088283273 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :} < 1088283275 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :what's wrong with it now? :) < 1088283294 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :well < 1088283306 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :b(x) does not catch x<1 < 1088283318 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :let's pretend there's a clause for that there. < 1088283326 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :What now? < 1088283369 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :a output is always real < 1088283392 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :Do you see my point or do you not? < 1088283395 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :it is not ok < 1088283400 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :since x is not decreasing < 1088283402 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :Because if you don't, there's little sense in talking to you. < 1088283419 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :So your language doesn't really support recursion. < 1088283431 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :for a(11) for example < 1088283439 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :you get infinite loop < 1088283444 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :It looks a bit like recursion, but actually it's just loops with a decreasing counter. < 1088283490 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :Correct? < 1088283542 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :got it now < 1088283550 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :you transform x into a multiply of 2 < 1088283556 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :and you keep dividing it < 1088283858 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :anyway that does not means that's impossible < 1088283867 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :it just means that it's hard < 1088283876 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :What is? < 1088283892 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :to write the compiler < 1088283904 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :so that it can recognize such patterns < 1088283919 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :if there is something that can be done by a human brain < 1088283926 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :then a computer can do it too < 1088283927 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :But it won't be able to compile this program? < 1088283939 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :as long as it is clearly defined < 1088283952 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :if the program is finite it will compile < 1088283965 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :if the compiler proves that it is not finite won't compile < 1088283987 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :in the case that it won't be able to either prove either disprove < 1088283996 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :it will refuse to compile too < 1088284006 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :Sounds very, very useless. < 1088284017 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :Can't even write hunt the wumpus in it. < 1088284049 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :what algorithm is that? < 1088284057 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :It's a game. < 1088284080 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :it is an infinite game? < 1088284088 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :Most games are. < 1088284112 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :well, there has to be a solution to that too < 1088284123 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :No, there hasn't. < 1088284147 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :When a language isn't Turing-complete, it doesn't "have" to have anything. < 1088284175 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1088284181 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :there is one thing i've missed < 1088284192 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :you can't get an infinite game < 1088284194 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :ever < 1088284205 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :every program that implements a game is finite < 1088284227 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :just imagine an automata < 1088284242 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :althrought the number of states the system passes thru < 1088284254 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :the actual pass from one state to another is finite < 1088284263 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :always, for any game < 1088284340 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :ACTION doesn't get it < 1088284352 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1088284358 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :imagine a function < 1088284366 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :that receives a number of moves < 1088284372 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :(one from every player) < 1088284379 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :and then outputs the state of the game < 1088284402 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :(eg: a bitmap) < 1088284418 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :althrought the size of the list of moves < 1088284420 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :is indefinite < 1088284423 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :the actual process < 1088284427 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :of computing the state < 1088284428 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :is finite < 1088284436 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :(since the number of moves is always finite) < 1088284446 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :The number of moves is finite? Why? < 1088284454 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :not the number of POSSIBLE move < 1088284462 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :the number of moves realised by the players < 1088284486 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :let's say you want a game < 1088284494 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :where one person things about one number < 1088284503 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :and the other person tries to guess it < 1088284526 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :for simplicity then game ends at first guess < 1088284539 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :obviously there is an indefinite number of moves < 1088284545 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :but the actual number of moves < 1088284548 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :is always finite < 1088284571 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :look here: < 1088284588 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :State function(move_list list1, list2) < 1088284590 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :{ < 1088284627 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric : return state < 1088284628 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :}; < 1088284644 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :the length of list1 and list2 is indefinite < 1088284645 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :but always finite < 1088284648 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :do you get it? < 1088284678 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :no, because it's not < 1088284716 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :the number of moves 2 playes can make is indefinite but ALWAYS finite at a moment of time after they started the game (when you compute the new state) < 1088284747 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :do you get it now? < 1088284760 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :for example < 1088284767 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :Sure, the state is finite. < 1088284770 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :let's say we have a game every 10 seconds < 1088284771 0 :tonsofpcs!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1088284772 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :The point is, the program doesn't halt. < 1088284779 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :And therefore isn't allowed by your compiler. < 1088284799 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :it is since the actual computation of the state uses a finite number of elements (since the lists are finite) < 1088284807 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :so therefore the program is finite < 1088284812 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :so therefore it can be compiled < 1088284849 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :simply put, f(x):=combine_state(f(x-1), last_move); < 1088284850 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :It doesn't halt < 1088284856 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :f(;;) is "finite" < 1088284862 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :no < 1088284863 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :It doesn't have any state at all < 1088284867 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :f(;;) is not finite < 1088284873 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :and i don;t have a such construct in my language < 1088284888 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :er i meant for(;;) but anyway < 1088284922 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :for a specific list of moves the function is always finite < 1088284936 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :that list is taken as players make their moves < 1088284943 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :so therefore it is always finite < 1088284972 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :(althrought it tends to grow towards +infinite, it will never reach that) < 1088285008 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :what is infinite is the number of all possible game end starting with a specific number of moves already done < 1088285036 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :and trying to write a program that finds all thos solutions is invalid in any language you write it < 1088285064 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :do you get it now? < 1088285136 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :I think you're crazy. < 1088285153 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :why? < 1088285192 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :Just becaues. < 1088285194 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :Because. < 1088285210 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :I also think your idea can't possibly work, but i don't know enough about it to prove that. < 1088285771 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :at least until you can do that i have innocence asumption :) < 1088286367 0 :tonsbot!~mirx@ool-4351f382.dyn.optonline.net JOIN :#esoteric < 1088286461 0 :tonsbot!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1088286712 0 :tonsbot!unknown@unknown.invalid NICK :tonsofpcs < 1088288868 0 :tonsofpcs!unknown@unknown.invalid PRIVMSG #esoteric :... < 1088288879 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :hi tonsofpcs < 1088289115 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :gtg < 1088289117 0 :bbls!unknown@unknown.invalid PRIVMSG #esoteric :bye ppl < 1088289117 0 :bbls!unknown@unknown.invalid PART #esoteric :?