< 1171411479 0 :RodgerTheGreat!unknown@unknown.invalid QUIT : < 1171415078 0 :crathman!n=chatzill@cpe-76-185-186-143.tx.res.rr.com JOIN :#esoteric < 1171415253 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :I need a language that does implicit currying < 1171415463 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION points at Haskell < 1171415469 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION ducks < 1171415504 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :also Ocaml < 1171415504 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :haskell does? < 1171415534 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :if implicit currying means what i think it means < 1171415581 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :(xy.E)z ==> \y.E[x := z] < 1171415591 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :is what i mean by implicit currying < 1171415604 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :er < 1171415620 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :(\x y.E)z ==> \y.E[x := z] < 1171415642 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yep, haskell does that < 1171415665 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :cool < 1171415744 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :as well as the reverse: (\x -> \y -> E) = \x y -> E < 1171415862 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :in x y z, is it (x y) z? < 1171415869 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1171415884 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :k < 1171415976 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i thought you were reading up on haskell, or maybe that was the flour-product oriented guy < 1171416048 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :I was < 1171416511 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :bah, haskell won't let me redefine if < 1171416682 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :or null, or map < 1171416704 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :null and map can be redefined < 1171416721 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :import Prelude hiding (null, map) < 1171416736 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :if is a keyword however. < 1171416782 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :shouldn't need to be in a lazy language < 1171416800 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it's so that you can have then and else written out < 1171416860 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :hah, great error message < 1171416901 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :but in principle it is just syntactic sugar for case a of True -> b; False -> c < 1171416911 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :what message? < 1171416917 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :http://pastebin.ca/354583 < 1171416975 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Did you get that? < 1171416985 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1171417020 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :A function cannot return a function of the same type < 1171417028 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :that would trigger such a thing < 1171417049 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :are you trying to do combinators? < 1171417064 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :no < 1171417086 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :i did map f l = (null l) nil (cons (f (car l)) (map f (cdr l))) < 1171417138 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric : In the first argument of `cdr', namely `l' < 1171417139 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric : In the second argument of `map', namely `(cdr l)' < 1171417308 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :well if that should work then you would have to use combinatory booleans for (null l) < 1171417347 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :(null l) ==> \x y -> x or \x y -> y < 1171417360 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :exactly < 1171417413 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :So, how do i fix it? < 1171417421 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :perhaps the list is the problem. < 1171417430 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :what is cons defined as? < 1171417448 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :cons x y = \f -> f x y < 1171417480 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :thought so. cons x y cannot then have the same type as y. < 1171417502 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :bah < 1171417512 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :without such an occurs check error, because the type becomes recursive < 1171417539 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you can do it with ocaml if you use the -t command line option < 1171417552 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i did it for an Unlambda "compiler" once < 1171417568 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :so there's no way to do this in haskell? < 1171417583 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :not without an option to turn of the occurs check < 1171417588 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :*off < 1171417603 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i don't remember if there is such an option < 1171417614 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :are you using ghc or hugs? < 1171417625 0 :flapjack!n=Flapjack@74-137-232-124.dhcp.insightbb.com JOIN :#esoteric < 1171417632 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ghc < 1171417656 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :of course for portability you can wrap it in a datatype Fun = Fun -> Fun < 1171417667 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i mean: < 1171417677 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :data Fun = Fun (Fun -> Fun) < 1171417687 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :huh? < 1171417732 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the occurs check only triggers if the type recursion is not inside a datatype definition < 1171417733 0 :calamari!n=calamari@ip72-200-73-175.tc.ph.cox.net JOIN :#esoteric < 1171417795 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :but of course if your point is to use a language where there is no syntactic noise with combinators, that doesn't work < 1171417815 0 :ShadowHntr!unknown@unknown.invalid QUIT :Client Quit < 1171417834 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :let me check the ghc webpage < 1171418076 0 :voodooattack!n=voodooat@217.54.5.58 JOIN :#esoteric < 1171418084 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :I should just write my own beta reducer < 1171418145 0 :flapjack!unknown@unknown.invalid PART #esoteric :? < 1171418242 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alas, i cannot find a ghc option to turn it off < 1171418381 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and ocaml won't work if you depend on lazyness < 1171418461 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :lame < 1171418637 0 :crathman!unknown@unknown.invalid QUIT :"Chatzilla 0.9.77 [Firefox 2.0.0.1/2006120418]" < 1171418659 0 :anonfunc!unknown@unknown.invalid QUIT : < 1171418783 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the best i can think of with haskell is to start with data Fun = Fun { fun :: Fun -> Fun } and define an application operator from that < 1171418851 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :darn, that would certainly ruin the implicit currying < 1171419632 0 :voodooattack!unknown@unknown.invalid PRIVMSG #esoteric :print "hi" < 1171420313 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :i kicked my power cable out :( < 1171420338 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :whoops < 1171420470 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i should say that someone somewhere must have written a minimal lambda calculus evaluator in the haskell style already. hm... < 1171420481 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :perhaps there is one in LambdaBot. < 1171420986 0 :Sgeo!n=sgeo@ool-18bf61f7.dyn.optonline.net JOIN :#esoteric < 1171421488 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Sheesh. It says on the webpage that Lambdabot has a lambda calculus but I cannot find the command... < 1171421512 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ACTION goes back to beta reduction with pencil and paper < 1171421722 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hey, try this page: http://www.dina.dk/~sestoft/lamreduce/index.html < 1171422184 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :oh nice < 1171422277 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :bah < 1171422284 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :they have stuff already bound :/ < 1171422472 0 :anonfunc!n=dholman@adsl-69-106-180-88.dsl.chi2ca.sbcglobal.net JOIN :#esoteric < 1171422751 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you don't have to use it you know :) < 1171423642 0 :crathman!n=chatzill@cpe-76-185-186-143.tx.res.rr.com JOIN :#esoteric < 1171424251 0 :bsmntbombdood!unknown@unknown.invalid NICK :irt3h1337 < 1171424290 0 :irt3h1337!unknown@unknown.invalid NICK :bsmntbombdood < 1171424325 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :irt3h? < 1171424335 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :i r t3h 1337 < 1171424341 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ah. < 1171424345 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :joke in another channel < 1171424423 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it's really quite absurd that i understand what 1337 means :) < 1171424477 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :that's absurd? < 1171424499 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :Sir, please recalibrate your absurd-o-meter < 1171424564 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :of course it pales compared with the fact that i am on this channel :) < 1171424618 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and that i am trying to write a malbolge dialect. < 1171424655 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :not a whole lot of esotericallity goes on in this channel < 1171424659 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :more just CS < 1171424785 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you mean we need to find a medium and have a séance? < 1171424797 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :uh...what? < 1171424831 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :why would we want to communicate with the dead? < 1171424835 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :or study old alchemist books < 1171424878 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :to be esoteric of course < 1171424895 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ponder weak and weary over many a quaint and curious volume of forgotten lore < 1171426057 0 :anonfunc_!n=dholman@adsl-68-127-48-63.dsl.chic01.pacbell.net JOIN :#esoteric < 1171426061 0 :Sgeo!unknown@unknown.invalid QUIT :Remote closed the connection < 1171426061 0 :crathman!unknown@unknown.invalid QUIT :"Chatzilla 0.9.77 [Firefox 2.0.0.1/2006120418]" < 1171426834 0 :anonfunc!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1171427133 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :silly rabbit, numbers in hardware are for C programmers! < 1171428087 0 :oerjan!unknown@unknown.invalid QUIT :"Good night" < 1171428097 0 :anonfunc_!unknown@unknown.invalid NICK :anonfunc < 1171429690 0 :calamari!unknown@unknown.invalid QUIT :"Leaving" < 1171431411 0 :flagitious!unknown@unknown.invalid QUIT :"Leaving" < 1171433199 0 :ShadowHntr!i=sentinel@wikipedia/Shadowhntr JOIN :#esoteric < 1171434912 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i agree < 1171434917 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :this channel is not esoteric enough. < 1171434934 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :to fix that, from now on, English is officially forbidden. < 1171434963 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :You have five minutes for any last thoughts (in English). < 1171434967 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :channel.language = pseudocode? < 1171434987 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :anybody caught using English after that will be publicly humiliated. < 1171435006 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :(in pseudocode) < 1171435054 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :humiliation.language = pseudocode; humiliation.effectiveness < EFFCTVNS_LOW < 1171435199 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :false < 1171435206 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :humiliation.tool = whip; < 1171435245 0 :voodooattack!unknown@unknown.invalid PRIVMSG #esoteric :libToilet->Flush() < 1171435280 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :humiliate (x) = begin; x.remove(pants); humiliation.tool.apply(x.behind); end < 1171435430 0 :voodooattack!unknown@unknown.invalid PRIVMSG #esoteric :lament.doLament(100); < 1171435474 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :attack(voodoo) < 1171435498 0 :voodooattack!unknown@unknown.invalid PRIVMSG #esoteric :ceaseAttack(voodoo); < 1171435523 0 :voodooattack!unknown@unknown.invalid PRIVMSG #esoteric :attack(lament, &wpnNuclearBomb); < 1171435542 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :nu, teper' nash kanal gorazdo bolee ezoterichen. < 1171435592 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :ni siquiera nosotros entendemos a nosotros mismos < 1171435609 0 :voodooattack!unknown@unknown.invalid PRIVMSG #esoteric :speakko englaisso? :P < 1171435671 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :nao, so pode falar os outros idiomas < 1171435806 0 :voodooattack!unknown@unknown.invalid PRIVMSG #esoteric :xD < 1171437229 0 :ShadowHntr!unknown@unknown.invalid QUIT :Client Quit < 1171437394 0 :helios24!i=helios@2001:6f8:1036:3304:0:0:0:12 JOIN :#esoteric < 1171439999 0 :clog!unknown@unknown.invalid QUIT :ended < 1171440000 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1171440655 0 :Arrogant!i=Arrogatn@128.orlando-09-10rs.fl.dial-access.att.net JOIN :#esoteric < 1171441969 0 :Arrogant!unknown@unknown.invalid QUIT :"Leaving" < 1171445697 0 :voodooattack!unknown@unknown.invalid QUIT : < 1171456333 0 :jix!n=jix@L62e6.l.strato-dslnet.de JOIN :#esoteric < 1171461965 0 :nazgjunk!n=htitan@wikipedia/Nazgjunk JOIN :#esoteric < 1171463593 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :gwaq trono el trope y loq < 1171463633 0 :sekhmet!unknown@unknown.invalid QUIT :"away" < 1171463643 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :wern et we poneq ba nog < 1171463720 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :(map cut-with-knives (channel-users)) < 1171463870 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :(map (compose repair cut-with-knives) (channel-users)) < 1171464075 0 :nazgjunk!unknown@unknown.invalid QUIT :"Bi-la Kaifa" < 1171464871 0 :sekhmet!n=pez@ppp-70-226-146-235.dsl.mdsnwi.ameritech.net JOIN :#esoteric < 1171465461 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :vi kane sake a zx3 < 1171466588 0 :sekhmet!unknown@unknown.invalid QUIT :"meh" < 1171466615 0 :crathman!n=chatzill@69.15.198.171 JOIN :#esoteric < 1171467410 0 :sekhmet!n=pez@ppp-70-226-146-235.dsl.mdsnwi.ameritech.net JOIN :#esoteric < 1171468132 0 :RodgerTheGreat!n=Rodger@wads-5-232-13.resnet.mtu.edu JOIN :#esoteric < 1171474435 0 :anonfunc!unknown@unknown.invalid QUIT : < 1171475127 0 :tgwizard!n=tgwizard@c-9b3ee155.178-1-64736c10.cust.bredbandsbolaget.se JOIN :#esoteric < 1171476776 0 :puzzlet!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1171477291 0 :sebbu!n=sebbu@ADijon-152-1-101-102.w81-50.abo.wanadoo.fr JOIN :#esoteric < 1171477423 0 :kxspxr!n=kxspxr@0x535b2018.hrnxx5.adsl-dhcp.tele.dk JOIN :#esoteric < 1171478225 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1171478263 0 :digital_me!n=digital@wikipedia/Digitalme JOIN :#esoteric < 1171478629 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :what's \x y.y with S and K? < 1171478682 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Language.English.status == Forbidden < 1171478712 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :oerjan.languages["pseudocode"].quality < LQUAL_MEDIUM < 1171478751 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Language.Pseudocode.Base == "Haskell" < 1171478758 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :channel.send(oerjan.compute(T[\x y.y])) < 1171478781 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :oerjan.ooTree.reasonable = false; < 1171478805 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :typeof(languages) == TYPE_AARRAY < 1171478811 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :unlambdaify(\x y.y) == K I == K (S K K) < 1171478837 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :oooo < 1171478887 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Language.Haskell.ModuleTree /= ObjectOriented < 1171478943 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :no me understando < 1171478990 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Che cosa è il sua problemo? < 1171479083 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :\x y.y == \x. \y.y == \x. I == K I < 1171479103 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :O, ¿lenguas natural estan OK? < 1171479140 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Natürlich, nur Englisch ist verboten. < 1171479172 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Men ikke la det utarte, OK? < 1171479201 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Pero, no hablo lenguas con exceptión del inglés :( < 1171479227 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :!help < 1171479230 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon < 1171479232 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 < 1171479247 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :EgoBot es exento :P < 1171479271 0 :crathman!unknown@unknown.invalid QUIT :"Chatzilla 0.9.77 [Firefox 2.0.0.1/2006120418]" < 1171479272 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Pseudocode é perfettamente buono. < 1171479291 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :unlambdaify(\x y.x y) < 1171479292 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :¿Qué es "perfettamente"? < 1171479353 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :"perfettamente" == Italian.AdverbialFormOf("perfetto") < 1171479372 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :¿Y perfetto es? < 1171479391 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :italian["perfetto"].toEnglish(); < 1171479405 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :"perfetto" = Oerjan.GuessItalianEquivalence("perfect") < 1171479419 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Ah, sí sí. < 1171479443 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Esto conversación es muy largo X-P < 1171479465 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Err, lento < 1171479496 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :[spanish[x].toEnglish()| x <- ["largo","lento"] < 1171479501 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :*]] < 1171479526 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :spanish["lento"].toEnglish() == "slow" < 1171479535 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :spanish["largo"] == NULL < 1171479544 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :(Maybe :P) < 1171479569 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Protest.basedOn(existenceOf("Key Largo")) < 1171479937 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :channel.language = English < 1171479938 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :\x y.x y == \x.\y.x y == \x.(S (K x)) I == S (S (K S) (S (K K) I)) (K I) < 1171479939 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :Ha! < 1171480007 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :http://oerjan.nvg.org/esoteric/ulify2.scm < 1171480039 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :fun < 1171480270 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :It's for unlambda, not pure combinator calculus however. < 1171480317 0 :kxspxr!unknown@unknown.invalid QUIT : < 1171480536 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :why is it called calculus? < 1171480552 0 :helios24!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1171480588 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :because it is a system for calculating functions < 1171481293 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :\x y.y == SK < 1171481304 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ha! shorter < 1171481326 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ah yes, the KI = SK equation < 1171481461 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it's not valid for unlambda though - it breaks with side effects < 1171481521 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ha! side effects < 1171481530 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :oh come on < 1171481532 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :http://ling.ucsd.edu/~barker/Iota/ < 1171481708 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :what about it? < 1171481878 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :crazy < 1171481994 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1171482212 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ummm < 1171482213 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric : == (^x.xSK)(^x.xSK) < 1171482213 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric : == (^x.xSK)SK < 1171482214 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric : == SSKK < 1171482233 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :is that wrong or am i missing something? < 1171482312 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i think you mean SKSK < 1171482354 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :that's what i thought < 1171482365 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :that's not what it says on that page < 1171482495 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm... SKSK = KK(SK) = K < 1171482499 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :right < 1171482511 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :so *ii isn't I < 1171482546 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and the expression given for K is more complicated < 1171482615 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :weird < 1171482679 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :in fact all the others use the first one, so they are wrong too < 1171482793 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1171483025 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :however, *ii = K and *i*ii = S, so it can be easily fixed < 1171483063 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :heh, his are way too complicated < 1171483274 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i'll make a note about it on our wiki < 1171483329 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :back to class < 1171483639 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :eh, wait < 1171483645 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :we are wrong < 1171483677 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and the page is right < 1171483834 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :because in (^x.xSK)SK, only the S should be beta substituted < 1171485312 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :can i see a brainfuck implementation with haskell? < 1171485327 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm... < 1171485336 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :there is one on Lambdabot < 1171485337 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i just can't figure out how imperativeness is done effectively with a purely funxxxxional lang < 1171485348 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but then again, it's proly easy < 1171485355 0 :helios24!i=helios@item.n1.helzilla.de JOIN :#esoteric < 1171485358 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :don't you know about monads? < 1171485372 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i thought they might be the answer < 1171485389 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :although it's only I/O that really needs it for brainfuck < 1171485391 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm one of the idiot who can't figure monads out < 1171485397 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*idiots < 1171485427 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but, does the massive array have to be cloned on every step? < 1171485441 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :or do monads somehow handle it haxxorly? < 1171485472 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i get leet-wannabe when i'm tired, sorry :) < 1171485478 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :no. you can use two linked lists, one for everything left of the current position and one for everything to the right. < 1171485515 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :because brainfuck is not really random access. < 1171485543 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the brainfuck state can easily be done purely functionally. < 1171485597 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that's exactly what i can't figure out, is there an implementation :P < 1171485632 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you can make one in 5 min i'm sure < 1171485633 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1171485706 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :also haskell has a module called Data.Array.Diff that cheats in such a way that arrays can be changed efficiently without anyone noticing that it's not functional. < 1171485714 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :*purely functional < 1171485731 0 :helios24!unknown@unknown.invalid QUIT :"Leaving" < 1171485766 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :"When the // operator is applied to a diff array, its contents are physically updated in place. The old array silently changes its representation without changing the visible behavior: it stores a link to the new current array along with the difference to be applied to get the old contents." < 1171485776 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :also, brainfuck is what i always do when i begin learning a language, since it isn't as easy (or i can't do it in the usual way), i'd like to see it :D < 1171485780 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay < 1171486069 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :good grief. the Lambdabot version is excessively complicated. < 1171486097 0 :helios24!i=helios@item.n1.helzilla.de JOIN :#esoteric < 1171486126 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and mercilessly non-pure < 1171486150 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :would it take you long to make one? :P < 1171486164 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(i'm not sure what you were talking about, though) < 1171486192 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :I'm talking about http://www.cse.unsw.edu.au/~dons/lambdabot/scripts/BF.hs < 1171486217 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it shouldn't take too long since i already started writing one a while ago < 1171486285 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :but i'll try and see if there isn't a finished one somewhere < 1171486325 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i wrote one in php in 15 min when i finally read the spec.... then debugged for 2 hours to find out my code was right but i had confused output and return values when writing test cases :P < 1171486445 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i could become a professional brainfuck interpreter coder or something < 1171486454 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i've written maybe 50 or smth :D < 1171486753 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :found one, it uses a real functional tape but mysteriously uses a tape for the program as well < 1171486779 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :http://www.joachim-breitner.de/blog/archives/161-Brainfuck-interpreter-in-Haskell.html < 1171486826 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :thanks, i'll try to read that < 1171486989 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :my own interpreter got buried under all the configuration options i wanted to include < 1171486990 0 :sebbu2!n=sebbu@ADijon-152-1-86-86.w81-49.abo.wanadoo.fr JOIN :#esoteric < 1171487080 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :although it does a more proper parsing of the brainfuck, so it doesn't have to search through the program for matching loops < 1171487115 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i have one in c++ that does nice circular tree structures < 1171487121 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(i don't know the term) < 1171487135 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :like... a list and [] are in a sublist < 1171487145 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :nesting < 1171487146 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :maybe < 1171487147 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1171487235 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i had this brainfuck quine, ran for 6 days on my old brainfuck interpreter, so i made a new one that used hashmaps or smth for the loops, ran for 8 hours i think, then made a good one, with as much non-algorithmic optimization i can think of, 6 hours < 1171487239 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :not circular, that would be if some of the sublists are equal to the list itself < 1171487253 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :then realized the quine did a [+]... and i was using ints :) < 1171487261 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :heh :) < 1171487267 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :took it of and it ran in a microsecond or smth xD < 1171487269 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*off < 1171487274 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i mean, put chars there < 1171487300 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yeah, even poorly implemented brainfuck is not _that_ inefficient :) < 1171487345 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, i though it migh've been an only mathematically proven quine or smth, didn't even look at it until caught a glimpse of [+] and burst into laughter :P < 1171487381 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :just be glad you didn't use bignums :) < 1171487423 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, i think i'd've closed the prog after a week :D < 1171487439 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm... i think it didn't get till the end now that i come to think of it < 1171487474 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :sometimes i wonder how unpractical i can get, 30 hours of work over a brainfuck code i don't even look at :D < 1171487482 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :a bignum brainfuck implementation should be easy in Haskell though < 1171487502 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah, well, in anything else than c++ actually < 1171487523 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :c++ doesn't have bignums in the standard package < 1171487527 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i suppose < 1171487562 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :java does, python does, vb does, that's pretty much all langs i know thoroughly :< < 1171487569 0 :helios24!unknown@unknown.invalid QUIT :"Leaving" < 1171487642 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :in c++ you'd have to dl boost, but i think it's easier to write something yourself than dl it :D < 1171487653 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1171487667 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :at least more fun < 1171487705 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :well, a good bignum implementation is not that trivial, especially huge multiplies < 1171487711 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :true < 1171487725 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that's why i've never gotten one to work for all operators < 1171487736 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :or, never implemented all of them rather < 1171487751 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i've done a few bignum classes in c++ < 1171487788 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i think i did multiplication with addition in the first one :P < 1171487822 0 :GregorR!unknown@unknown.invalid NICK :Gonee < 1171487825 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :_just_ addition? not even shifts? < 1171487924 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :^ with *, * with +, + with inc, inc with binary logic and you get the winning combination < 1171487931 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1171487943 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i don't remember, i was a noob :P < 1171487968 0 :Gonee!unknown@unknown.invalid NICK :_D6Gregor1RFeZi < 1171488014 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :gregor now consumes reality again. < 1171488031 0 :_D6Gregor1RFeZi!unknown@unknown.invalid PRIVMSG #esoteric :It's what I do. < 1171488063 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and produces ... what? int-elligence, perhaps. < 1171488085 0 :sebbu!unknown@unknown.invalid QUIT :Connection timed out < 1171488086 0 :sebbu2!unknown@unknown.invalid NICK :sebbu < 1171488114 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :or was that the other way around. < 1171488197 0 :Sgeo!n=sgeo@ool-18bf61f7.dyn.optonline.net JOIN :#esoteric < 1171490279 0 :jix!unknown@unknown.invalid QUIT :"Bitte waehlen Sie eine Beerdigungnachricht" < 1171491578 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what does const do in haskellllll < 1171491579 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :? < 1171491610 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i COULD ask on #haskell of course... < 1171491620 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :const = K < 1171491634 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :identity? < 1171491650 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so... useless? :P < 1171491657 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :const x y = x < 1171491679 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ohhhh < 1171491690 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :not useless, it is quite useful in higher-order programs < 1171491697 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah, prolly < 1171491700 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :btw, id x = x < 1171491728 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :isn't it rather a function that returns x with any arg? < 1171491761 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :const x is such a function yes. < 1171491802 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :aaaaa so NOT id < 1171491815 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :const /= id < 1171491821 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :no, id is id. :) < 1171491829 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :identically :D < 1171491836 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh, so it seems :P < 1171491876 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i don't know if the S combinator has a name in haskell though. < 1171491896 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :S did what now? :P < 1171491912 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :S x y z = x z (y z) < 1171491912 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i have never played with lambda calculus < 1171491943 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i was just reading this page: http://www.haskell.org/haskellwiki/Pointfree < 1171491972 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :some really weird examples there < 1171492035 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :point-free map fusion... :? < 1171492113 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i suppose map fusion is an automatic optimization technique < 1171492126 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :mem' = any . (==) <<< i find even this pretty sick :\ < 1171492132 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :to avoid making intermediate lists < 1171492150 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ah okay < 1171492179 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :well i wouldn't go that far either. < 1171492236 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i've read a lot about functional langs but never written more than one liners on them... i should try doing something, everything might get clearer :O < 1171492237 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1171492246 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :one-liners < 1171492274 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it gets strange with pointless style when you use it to hide more than one argument, like with any. < 1171492297 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :in that mem' < 1171492325 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah, pretty neat though :P < 1171492345 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :but as long as it chains just one argument through, it can in fact be clearer. < 1171492351 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :in my opinion. < 1171492484 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah, they are more abstract, the small ones are easier, the big ones pretty undecipherable :P < 1171492495 0 :nazgjunk!n=htitan@wikipedia/Nazgjunk JOIN :#esoteric < 1171492510 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i can actually read the bf interpreter < 1171492528 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :that's good. :) < 1171492537 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :slowly though < 1171492588 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :-- Sets the current value < 1171492588 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :set :: Tape a -> a -> Tape a < 1171492588 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :set t v = doOn t (const v) < 1171492595 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :this took me a while :D < 1171492628 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :aha. < 1171492655 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's quite simple now that i think about it < 1171492663 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :that is an example of the usefulness of const. < 1171492678 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :indeed < 1171492748 0 :_D6Gregor1RFeZi!unknown@unknown.invalid NICK :GregorR < 1171492791 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay, i can't follow anymore xD < 1171492796 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :gotta continue my tutorial... < 1171493470 0 :nazgjunk!unknown@unknown.invalid QUIT :"Bi-la Kaifa" < 1171493481 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: no < 1171493493 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :(\x.xKS)(\x.xKS) < 1171493511 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1171493512 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :maybe < 1171493587 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :(\x.((xK)S))(\x.((xK)S)) < 1171493595 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :eh, the page has SK < 1171493602 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :er < 1171493604 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :right < 1171493640 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :\x.((xS)K) < 1171493642 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :although we might check what happens with KS as well. < 1171493677 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :indeed those are equivalent. < 1171493687 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :(((\x.xSK)S)K) < 1171493715 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :so it's SSKK? < 1171493724 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yes, as the page says < 1171493726 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :so the page is right < 1171493754 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :because application is left associative < 1171493776 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :well, then \x.x(SK) would make for shorter programs then < 1171493834 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :And how to you unlamdify \x.xSK ? < 1171493838 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :no, because then the previous steps will break. < 1171493864 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1171493891 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :\x.(xS)K = S(SI(KS))(KK) < 1171493948 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you just need three rules: < 1171493969 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :\x A B = S (\x A) (\x B) < 1171493978 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :\x x = I < 1171493996 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :\x C = K C when C does not contain x < 1171494024 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :*\x = \x. < 1171494146 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :so you get \x.xSK == (S (\x.x) (\x.S))(KK) == (SI(KS))(KK) < 1171494199 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :eh no. because \x.xSK is really \x.(xS)K < 1171494233 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :or, you are missing an S in there. < 1171494260 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the outermost one. < 1171494291 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1171494314 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :this is actually easier in unlambda notation. < 1171494386 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :just substitute ``s for each `, change the variable to i and put `k before everything else. < 1171494419 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :hmmm < 1171494431 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and remove the initial \x. (^x in the unlambdaify notation) < 1171494492 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :How did I not understand those rules before < 1171494496 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ACTION smacks head < 1171494554 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :those rules are really what explains why combinatory logic uses S K I, also. :) < 1171494609 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :wikipedia is no good for learning < 1171494742 0 :sebbu!unknown@unknown.invalid QUIT :"@+" < 1171494898 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :yeah, S K I make a lot more sense now < 1171495009 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i was skiing the other day < 1171495050 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :where you thinking about combinatory logic? < 1171495135 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :sure < 1171495140 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :always < 1171495152 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :that _could_ be hazardous in steep hills < 1171495188 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yes, unless you are very good at either of them < 1171495216 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :I tried all math class to get (SI(KS))(KK) < 1171495409 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :actually my experience is that the better you get at math the more hazardous it becomes to do other things simultaneously. < 1171495436 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, true :P < 1171495513 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :because you get to the point where you are completely immersed in it. < 1171495515 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i often have a hard time listening to ppl since i only hear the first few words and then whatever i was thinking about blocks all hearing again < 1171495534 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1171495574 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :same thing with reading a book, i get an idea, 20 minutes pass and someone asks me why i've been looking at the same page for 20 min < 1171495630 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you should be prime professor material :) < 1171495636 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hehe prolly :P < 1171495666 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :often when someone asks me if i want to go somewhere sometime i have to answer i can't come because i wouln't remember to < 1171495669 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*wouldn't < 1171495679 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :academia is the only place for computer science :/ < 1171495701 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :today i asked a teacher in advance what to do in case i forget a test... and forgot it as i'd predicted :) < 1171495741 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood what do you mean by that? < 1171495757 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :what's another job you can get doing cs < 1171495771 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what's cs? < 1171495776 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :computer science < 1171495780 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1171495795 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :see, he already forgot ;-) < 1171495802 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i feel so clever xD < 1171495863 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :but seriously, don't you have something with an alarm/calendar system? < 1171495873 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i should get one < 1171495884 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :maybe some day < 1171495912 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :in high school teachers don't mind things happening half a year late < 1171495923 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so i don't have a real urge :) < 1171496045 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION does remember the last year norwegian projects in high school, when all the pupils in my class were so late the teacher just replaced it with a test instead. < 1171496063 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :essentially. < 1171496129 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :there may have been a couple exceptions but i was not one of them. < 1171496144 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah, that would be ideal < 1171496205 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm not the sort of guy who likes to hear about derivatives for 30 lessons and do 150 assignments when i've known them for 5 years < 1171496250 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if there was just a test, i'd get the best grade prolly, with this system i have to beg for the worst grade to avoid the assignments < 1171496307 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1171496424 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :i hate school < 1171496475 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :cept my math class now doesn't have required homework :) < 1171496520 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, i wouldn't mind assignments should they be challenging < 1171496560 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i just can't do a lot of routineous assignments < 1171496570 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i just explode < 1171496947 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :it's like 20 problems the same < 1171497109 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, a problem on the last page was to find the sides for a triangle for which it's area is the greatest possible < 1171497188 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :last page of the 300 page book < 1171497210 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and they were in order of difficulty < 1171497217 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :somewhat at least