< 1199405104 0 :tesseracter__!unknown@unknown.invalid NICK :tesseracter < 1199407516 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Heh. Explaining lambda calculus is a hard task. < 1199407693 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It's remarkably easier when one can assume an understanding of functions. < 1199407766 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :"Alright, you have functions, right?" "Right." "You just pass those around. That's your entire semantic setup." "Whoa. . ." < 1199408589 0 :tesseracter!unknown@unknown.invalid PRIVMSG #esoteric :. < 1199408797 0 :tesseracter!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: i was most confused by the FoG syntax. F(G(x)) is sooooo much simpler < 1199408835 0 :tesseracter!unknown@unknown.invalid PRIVMSG #esoteric :math dudes have so many symbols. < 1199408869 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :errr yeagh. < 1199408874 0 :tesseracter!unknown@unknown.invalid PRIVMSG #esoteric :i learned 4 notations for boolean logic, thats just insane. < 1199408892 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :FoG, of course, doesn't mean the same as F(G(x)). < 1199408916 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION had a secret idea of trying to sneak in a couple :-) :-( smileys as dual operators in a math paper < 1199408916 0 :tesseracter!unknown@unknown.invalid PRIVMSG #esoteric :lament, GoF or FoG....its been a while. < 1199408922 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :it means the same as lambda x -> F(G(x)), which is rather painful to write out. < 1199408933 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :and it introduces an unnecessary symbol. < 1199408984 0 :tesseracter!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: i think i did those in C at one point... < 1199409045 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm, :-> and :-< would work in haskell < 1199409075 0 :tesseracter!unknown@unknown.invalid PRIVMSG #esoteric :or maybe it was :- as a post operation and a function, so :-(x, y:-) < 1199409200 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(-: "only" )-: "joking" < 1199409222 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i've got to try that in lambdabot < 1199409231 0 :tesseracter!unknown@unknown.invalid PRIVMSG #esoteric :heh. < 1199409265 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :if i can find a way to make it well-typed < 1199409391 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm needs polymorphism at least < 1199409657 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, if you get that in a math paper, I will worship you. < 1199409659 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(more) < 1199409661 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric ::p < 1199410252 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Well, lambda calculus doesn't have FoG as far as I know: < 1199410272 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :It's just fg or `fg, unlambda style. < 1199410485 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :But the hard part is explaining the lambda itself, it seems. < 1199410705 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :ACTION tried to do some Unlambda loop < 1199410712 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :```sii``s`k`.xi``sii < 1199410717 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I get stack overflow. < 1199410937 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :What be the problem? < 1199410943 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1199411011 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Well, after printing one x, the C stack overflow, that is. < 1199411026 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :-> ``i``s`k`.xi``sii`i``s`k`.xi``sii < 1199411086 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Why can't the doubling be just a SII? < 1199411177 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :-> ```s`k`.xi``sii`i``s`k`.xi``sii -> ```k`.xi`i``s`k`.xi``sii```sii`i``s`k`.xi``sii < 1199411186 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :argh < 1199411203 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I do it on paper with parenthesis. Less strain on the brain. < 1199411215 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :The thing was : < 1199411228 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :(SII)(S(K(.xi))(SII)) < 1199411237 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :(S(K(.xi))(SII))(S(K(.xi))(SII)) < 1199411264 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :[(K(.xi))(S(K(.xi))(SII))][(SII)(S(K(.xi))(SII))] < 1199411276 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :(.xi)[(SII)(S(K(.xi))(SII))] < 1199411286 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :And then back to (SII)(S(K(.xi))(SII)) < 1199411304 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :But with a bonus x on the screen. < 1199411339 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :But it seems to overflow my stack or something. < 1199411360 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :um how fast are you removing the I's? < 1199411392 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Wut? < 1199411408 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you ignored the I's < 1199411426 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :I((S(K(.xi))(SII))I(S(K(.xi))(SII)) < 1199411427 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Let me redo that. < 1199411443 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :er no < 1199411456 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Oh, that. < 1199411469 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Well, I apply SII as ^x.xx < 1199411472 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Faster to do. < 1199411493 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :how does a turing machine stack overflow anyway? < 1199411500 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :or is this something else? < 1199411503 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :That's on your interpreter. < 1199411528 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :The Turing (or Love) machine (9000) is right now resting. < 1199411536 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :mine? which one? < 1199411541 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Haskell one. < 1199411545 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1199411547 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :On them winhugs. < 1199411561 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh dear < 1199411626 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :The Love Machine cannot stack overflow. Maybe tape-overflow, but well. < 1199411777 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :argh! why oh why can't winhugs paste into a running program :( < 1199411869 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Well, it's only 20 chars. < 1199411896 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :` is horrible to type on a norwegian keyboard :( < 1199411940 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :It is particularly annoying to type on Winhugs, because you have to type ` + space, or it crashes. < 1199411988 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm where is it on an english keyboard? < 1199411998 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I don't have an english keyboard. < 1199411999 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, seeing the Norwegian keyboard layout, that is not my idea of a keyboard that's good for coding. . . < 1199412016 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :On the US QWERTY keyboard, ` is to the right of 1. < 1199412019 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :s/right/left/ < 1199412034 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1199412040 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :ACTION has : http://upload.wikimedia.org/wikipedia/commons/thumb/c/ca/Azerty_fr.svg/800px-Azerty_fr.svg.png < 1199412050 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :` is alt + 7 < 1199412110 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Single keystroke here. w00ts. < 1199412133 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :shift-\ space here < 1199412136 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Granted, the US keyboard layout is kinda handy for most coding, since the most you'll have to do is hit shift. < 1199412146 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I wonder why keyboards still have keys that have no longer any purpose. < 1199412153 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :At least not that often. < 1199412159 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(unless you decide to use US international, which has deadkeys) < 1199412174 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Like pause, inser or num lock < 1199412196 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Num lock changes the behavior of the number bad. < 1199412196 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh now wait < 1199412209 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Yes it does. But does anyone use it? < 1199412211 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :we were doing lazy evaluation < 1199412215 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Some people do. < 1199412231 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I don't even touch the number pad, so. . . ;) < 1199412238 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Last time I used it, I think it was for Civilisation 2. < 1199412249 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Because the diagonal arrows were somehow useful. < 1199412297 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the numpad makes no sense, who in their right mind would want to write numbers with right hand only < 1199412306 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :unless left-handed of course < 1199412321 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i should get a leftie keyboard < 1199412357 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ah, the C interpreter doesn't print more than one either :) < 1199412365 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :oerjan : Does the interpreter change (SII)(S(K(.xi))(SII)) in (SII)(S(KI)(SII)) directly. < 1199412379 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :unlambda is a strict language < 1199412381 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Or something similar, that is. < 1199412388 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it evaluates arguments first < 1199412411 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the `.xi is only evaluated once < 1199412431 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :although i am still disappointed haskell stack overflows, a bit :( < 1199412441 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :That's why I copied it via some fixpoint combinator. < 1199412453 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :But apparently, not good enough! < 1199412543 0 :Jontte!unknown@unknown.invalid QUIT :"Konversation terminated!" < 1199412605 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :try adding `d before `k < 1199412680 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hmph, it eventually stack overflows then too < 1199412693 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :but at least it prints x'es galore < 1199412818 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Ah yes! < 1199412841 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Was it because the interpreter evaluated the (.xi) inside the expression first? < 1199412846 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :right < 1199412883 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Is the non-lazy evaluation done for optimisation purpose? < 1199412909 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :only madore knows :) < 1199412939 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Damn him! < 1199412942 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :but strict is usually more efficient than lazy < 1199412971 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :when naively implemented at least < 1199412980 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh one more thing < 1199413007 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :continuations depend on strictness < 1199413153 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I wonder if I could make some sort of lazy unlambda. < 1199413181 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Well, on something else than the Love Machine 9000. < 1199413191 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you know about Lazy K, right? < 1199413194 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :It puts a strain on my good mood, with all those chars. < 1199413202 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Yes, but Lazy K has horrible I/O < 1199413216 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :so does unlambda, I at least < 1199413269 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :What would be a good input for a purely functional language? < 1199413299 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1199413324 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :lazy K's basic idea (stream -> stream function) is pretty neat < 1199413373 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :The only output I ever got from Lazy K was more combinators. I don't know if it's because that's supposed to be or because I don't know how to use it. < 1199413379 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(neat enough that haskell as an interact function which uses it) < 1199413399 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you wrote your own interpreter? < 1199413424 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :No. < 1199413441 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :weird maybe it has different modes of running < 1199413452 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Or I just don't know how to use it. < 1199413471 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i mean, you actually got it to print combinators? < 1199413511 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :If it surprises you, I doubt it. < 1199413601 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I think what I got was the Scheme - Lazy K translator and the program never was interpreted. < 1199413625 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :aha < 1199413780 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Is the interpreter only available as the C++ one and the .exe one? < 1199413809 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i don't recall < 1199413856 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :If so, that would explain it. I never got them working. < 1199415395 0 :puzzlet_!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1199415400 0 :puzzlet!n=puzzlet@147.46.241.160 JOIN :#esoteric < 1199416035 0 :wooby!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1199416442 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :ACTION made some sort of minimalist lazy Unlambda on Python. < 1199416488 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I get my gallore of x's, but apparently the expression keeps increasing in size. < 1199416498 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :`i's all over the place. < 1199416589 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Something like this : http://membres.lycos.fr/bewulf/Russell/Loop.txt < 1199416675 0 :puzzlet!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1199416680 0 :puzzlet!n=puzzlet@147.46.241.160 JOIN :#esoteric < 1199417839 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :When it is said that SKK is equivalent to I, isn't it actually SK[any combinator]? < 1199417849 0 :bsmntbombdood_!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1199417865 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Good. Makes abstraction elimination easier. < 1199417914 0 :bsmntbombdood_!unknown@unknown.invalid NICK :bsmntbombdood < 1199417931 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :no tail for bsmnt < 1199417971 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Or does it? < 1199417973 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Damn. < 1199417992 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :in actual unlambda there is a bit restriction, SKxy = Ky(xy) so x must be something which has no effect when evaluated or applied < 1199418019 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Well, since I'm doing it lazy style, no problem < 1199418037 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Although I'm not sure it works perfectly. < 1199418052 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :When I try actual Unlambda programs, I get errors. < 1199418084 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :actual unlambda programs usually depend on strictness < 1199418104 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Well, I would expect screwed up text display. < 1199418108 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :But not errors. < 1199418127 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm errors? < 1199418153 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wonders why Unlambda assumes strictness < 1199418173 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Index out of range, mostly. < 1199418199 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :http://membres.lycos.fr/bewulf/Russell/Lazylambda.py < 1199418208 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I think it's linked to the argument checker. < 1199418333 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you might write a test that the program remains well-formed at eah step... < 1199418341 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :*each < 1199418413 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Well, right now I'm mostly trying some simple programs with the lambda expressions displayd at each step. < 1199418438 0 :puzzlet!unknown@unknown.invalid QUIT :Remote closed the connection < 1199418447 0 :puzzlet!n=puzzlet@147.46.241.160 JOIN :#esoteric < 1199418449 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i can see that you would get index out of range if the first primitve is applied to too few parameters < 1199418497 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Probably. I tried to avoid that, but I guess I'll just have to check manually. < 1199418548 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ah yes you have a check for single remaining primitve < 1199418561 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :*primitive < 1199418569 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Well, that's only to stop the program. < 1199418588 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I was referring to the if k == len(lambexp) : and such < 1199418623 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Well, so far s and k with few arguments work < 1199418632 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :um, i am referring to index out of bounds < 0 < 1199418672 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Wut? < 1199418711 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :`ki e.g. will crash at lambexp[i-2]=="`": < 1199418752 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :`ki doesn't crash. < 1199418765 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Heh. ```sii``sii has the expected effect! < 1199418793 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I should make a combinator for SII that doesn't leave `i's everywhere. < 1199418793 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh wait you continue at ` < 1199418830 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Lazy evaluation make that sort of loop hard on the memory < 1199418901 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm wait < 1199418911 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :how is it possible that `ki does not crash? < 1199418927 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION doesn't have python < 1199418970 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :`ki doesn't have the required ``, so it doesn't transform into anything. < 1199418980 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :It just remains `ki forever. < 1199418986 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :er i mean the test for `` crashes it < 1199419009 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :that's my point < 1199419020 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :sleeps -> < 1199419028 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :What's the problem in that? < 1199419061 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :when i=1 and it reaches the k, it gets to the line: < 1199419071 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :if lambexp[i]=="k" and lambexp[i-1]=="`" and lambexp[i-2]=="`": < 1199419104 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the lambexp[i-2] then gives an index out of bounds error afaics < 1199419119 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I would expect it to, but for some reason, it doesn't. < 1199419138 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :The problem boys are usually if lambexp[l]=="`": < 1199419269 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh wait < 1199419288 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :negative indices in python restart from the end of the string don't they. < 1199419301 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :that explains it. < 1199419303 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1199419311 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :This might cause problems now that you mention it. < 1199419332 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :although no expression should ever end in ` < 1199419343 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I should make if lambexp[i-2]=="`": inside the other conditional < 1199419351 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Yes, but well, you never know! < 1199419374 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :if you test for well-formed-ness at the start... < 1199419444 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh wait < 1199419451 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :in theory it could end in .` < 1199419459 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :That too. < 1199419538 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :ACTION added if i>1 < 1199419555 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :It's not a lazy program for nothing! < 1199420075 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :What's a compact way to do Chuch numerals in SKI? < 1199420089 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :``s`k``s``s`k``s`ksks`kk``s`k`sik isn't very compact. < 1199420142 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i cannot quite decipher that this late... < 1199420160 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Don't bother, I'm not even sure they're proper Church numerals. < 1199420179 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :but i've usually started with 2 and 3 and used arithmetic < 1199420243 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :powers are just application, multiplication is composition < 1199420281 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :addition is composition after application < 1199421300 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :``s``s`ks``s`kki``s``s`ks``s`kki`ki < 1199421313 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Well, I was hoping for something somehow shorter. < 1199421327 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :But applied to .x and i, it gives the expected result. < 1199421355 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm... < 1199421363 0 :puzzlet!unknown@unknown.invalid QUIT :Remote closed the connection < 1199421368 0 :puzzlet!n=puzzlet@147.46.241.160 JOIN :#esoteric < 1199421394 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :``s`kki = k < 1199421426 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :eta-reduction < 1199421475 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :That man is a combinator machine! < 1199421535 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I should make a small file of combinators. < 1199421555 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :18 and 256 are in my unlambda self-interpreter, btw < 1199421568 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Why 18? < 1199421584 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :length of a table < 1199421609 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Well, I have 0 and 2. Let's try 1: < 1199421657 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :``s``s`kski = 2 can be extracted from those < 1199421704 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and yours above after that reduction < 1199421759 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :So ``s`kki``s``s`ksk`ki = `ki? < 1199421768 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :1 = i < 1199421779 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Or maybe not. < 1199421785 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Aaaargh < 1199421791 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :` notation is hard to read < 1199421905 0 :puzzlet!unknown@unknown.invalid QUIT :Remote closed the connection < 1199421910 0 :puzzlet!n=puzzlet@147.46.241.160 JOIN :#esoteric < 1199422052 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :How can 1 be i? < 1199422059 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Or... < 1199422062 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :ACTION thinks < 1199422082 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Eta reduction? < 1199422088 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Dang. < 1199422101 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :1 f x = f x < 1199422138 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :0 f x = x = i x = k i f x, so 0 = k i < 1199422154 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :It was the (^fx.fx)C = ^x.Cx that worried me < 1199422160 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :But then I thought of Eta reduction. < 1199422215 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :haskell puts foralls on automatically, but outermost < 1199422258 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION throws a holy hand grenade after Mr. Wong. after counting to 3. < 1199423707 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :````s`k``s``s`kski``s``s`kski.1i < 1199423707 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Yay < 1199423993 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Argh. It's not even a valid expression apparently < 1199424679 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Or not. < 1199424691 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Why can't http://www.angelfire.com/tx4/cus/combinator/birds.html give me correct answer? < 1199426004 0 :oerjan!unknown@unknown.invalid QUIT :"Good night" < 1199433599 0 :clog!unknown@unknown.invalid QUIT :ended < 1199433600 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1199435007 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Turing fixpoint combinator >> Curry fixpoint combinator < 1199441917 0 :faxathisia!n=more@amcant.demon.co.uk JOIN :#esoteric < 1199452632 0 :RedDak!n=dak@host9-86-dynamic.6-87-r.retail.telecomitalia.it JOIN :#esoteric < 1199456405 0 :tejeez_!n=tejeez@dsl-lhtgw2-fea7dc00-42.dhcp.inet.fi JOIN :#esoteric < 1199456752 0 :tejeez!unknown@unknown.invalid QUIT :Read error: 145 (Connection timed out) < 1199457314 0 :AnMaster!n=AnMaster@unaffiliated/anmaster JOIN :#esoteric < 1199457407 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1199458919 0 :Jontte!n=joonas@dsl-hkibras1-ff0ac300-216.dhcp.inet.fi JOIN :#esoteric < 1199458957 0 :Jontte!unknown@unknown.invalid QUIT :Remote closed the connection < 1199459023 0 :Jontte!n=joonas@dsl-hkibras1-ff0ac300-216.dhcp.inet.fi JOIN :#esoteric < 1199459545 0 :Jontte!unknown@unknown.invalid QUIT :Remote closed the connection < 1199459573 0 :Jontte!n=joonas@dsl-hkibras1-ff0ac300-216.dhcp.inet.fi JOIN :#esoteric < 1199459589 0 :Jontte!unknown@unknown.invalid QUIT :Remote closed the connection < 1199459830 0 :Jontte!n=joonas@dsl-hkibras1-ff0ac300-216.dhcp.inet.fi JOIN :#esoteric < 1199459873 0 :Jontte!unknown@unknown.invalid QUIT :Remote closed the connection < 1199459901 0 :Jontte!n=joonas@dsl-hkibras1-ff0ac300-216.dhcp.inet.fi JOIN :#esoteric < 1199460556 0 :jix!unknown@unknown.invalid QUIT :Nick collision from services. < 1199460566 0 :jix!n=jix@dyndsl-085-016-233-044.ewe-ip-backbone.de JOIN :#esoteric < 1199461896 0 :AnMaster_!n=AnMaster@unaffiliated/anmaster JOIN :#esoteric < 1199462328 0 :AnMaster!unknown@unknown.invalid QUIT :Connection timed out < 1199463032 0 :AnMaster_!unknown@unknown.invalid QUIT :Connection timed out < 1199463178 0 :AnMaster_!n=AnMaster@unaffiliated/anmaster JOIN :#esoteric < 1199463604 0 :RedDak!unknown@unknown.invalid QUIT :Remote closed the connection < 1199463656 0 :AnMaster_!unknown@unknown.invalid NICK :AnMaster < 1199463987 0 :oklopol!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1199465889 0 :AnMaster_!n=AnMaster@unaffiliated/anmaster JOIN :#esoteric < 1199465900 0 :AnMaster!unknown@unknown.invalid QUIT :Connection timed out < 1199465955 0 :AnMaster_!unknown@unknown.invalid NICK :AnMaster < 1199469548 0 :Jontte!unknown@unknown.invalid QUIT :Remote closed the connection < 1199469574 0 :Jontte!n=joonas@dsl-hkibras1-ff0ac300-216.dhcp.inet.fi JOIN :#esoteric < 1199469594 0 :Jontte!unknown@unknown.invalid QUIT :Remote closed the connection < 1199470065 0 :Jontte!n=joonas@dsl-hkibras1-ff0ac300-216.dhcp.inet.fi JOIN :#esoteric < 1199470926 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :ACTION added the m combinator on the interpreter for SII < 1199470935 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :m? < 1199470959 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :http://www.angelfire.com/tx4/cus/combinator/birds.html < 1199470986 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :SII leaves a lot of `i in the interpreter when using lazy evaluation. < 1199470993 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ah yes < 1199471013 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i had a similar thought that Lazy K needed it < 1199471044 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ideally you would memoize its results somehow. then you would get genuinely cached cyclic structures < 1199471093 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Ah, index string out of range. < 1199471108 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :What to do what to do. < 1199471112 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :still haven't solved that problem? < 1199471125 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Still haven't found the problem. < 1199471140 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :It's the first time some code I made have the problem. < 1199471144 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :`m``s`k`.xim < 1199471156 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :does this show up on the first iteration? < 1199471191 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :otherwise i repeat my suggestion to make a test that the expression remains well-formed at each stage < 1199471192 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Yes. and unsurprisingly, it's in the m combinator section. < 1199471341 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Ah yes, I just forgot to add the case where there's another m combinator. < 1199471415 0 :oerjan!unknown@unknown.invalid QUIT :"Going, going, gone" < 1199471430 0 :calamari!n=calamari@ip24-255-58-134.tc.ph.cox.net JOIN :#esoteric < 1199471650 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Allow me to give you hell's weather report. . . < 1199471663 0 :Sgeo!n=Anonymou@ool-18bf68ca.dyn.optonline.net JOIN :#esoteric < 1199471668 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :"Cold, with a blizzard expected for the next week. Visibility, 0." < 1199471720 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION didn't work on PSOX or go on IRC yesterday.. < 1199471767 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :There are, as of today, no major labels not offering or soon going to be offering DRM-free music for download. < 1199472562 0 :tesseracter!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: well, motley fools just told investors not to invest in record labels. < 1199472582 0 :tesseracter!unknown@unknown.invalid PRIVMSG #esoteric :let us pray to the almighty buck. < 1199472620 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I still wouldn't invest in them. < 1199472628 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I don't see them lasting out the decade at this rate. < 1199472642 0 :tesseracter!unknown@unknown.invalid PRIVMSG #esoteric :and indies topping billboard charts? bye bye big record companies. < 1199472710 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And fairly major artists leaving the record companies? That's *got* to hurt. < 1199472851 0 :tesseracter!unknown@unknown.invalid PRIVMSG #esoteric :everything points to it. only thing left is the pa-ra-dig-em shift. < 1199472864 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Which is in progress. < 1199473757 0 :ais523!n=ais523@147.188.254.232 JOIN :#esoteric < 1199474240 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Hello sir. < 1199474271 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hello < 1199474297 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is busy handling the fallout from the recent release of C-INTERCAL 0.27 < 1199474423 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I actually had a crazy idea for functional INTERCAL < 1199474437 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :where you could create virtual threads with frozen values for variables < 1199474445 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that could still steal control of the program from the main thread < 1199474453 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :as a complicated way of implementing lambda < 1199475658 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Maybe I should write an abstraction eliminator with lambda calculus written unlambda style. < 1199475658 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :You are insane. < 1199475666 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Parenthesis are bothersome to deal with. < 1199475992 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ACTION has one of those, in elisp < 1199476001 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :not on this computer, though, so I can't post it right now < 1199476005 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and it was buggy anyway < 1199476039 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :besides, if it was fully parenthesised before, all you need to do is get rid of all the closing parens < 1199476044 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I have one, but it's in my pen. < 1199476158 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I used it to write a P'' interpreter in Unlambda < 1199476187 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it was pretty poor-quality Unlambda code, though. Just abstraction-eliminated s, k, and i, apart from a single c < 1199476201 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the c was to handle Unlambda's silly I/O model < 1199476257 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I'm doing this for some sort of lazy unlambda. < 1199476283 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :'cause I don't do very well with strict evaluation. < 1199476636 0 :oklopol!n=ville@194.251.103.33 JOIN :#esoteric < 1199476940 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you could always use `d before everything < 1199476977 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :BTW, I like the way that d can be dynamically moved around the program in Unlambda, so you can decide whether evaluation is lazy or not at runtime < 1199477123 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Well, that would increase drastically the size of programs < 1199477142 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Which aren't that small to begin with. < 1199477428 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :clearly the way to go is full Unlambda virtualisation < 1199477444 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :did something happen while i was gone? < 1199477557 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :We solved the halting problem. < 1199477625 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :We also made an infinite tape. < 1199477684 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :And we made a Malbolge interpreter in Malbolge. < 1199477700 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :correction: Malbolge-T, there isn't enough memory otherwise < 1199477700 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but nothing interesting? < 1199477713 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Same old, same old. < 1199477785 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ais523: halting problem + infinite tape, but a malbolge self-interpreter is impossible? :) < 1199477807 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Well, we're not that good! < 1199477818 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Solving the halting problem is easy next to Malbolge! < 1199477896 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I'm not too impressed. < 1199477908 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :infinite tape should be possible; you synthesize it out of materials in the environment < 1199477927 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Frankly, a Brainfuck interpreter in Malbolge would be much more significant than an infinite tape or a function H. < 1199477937 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Well, even if there's infinite materials, it will take an infinite time. < 1199477955 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you can solve the halting problem if you have infinite time < 1199477963 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I'm not even going into the energy problem. < 1199477964 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I suppose you've seen how it's possible in TwoDucks? < 1199477968 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1199477977 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I've also read the papers on hypercomputation. < 1199477990 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :A hypothetical Infinity Machine would actually make the halting problem trivial. < 1199477994 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :http://www.chiark.greenend.org.uk/~sgtatham/infinity.html < 1199477996 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Although it can only solve the halting problems of Turing machine. < 1199478001 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Not its own. < 1199478028 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :http://www.hypercomputation.net/ < 1199478165 0 :tejeez_!unknown@unknown.invalid NICK :tejeez < 1199482554 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1199482744 0 :ais523!unknown@unknown.invalid QUIT :""""" < 1199482818 0 :RedDak!n=dak@host9-86-dynamic.6-87-r.retail.telecomitalia.it JOIN :#esoteric < 1199483657 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Does this look okay as an abstraction eliminator? http://membres.lycos.fr/bewulf/Russell/AE4.py < 1199483671 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :For instance, `^a`^ba < 1199483677 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :gives ``s`kki < 1199483724 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the string index handling makes me shiver these days :( < 1199483755 0 :faxathisia!unknown@unknown.invalid PART #esoteric :? < 1199483760 0 :faxathisia!n=more@amcant.demon.co.uk JOIN :#esoteric < 1199483788 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :wait a minute, why ` ? < 1199483791 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :And `^a`^b`^c``ac`bc gives ``s``s`ks``s``s`ks``s`kk`ks``s``s`ks``s``s`ks``s`kk`ks``s``s`ks``s`kk`kk``s`kki``s`kk`ki``s``s`ks``s``s`ks``s`kk`ks``s``s`ks``s`kk`kk`ki``s`kk`ki < 1199483812 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you really need some optimizations < 1199483816 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I use unlambda notation, because string handling gets that much worse with parenthesis. < 1199483854 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric ::S < 1199483856 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :really? < 1199483865 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Well, for me at least. < 1199483865 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :um, the notation from the unlambdaifier is ^a^b$a < 1199483886 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Well, not the exact lambda notation of unlambda. < 1199483898 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you need eta reduction. ``s`kfi = f < 1199483907 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I use `^xC for lambda x.C < 1199483919 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the ` is deceptive < 1199483953 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you're not really applying anything < 1199483961 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I guess so. < 1199483977 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I though I would run in some ``^x situation, but you're right. < 1199484001 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :also, the $x notation prevents trouble if you have a variable called s k or i ... < 1199484094 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :anyway the pain of doing this with indices into strings rather than an actual data structure... >_< < 1199484126 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I don't know the difference, so there's that. < 1199484147 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :of course avoiding pain may not be a big goal here :D < 1199484170 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :well, an AST < 1199484179 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Wait. < 1199484187 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I think `^x is still useful. < 1199484212 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :For the C1 function, which looks for the end of the combinator applied. < 1199484286 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :So that ^x(^y.y) is counted as one combinator. < 1199484318 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :`^x`^yy - 2 apply operator, 3 "variables" < 1199484355 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :nah, all you need to do is treat ^ as you treat ` < 1199484369 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Oh. < 1199484388 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Well, let's try that. < 1199484874 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :String index isn't hard to make < 1199484878 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :It's hard to modify. < 1199485482 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Well, seems to work so far < 1199485489 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Let's try eta reduction now. < 1199485983 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Works for k. < 1199486019 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :s doesn't seem to eta reduce that easily though < 1199486244 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Maybe replace ``skf by i. < 1199486311 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :with lazy evaluation that is fine < 1199486336 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :although, i don't think ``skf is produced by abstraction elimination < 1199486354 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm or could it? < 1199486394 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :^x`kx`fx < 1199486412 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :after eta reduction, that would become ``skf < 1199486416 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I can't see it in the AE of s at least. < 1199486440 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :er, missing a ` < 1199486558 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh you mean reducing ^x^y^z``xz`yz to s somehow? < 1199486577 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1199486592 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :So far, with eta reduction, it's ``s``s`ks``s``s`ks``s`kk`ks``s``s`ks``s``s`ks``s`kk`ks``s``s`ks``s`kk`kkk``s`kk`ki``s``s`ks``s``s`ks``s`kk`ks``s``s`ks``s`kk`kk`ki``s`kk`ki < 1199486603 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Which works fine on the lazy interpreter, but well. < 1199486618 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :-> ^x^y``sxy < 1199486648 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the trick is to do abstraction elimination and eta reduction fully on the innermost lambda first < 1199486670 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Ah. Right now, the eta reduction is only on the end of the process. < 1199488582 0 :RedDak!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1199489677 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :The abstraction elimination seems to work okay. < 1199489755 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Or maybe not. < 1199489768 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Index out of range for half the Turing combinator. < 1199489821 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Oh. I just wrote it wrong. < 1199490490 0 :timotiis!n=timotiis@jfkew.plus.com JOIN :#esoteric < 1199490529 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: Out of immense curiosity, why are you so intent on inventing new combinators/making a lazy Unlambda? :p < 1199490653 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I'm not inventing them. < 1199490660 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :All those combinators already exist! < 1199490681 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :The lazy is because I'm just not that eager to use strict evaluation. < 1199490693 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION groans < 1199490712 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wonders if Slereah knows he just made a pun < 1199490737 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :What, lazy? < 1199490752 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :strict and eager are synonyms :D < 1199490759 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Oh. Then no. < 1199490768 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :woah < 1199490796 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :That was such an incredibly bad pun < 1199490814 0 :faxathisia!unknown@unknown.invalid PRIVMSG #esoteric :amazing coincidence < 1199490922 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :everyone can make a pun others don't understand. but to make one you don't understand yourself... :D < 1199491011 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Boy, now that I know, I'm thinking of an even worst pun! < 1199491050 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION groans < 1199491154 0 :timotiis!unknown@unknown.invalid QUIT :"leaving"