< 1266019239 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :cpressey: of course, it will be rather rubbish for actually *writing* programs < 1266019241 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but who does that? < 1266019316 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION needs to organize his bookmarks at some point < 1266019361 0 :MigoMipo!unknown@unknown.invalid QUIT :Quit: When two people dream the same dream, it ceases to be an illusion. KVIrc 3.4.2 Shiny http://www.kvirc.net < 1266019482 0 :GreaseMonkey!~gm@unaffiliated/greasemonkey JOIN :#esoteric < 1266019539 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Hm < 1266019563 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I did a "Clear Browsing Data" thing in Chrome, but I changed my mind, and can't seem to stop it < 1266019593 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :AND or OR < 1266019597 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :which should be defined first? < 1266019601 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i.e. which is more fundamental? < 1266019604 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :NAND < 1266019639 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :pkill chrome < 1266019639 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :duh < 1266019645 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :uh, i'd go with (a & b) | (c & d) if you're thinking of ordering or something like that < 1266019647 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :And or or = or < 1266019660 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :GRUNT < 1266019666 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :Night folks. < 1266019669 0 :cpressey!unknown@unknown.invalid PART #esoteric :? < 1266019672 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :night.. < 1266019673 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :GreaseMonkey: I mean as in fundamental definitionerition < 1266019676 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: yes yes < 1266019700 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :i'm thinking maybe "or" < 1266019701 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: you are aware that they are entirely dual in boolean logic? < 1266019711 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :which happens to be the inverse of nand < 1266019745 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :in boolean logic -1*-1 = -1 < 1266019761 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :boolean logic is a LIE taught by EVIL academics < 1266019763 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: of course < 1266019769 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*Main> pretty conjunction < 1266019769 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(⊤ ∧ α) → α < 1266019769 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(⊥ ∧ α) → ⊥ < 1266019773 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(where alpha is bold) < 1266019788 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: i'm thinking that it'd actually be ...0101010101010101 recurring < 1266019790 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i'ma writa terma rewritinga systema, mamaa < 1266019795 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :i could be wrong, though < 1266019800 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :conjunction :: System < 1266019800 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :conjunction = < 1266019800 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : Set.fromList < 1266019800 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : [ Rewrite (Structure [Atom "⊤", Atom "∧", Free "α"]) $ Free "α" < 1266019800 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : , Rewrite (Structure [Atom "⊥", Atom "∧", Free "α"]) $ Atom "⊥" ] < 1266019816 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :wait, no, -1*-1 = 1 < 1266019817 0 :jix!unknown@unknown.invalid QUIT :Ping timeout: 246 seconds < 1266019823 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :erm < 1266019825 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :wrong symbol < 1266019825 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :>>> hex(0xff*0xff) < 1266019825 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :'0xfe01' < 1266019827 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :should be V :) < 1266019836 0 :Leonidas!unknown@unknown.invalid QUIT :Ping timeout: 252 seconds < 1266019846 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :no < 1266019850 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :no, not wrong symbol < 1266019850 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1266019863 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :^ being and, IIRC < 1266019895 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i _do_ have this feeling and is more immediately useful though, since it allows you to collect hypotheses < 1266019903 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hmm, actually, I only need Free in the left-hand side < 1266019908 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :on the right, it's just like any other rewriting rule < 1266019911 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :rewriting to the value < 1266019940 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(a -> (b -> c)) <=> ((a & b) -> c) < 1266019960 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :argh, but the structures are almost identical < 1266019964 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :to make them separate types is pure madness, aye < 1266019971 0 :jix!~jix@cyb0rg.org JOIN :#esoteric < 1266020034 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*Main> pretty (Set.union conjunction disjunction) < 1266020034 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(⊤ ∧ α) → α < 1266020034 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(⊤ ∨ α) → ⊤ < 1266020034 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(⊥ ∧ α) → ⊥ < 1266020034 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(⊥ ∨ α) → α < 1266020041 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(where alpha is bold on the left-hand side) < 1266020049 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :interesting ordering there bob < 1266020089 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Ack, it's Agda! Except actually probably not. < 1266020097 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :It's not, it's just a tree rewriting system. < 1266020108 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :conjunction :: System < 1266020108 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :conjunction = < 1266020108 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : Set.fromList < 1266020108 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : [ Rewrite (Structure [Atom "⊤", Atom "∧", Free "α"]) $ Atom "α" < 1266020108 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : , Rewrite (Structure [Atom "⊥", Atom "∧", Free "α"]) $ Atom "⊥" ] < 1266020121 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :What ever happened to rewriting arbitrary graphs? < 1266020123 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise: so was trying that pokemon game. Got one question: how do you catch instead of fight? < 1266020131 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :uorygl: You can do graphs with trees! < 1266020137 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: ... < 1266020141 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Go to the bag, choose a Pokeball >_< < 1266020146 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :You mean you never played Pokemon before? < 1266020146 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh I see < 1266020147 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :There was a bloody realtime tutorial < 1266020150 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, correct < 1266020153 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Didn't you watch it? :P < 1266020158 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, what? in which one? < 1266020167 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Um, someone goes hay i catch pokemon or something < 1266020170 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Oh, I don't know < 1266020172 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :alise: I tried that; I ended up thinking for hours* and not ending up with anything. < 1266020172 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Were you not a child in '98 or something? < 1266020174 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Whatever, enjoy the game, it's good < 1266020178 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :* Footnote. < 1266020191 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, well, yeah, I was the nerd with glasses back then < 1266020201 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well wait < 1266020205 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that was 1999 maybe < 1266020210 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: It was "Oh, hey, let me teach you how to catch Pokemon!" < 1266020267 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I talked to that guy a lot in my Pokemon Blue playthrough. Hooray, Missingno glitch. < 1266020291 0 :Pthing!unknown@unknown.invalid QUIT :Remote host closed the connection < 1266020300 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*Main> pretty (Set.unions [conjunction, disjunction, conditional]) < 1266020301 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(if ⊤ then β else γ) → β < 1266020301 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(if ⊥ then β else γ) → γ < 1266020301 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(⊤ ∧ α) → α < 1266020301 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(⊤ ∨ α) → ⊤ < 1266020301 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(⊥ ∧ α) → ⊥ < 1266020303 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(⊥ ∨ α) → α < 1266020318 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : I talked to that guy a lot in my Pokemon Blue playthrough. Hooray, Missingno glitch. <-- this was saphire or something like that..? < 1266020323 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sapphire. < 1266020331 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :The "main" GBA Pokemon game. < 1266020334 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :They're all pretty much identical, though. < 1266020339 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :heh? < 1266020343 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Blue. The Gameboy game. < 1266020368 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Had a large number of exploitable bugs. < 1266020379 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :missingno is beautiful < 1266020386 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Missingno was the best-known. < 1266020392 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://www.utdallas.edu/~rxf023000/stuff/missingno.jpg < 1266020436 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :tree rewriting is fun < 1266020474 0 :Leonidas!~Leonidas@unaffiliated/leonidas JOIN :#esoteric < 1266020495 0 :FIQ!~FIQ@unaffiliated/fiq JOIN :#esoteric < 1266020500 0 :FireFly!unknown@unknown.invalid QUIT :Quit: Leaving < 1266020516 0 :FIQ!unknown@unknown.invalid PART #esoteric :? < 1266020610 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :okay, so basic rewriting steps: rewrite the outermost expression by matching it against rules; take the most specific (atoms rather than free variables) < 1266020632 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :bind any free variables, and repeat the whole process with the RHS of the rule < 1266020639 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :until no changes are made in one rewrite step < 1266020641 0 :Leonidas!unknown@unknown.invalid QUIT :Read error: Operation timed out < 1266020667 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :how do you do tree rewriting < 1266020681 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :like that < 1266020708 0 :zzo38!~zzo38@h24-207-48-53.dlt.dccnet.com JOIN :#esoteric < 1266020711 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :There's actually 5 forms of Missingno... < 1266020718 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :what about maude < 1266020721 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :and CHR < 1266020754 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :That monstrosity, the Kabutops fossil, the Aerodactyl Fossil, the Ghost, and this monstrosity: http://bulbapedia.bulbagarden.net/wiki/File:000Y.png < 1266020761 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: i'm lazy and want to do it stupidly < 1266020773 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Last monstrosity Yellow-only, requires usage of the Mew glitch instead of the Old Man glitch. < 1266020774 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :besides, mine has unicode. < 1266020775 0 :Leonidas!~Leonidas@unaffiliated/leonidas JOIN :#esoteric < 1266020777 0 :Asztal!unknown@unknown.invalid QUIT :Ping timeout: 240 seconds < 1266020779 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(bug fixed in Yellow) < 1266020793 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise im writing an algebra systems < 1266020798 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :personal algebra sys < 1266020811 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hmm, my rewriter should be a monady function for the error handling < 1266020813 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :as long as it isn't a grammar systems < 1266020814 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and yield a list of rewrites < 1266020827 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :all you do is takewhile notidenticaltopreviousthingy on that to get the main reducer function < 1266020835 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and last on that to get the normal form < 1266020838 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :why do you mean at least isn't a grammar systems? < 1266020846 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :15:08:29 I fail to see how much more wrong it is to having an undecidable type system, than to have an undecidable execution model, which is essentially a given. < 1266020850 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :my language has neither! < 1266020871 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :15:13:06 why not check the logs for when tusho was last seen <-- he calls himself uorygl these days < 1266020871 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :XD < 1266020893 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :my vague recollection database needs some cleanup < 1266020898 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise how do you know a rewrite system terminates? < 1266020908 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :not *that* language < 1266020914 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise I know a couple tricks < 1266020916 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the other one, which for want of a better name is aliselang for now < 1266020919 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: well _one_ of you better stop changing nick _all the time_ dammit! < 1266020923 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: poo < 1266020924 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alsie what about knuth-bendix completion < 1266020973 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: hm i also vaguely recall discussing that takewhile notidenticaltopreviousthingy on #haskell < 1266020998 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I probably was involved. < 1266021007 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :as something people confuse with fix, and maybe if it should be added to some library (don't recall if it was) < 1266021012 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :f your rewrite system is confluent fuck you < 1266021020 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :wait that didn't come out right < 1266021021 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Either is a monad right < 1266021025 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :Either e < 1266021031 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :or was that until < 1266021032 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yes yes < 1266021032 0 :zzo38!unknown@unknown.invalid QUIT :Remote host closed the connection < 1266021033 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: are you drunk btw :P < 1266021035 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :it's the only monad I have left < 1266021039 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: Either e, but e needs a typeclass < 1266021049 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: so it's not a monad in practice then < 1266021057 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I just love term rewriting < 1266021066 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :sure it is, it's just for fail it's needed < 1266021079 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :what typeclass thenny < 1266021087 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :what are you writing thought < 1266021088 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :what are you writing though < 1266021089 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise < 1266021093 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :what are you writing < 1266021097 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :just a language < 1266021100 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :a little esolang < 1266021101 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :tarpit < 1266021103 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :rewriting tarpit < 1266021104 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :coool < 1266021111 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :like http://esolangs.org/wiki/Defcalc but better since I made it < 1266021113 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i do everything better < 1266021120 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: Error < 1266021141 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: but i don't want to make Oops an Error < 1266021146 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :this is not really an esolang?? < 1266021147 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it's a perfectly acceptable errory snowflake by itself! < 1266021151 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: it's a tarpit < 1266021152 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :tarpits are esolangs < 1266021163 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :what do you mean it's a tarpit? < 1266021168 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: it's for converting error messages into e < 1266021174 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :what, http://esolangs.org/wiki/Defcalc? < 1266021188 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: fail should be in a separate typeclass :( < 1266021190 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :since e is intuitively the exceptional case < 1266021198 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(in Either e) < 1266021224 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :what's meant by a tarpi < 1266021228 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :tarpit < 1266021229 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: :| < 1266021238 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :a minimalistic language, that values minimalism above all else to the point of unusability < 1266021244 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ideally, pure, condensed paradigm < 1266021250 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :oh like scheme? < 1266021255 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :no < 1266021264 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Scheme is usuable. < 1266021264 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :like brainfuck and underload. < 1266021265 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :that was a joke :D < 1266021272 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i was suspecting either a joke or a troll < 1266021276 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but, you know, be nice alise < 1266021282 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :but Defcalc looks exactly like Q < 1266021282 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Lazy K, Brainfuck, Underload, Unlambda... < 1266021290 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :which is not really considered an esolang < 1266021294 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Oh, and HQ9+. < 1266021305 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well it's the little niceties and efficient evaluation that make a lang not an eso one < 1266021306 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(though not a *Turing* tarpit. Just a tarpit. :P) < 1266021317 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :ohhh < 1266021319 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :typed tree rewriting would be nice, nice < 1266021325 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :also pure is q++ < 1266021329 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :by the way < 1266021341 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :what tree rewrite programs do you do that aren't just functional programs? < 1266021347 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :dependently-typed typed tree rewriting + magical efficient evaluation algorithm = i'll just go retire < 1266021355 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: well one you can do symbolic manipulation < 1266021359 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so there's your CAS base right there < 1266021364 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :really? < 1266021368 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :sure, of course < 1266021375 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :symbolic evaluation == structure rewriting < 1266021376 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I mean I switched from prolog to haskell because I wanted functions < 1266021392 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :two, you can do fancy syntax without any shit < 1266021414 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :as long as you can distinguish literal atom and variable you can have ``(lambda x ^^ q / r) and okay`` as a rewrite rule < 1266021419 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :why not < 1266021437 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the only syntax you need is for defining rewrite rules, and parens < 1266021449 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you can even implement operator associativity/precedence yourself < 1266021455 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :x + y + z = x + (y + z) < 1266021461 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :given = being rewrite < 1266021476 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :okay but I still don't really see it < 1266021477 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :for practical langs functional programming wins because you can evaluate it efficiently and the like < 1266021500 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :do these langauges implementaitons do things like Knuth-Bendix completion on your input < 1266021528 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :not that i know of it's really pretty simple to implement < 1266021560 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you grep the set of rewrite rules, pick the one with the least free variables that fits the term, add rewrite rules with the free variables to their corresponding parts of the expression, and replace w/ the RHS < 1266021563 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :rinse, lather, repeat < 1266021624 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: http://q-lang.sourceforge.net/examples/symbolic.q an example of symbolic stuff w/ rewriting langs < 1266021699 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :also http://q-lang.sourceforge.net/examples/dnf.q < 1266021714 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :btw guys i implemented deflate in ruby < 1266021734 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1266021749 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I never really learned any more compression beyond arithmetic :( < 1266021753 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :it's fairly easy once you've nailed the dynamic huffman coding < 1266021754 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :which is totally cool but it's kind of basic < 1266021765 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :really its' just like dynamic huffman? < 1266021779 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :the ones I never really got were the LZwhatevers < 1266021780 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :the dynamic huffman blocks are done in a very clever way < 1266021796 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :it's LZ77/LZSS after the huffman coding < 1266021813 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :366 lines baby \o/ < 1266021817 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise, that DNF is pretty much the only rewrite system I know :P < 1266021850 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :doesn't take much brains to understand rewriting systems, makes sense quickly enough < 1266021873 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I don't see the point of rewrite systems if they don't do a tremendous amount of analysis and derivation on your programs < 1266021876 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you just have to rewrite your brain a little < 1266021879 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :why would anyone bother if you don't? < 1266021936 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: because they're fun < 1266021936 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :esolangs < 1266021937 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :#esoteric < 1266021940 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :that's where you are < 1266021970 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I read that whole book on All About Maude and I still don't really 'get it' < 1266022001 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :it's just functional programming where functions are constructors < 1266022009 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :disagree < 1266022011 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :maybe that's what the game is < 1266022023 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :unify functions and constructors into one thing: So that the idea is much simpler < 1266022032 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :so it's all just terms now (like prolog) < 1266022092 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but a lot simpler than prolog < 1266022104 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :no searching thru logicspace and whatnot :P < 1266022117 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :just dead simple match term against most specific rule, replace with RHS < 1266022185 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oh, one useful extra rule (maybe) is to have (just inventing syntax here) a->b : c < 1266022189 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so you can do, for example < 1266022200 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(lambda x e) y = x -> y : e < 1266022206 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i.e., "with rule x -> y, e" < 1266022219 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :yeah but I mean < 1266022235 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :the obvious approach is to just take the equations in the program and rewrite them iteratively < 1266022247 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :but there is some algorithms, I think, which can improve it < 1266022266 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oh, of course < 1266022268 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :same answer (assuming a confluent system) < 1266022276 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but those are equivalent implementations, i.e. theoretically irrelevant < 1266022290 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :for purity and simplicity you look at the dumbest implementaiton < 1266022313 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i think my language is all confluent and that jazz < 1266022324 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :incidentally tree rewriting systems leave io very simple and whatnot < 1266022325 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if you do < 1266022327 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wonders what happen if you do < 1266022333 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :x + y = y + x < 1266022336 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :y + x = x + y < 1266022338 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :in Q < 1266022357 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :x <- e; y = x (lambda e y) < 1266022371 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :x; y = x (thunk y) < 1266022379 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and then you can do < 1266022387 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :print "hi"; print "yo"; x <- getLine; print x < 1266022388 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :-> < 1266022399 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :heh cool < 1266022414 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :print "hi" (thunk (print "yo" (thunk (getLine (lambda x (print x)))))) < 1266022419 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well, guess you need some sort of final terminator < 1266022426 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :x; = x (thunk nil) < 1266022430 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :anyway, that can reduce to say < 1266022445 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :putc 'h' (putc 'i' ... etc < 1266022448 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is gonna reskim term rewriting and all that < 1266022460 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and when the getLine reduces, it all just turns into an inert structure < 1266022465 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but since you're inherently lazily evaluating it < 1266022470 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(because that's what term rewriting _is_, lazy) < 1266022476 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you can output and input as you go < 1266022497 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so you write a few terms inside the language, and have the runtime system just evaluate it and interpret a very very simple IO structure < 1266022504 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and you have a syntactically-sugary IO system < 1266022512 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :can't really do that in the same way with functional langs < 1266022519 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i mean, term rewriting _is_ functional < 1266022521 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but you kniow what i mean < 1266022539 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :term rewriting is lazy? < 1266022555 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well it can be < 1266022557 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :what if you have two rules that go to different foobars < 1266022562 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :K x y = x < 1266022567 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :K x destroyEntireWorld -> x < 1266022570 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1266022572 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :destroyEntireWorld is never reduced < 1266022572 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1266022577 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :yeah but it MIGHT be ? < 1266022581 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :why < 1266022598 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :well my thought with confluence is you'd expect x + y to be the same if you eval x or y first < 1266022601 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :because of K x (poop y) = ... < 1266022605 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :right < 1266022614 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well sure < 1266022618 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but that's the same way as haskell is lazy < 1266022621 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you gotta force sometime < 1266022630 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it's lazy enough to allow incremental io, is the point < 1266022729 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :you know the word problem? < 1266022738 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :you get a 'word' in group theory like < 1266022744 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :f*o*o*b*a*z < 1266022751 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :and you want to find out if it equals some other word < 1266022780 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :and you can only use the rules of group theory (the specific group might have certain new equivalences compared to an arbitrary group) < 1266022792 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :that is an undecidible problem but sometimes it is decidible < 1266022821 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :anyway, if you code that sort of thing into a rewrite system, like Q -- you will lose the declarative meaning of =, all = means in that case is LHS turns into RHS < 1266022828 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I think ? < 1266022881 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1266022884 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i think so < 1266022908 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(if x then a else b) using 0/1 booleans: (a-b)x + b < 1266022914 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I like the idea you can specify a theory by equations, then it decides equality on it < 1266022918 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :w/ iverson brackets: (a-b)[x] + b < 1266022957 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :x=1-[x=x] < 1266022983 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :is that x=(1-[x=x])? < 1266022988 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :presumably for x = 0 or 1 < 1266022998 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :0=(1-1), yes, but 1 /= (1-1)... < 1266023025 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :x=[x=0] < 1266023067 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well, of course. < 1266023092 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :?? < 1266023097 0 :kar8nga!unknown@unknown.invalid QUIT :Remote host closed the connection < 1266023110 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :obviously x=[x=0] < 1266023123 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :same thing as saying x = (x = true) < 1266023128 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :0 is true? < 1266023133 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i.e. x is true iff x is true < 1266023134 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :that's esoteric < 1266023139 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :erm, right < 1266023142 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :obviously the negation of that < 1266023144 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1266023178 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Well, thank you Xstreet SL, for essentially removing my free competitors from the public eye < 1266023285 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :ACTION can't think of anything else than x=[x=0] < 1266023368 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :x=[x=1] :P < 1266023372 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :that is actually true for instance < 1266023703 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :1 + Sum{i = 1..} [i <= x] = x < 1266023722 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :smallest interesting number < 1266023737 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :XD < 1266023918 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: remind me to define my own Eq that does alpha-conversion < 1266023923 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(otherwise using Set is pointless) < 1266023983 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :dude < 1266023993 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :use de bruijn indices!!!!!!!!! < 1266024009 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1266024011 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :maybe i will. < 1266024012 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yeah, i will < 1266024024 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :no < 1266024027 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I won't < 1266024031 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :because in the end, *all* atoms are variables < 1266024036 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so instead of if foo then bar else xyz < 1266024040 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i'd get 3 293 54 2 < 1266024258 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: if i can actually get (dependent) typing onto a tree rewriting system < 1266024264 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :plus an efficient method of evaluation < 1266024268 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :aliselang will have changed completely < 1266024290 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :hmmmmmmmmmmmmmmmm < 1266024293 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :that's an interesting thought < 1266024314 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :one thing you don't have to worry about is pattern match coverage < 1266024354 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :why not? < 1266024371 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :heh, interesting thing is that you can have a function of forall a. a -> ... < 1266024374 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and do actual meaningful processing < 1266024379 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :because it's not functions < 1266024382 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(since it'd let you do any rewrite) < 1266024390 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it'd be a very different type system < 1266024394 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :only used to restrict rather than to relax < 1266024417 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :yeah since you have stronger conversion than normal reduction that might be nice for type checking and proofs < 1266024433 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :reflective proving might be possible without quotation :o < 1266024478 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the thing with a tree rewriting system is that values are never magically created < 1266024486 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :every value exists in stasis, because it's just an inert term < 1266024520 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :set N = { 0, S (x:N) } < 1266024528 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :then S : N -> N < 1266024542 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but S wasn't created by doing that < 1266024550 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it was just given a more restrictive type, and added to a set < 1266024556 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well < 1266024561 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :its "result" was added to a set < 1266024564 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :not the rule it self < 1266024602 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ACTION sticks to the convention uppercase=free variable < 1266024671 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :set C = { (A:R) + (B:R) i } < 1266024693 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I think as long as x + (y i) isn't defined, i.e. i is inert and + doesn't match on it, that's perfectly fine < 1266024698 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and lets you say 2 + 3 i < 1266024711 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hmm, dunno how to do type inference < 1266024715 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :there's no barrier to a value being in two sets < 1266024812 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: this is really interesting < 1266024827 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :yeah it is actually < 1266024829 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :set B = { 0, 1 } < 1266024835 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :set N = { 0, S (x:N) } < 1266024839 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but 1 is just sugar for S 0 < 1266024846 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so we have < 1266024850 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :set B = { 0, S 0 } < 1266024853 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :mmm, sugar < 1266024854 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :set N = { 0, S (x:N) } < 1266024868 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :in B, S 0 I think would turn into S (0:B) < 1266024880 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :since S : a -> a would be defined before, i.e. < 1266024885 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :no matter what type you make it, it never changes the type < 1266024892 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so we'd be able to infer that B is a subtype of N < 1266024905 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and you'd be able to take the factorial of true :-) < 1266024953 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :[true]! < 1266024978 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :[x] = x if you have 0, 1 as booleans < 1266024987 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1266025000 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you can implement optimisations inside the language!!! < 1266025009 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :map F (map G XS) = map (F . G) XS < 1266025029 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :ACTION tries to make the biggest number I can out of iverson bracket using the fewest number of symbols < 1266025035 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: guards would be nice, meaning "this only actually matches the terms if" < 1266025049 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise, CHR has like < 1266025059 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :head <=> guard | body. < 1266025072 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :and guard is optional < 1266025080 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :but it's not a rewrite system < 1266025114 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :N ! | 0 < N < 2 = 1 < 1266025122 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :N ! | N >= 2 = N * (N-1) ! < 1266025130 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :that way you could define N ! for negative N separately < 1266025146 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :because if N < 0, those rules don't match < 1266025199 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :map F (XS ++ YS) = map F XS ++ map F YS < 1266025200 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hahah < 1266025208 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you can literally translate haskell optimisation rules directly into tree rewriting ones < 1266025224 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the only thing more you need is a declaration specifying "this would be clever to do at compile-time" < 1266025229 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :maybe not even that given a sufficiently-smart compiler < 1266025261 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hmm, I guess to infer types you need something like < 1266025268 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :0 : B | N | ...tons of types... < 1266025300 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i like this i do, i do < 1266025309 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I can't make big numbers using the iverson bracket :( < 1266025321 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :it's stronger than mu!! this should be easy < 1266025323 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i love how you can just define < 1266025326 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :x < y < z < 1266025328 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :separately < 1266025339 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :how come it doesn't get confused with x < y? < 1266025350 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :because it's more specific, i.e. you have to add less stuff < 1266025357 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :a free variable (i.e. argument) counts as adding stuff < 1266025361 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :adding parens counts as adding stuff < 1266025370 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and adding parens is more serious than a free variable < 1266025379 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :ahh < 1266025382 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so if you can choose either x < y < z or x < (y < z), x < y < z wins < 1266025383 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :so it's like object oriented < 1266025387 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :not really :P < 1266025393 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it's just part of the "pick the most specific rule" < 1266025439 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :that sounds like OO < 1266025465 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :howso? < 1266025500 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it's just to resolve ambiguous rules... if you have an x + y rule and an x + 0 rule, obviously you want to pick the latter; so you select the one with the least free variables < 1266025534 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and if you have x < y < z, well X < Y < Z is a more specific rule than X < Y for that, we know this intuitively; and since the former would be x < (y < z) or (x < y) < z, we can say this as: pick the one that makes us add the least parentheses < 1266025548 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :X < Y < Z has one more free variable than X < Y, but the parens rule takes precedence over the free-variable rule in all cases < 1266025579 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i may just be a genius < 1266025614 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: one issue with tree rewriting is that you can just add any old typo and it works as a variable name < 1266025617 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :because it's just an inert tree < 1266025628 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but you can have a rule, say < 1266025632 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(in the compiler) < 1266025656 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :any name not in a set or used in a rewrite rule that matches it triggers an error and halts compilation < 1266025668 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :unless you add some compiler decl to say "it's okay man" < 1266025780 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: should work right? < 1266025785 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :90% of the time you'll work with typed stuff < 1266025797 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hmm, merd has those Foo | Bar types < 1266025810 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise these was an idea to use term rewriting in Coq < 1266025814 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :[[the type of list [ 1, "foo" ] is a list of elements of type 1|"foo"]] < 1266025819 0 :Gracenotes!unknown@unknown.invalid QUIT :Remote host closed the connection < 1266025821 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :stuff like 0 + x --> x and x + 0 --> x < 1266025832 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :incidentally the Int/Integer bullshit you get in haskell doesn't exist in this lang < 1266025839 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :because Int would be a subset of Integer < 1266025843 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the interface would be like < 1266025857 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :set Int = { 0, 1, ... abignumber } < 1266025865 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :set Integer { 0, S (N:Integer) } < 1266025876 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and since 1 = S 0, 2 = S 1 = S (S 0), etc., they come out to be subsets < 1266025896 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :of course, it means that what's of type Int changes depending on the machine, which is worrying < 1266025898 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but perhaps cool < 1266025905 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :programs that will overflow just won't compile < 1266025931 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i'm really liking this idea < 1266025966 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: i'm digging it are you digging it :| < 1266025967 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :DIG IT < 1266026004 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :say, we can do currying with this thing < 1266026006 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Wait, is this turing complete? How can a compiler for a turing-complete language detect that something will happen? < 1266026022 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :f x y can be (f x) y and rewrite just fine < 1266026027 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :since the rewrite rule will have less parens, blah blah < 1266026029 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :how can a compiler really KNOW anything? < 1266026042 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: because x+y : Int is only acceptable if x+y is of type Int < 1266026059 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if Int is a finite set, given the definition of addition, we obviously know the top element < 1266026072 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i'm tired < 1266026091 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :May I assume that the compiler will complain even in cases where an overflow would never occur? < 1266026126 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well you couldn't define + : int -> int -> int i don't think < 1266026136 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :because what is maxint + maxint? < 1266026151 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it'd have to be int -> int -> maybe int, or +overflowing : ... < 1266026225 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I like Fortress' syntactic heresy < 1266026232 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :a[x] -> a_x especially < 1266026310 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :Fortress is pretty cool looknig < 1266026311 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: have you used texmacs? < 1266026312 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :looking < 1266026317 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it looks good, maybe a good editor for my lang < 1266026322 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :yeah I like texmacs though it's horribly slow to use < 1266026323 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :what with its mathematically notation stuff < 1266026330 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :there's some algebra systems in it which is nice < 1266026340 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :slow is it? I'm installing it now so yeah < 1266026350 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :would be so so so cool to use it for a programming language :P < 1266026361 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well if this goes well that is my plan :) < 1266026364 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I want epigram mode in texmacs with all the coloring in < 1266026381 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :nice fancy syntactical, typed tree-rewriting language < 1266026386 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it'd be so... lovely < 1266026444 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :will take some getting used to that (forall a b. a -> b) can actually have some meaningful values, though < 1266026446 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :like < 1266026453 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :frobnicate 0 = 72 < 1266026460 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :ACTION looks up rewriting on wikipedia -- there is a Philosophy section < 1266026468 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :frobnicate "a" = [00,"haberdashery"] < 1266026472 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :frobnicate X = X < 1266026474 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :Philosophy of term rewriting: What does it mean for a term to be rewritten? < 1266026478 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :xD < 1266026486 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :At what point does a term cease to exist? < 1266026545 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the only thing aliselang was missing was the CAS < 1266026550 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :adding symbolic stuff seemed like an afterthought < 1266026557 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but if I can blend Agda and Q/Pure, well, why the fuck not < 1266026599 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I love sites like this http://rewriting.loria.fr/ < 1266026615 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :the moment you see that banner you know the authors of this site LOVE term rewriting < 1266026624 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1266026649 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :methinks a functionalish type system for a term rewriting language will be way different to anything the haskellers have ever seen < 1266026659 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :for instance, if you have a rule (foo X Y), that doesn't mean that foo : that < 1266026668 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :in fact, you need syntax as part of the types < 1266026672 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :principle typing < 1266026673 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :GONE < 1266026710 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :like < 1266026714 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :say you want the analogue of < 1266026718 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :apply :: (a -> b) -> a -> b < 1266026721 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it'd be < 1266026744 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :assuming that by (a -> b) < 1266026747 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :we want a rewriting term < 1266026749 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :not some lambda structure < 1266026753 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :like, apply apply should be acceptable < 1266026787 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :apply (x | x A : B) A : B < 1266026788 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I think < 1266026793 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :because it's not just a -> b < 1266026797 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it could be x ? y : z < 1266026799 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and then x A wouldn't work < 1266026812 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :in fact you couldn't pass it as-is because it doesn't have one name < 1266026843 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :of course, the sane thing to do is just to have (λ(X Y Z) X ? Y : Z) :P < 1266026924 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well, one thing's for sure < 1266026927 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :this language won't be more of the same... < 1266026941 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :we're so used to thinking of applying function-values to other values < 1266026953 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but first class rules is a damn interesting idea < 1266026986 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :fortress's automatic parallelisation is sweet < 1266026994 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :that's really easy with term rewriting i think < 1266027005 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :since it's literally just splitting the evaluation of a term if you deem it good < 1266027113 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: another thing tree rewriting languages can do: invert functions < 1266027121 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :what?? < 1266027122 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :since lambdas have their contents exposed, you just fiddle about a bit < 1266027124 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well not all functions obviously < 1266027125 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but i mean < 1266027128 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :in haskell functions are opaque < 1266027130 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but if you have < 1266027136 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :set A -> B = { Lam ... } < 1266027138 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :in a term language < 1266027146 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :their bodies are just inert blah blahs < 1266027151 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and you can rewrite them as usual < 1266027175 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :http://www.cs.tau.ac.il/~nachumd/rewrite/index.html lol this page as tags term rewriting enthusiasts are crazy < 1266027336 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you could have a term like < 1266027337 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :err < 1266027340 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i'll just give an example < 1266027343 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :N ! = ... < 1266027355 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :doc (N !) = "blah blah blah" < 1266027357 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and you could do < 1266027362 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :doc (3 !) and get factorial's docs < 1266027364 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :or doc (n !) < 1266027365 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :etc < 1266027373 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i think the type would be < 1266027388 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :doc : forall a b. a -> (String | b) < 1266027393 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the | b being implicit i guess < 1266027397 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :since if you have undefined cases < 1266027402 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :like doc "a chicken" < 1266027406 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it'll just return doc "a chicken" < 1266027409 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so you'd just write it as < 1266027412 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :doc : forall a. a -> String < 1266027522 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :one thing's for sure < 1266027526 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :TeXmacs is beautiful < 1266027533 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i love computer modern < 1266027615 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :yeah I like it < 1266027687 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :http://www.cs.unm.edu/~mccune/sobb2/ < 1266027826 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :haha 2 \over2 in TeXmacs shows as 2 0.5 < 1266027861 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Time to WinDirStat < 1266027898 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :90MB of free space o.O < 1266027970 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: wow texmacs is nice, why do people use silly things like lyx < 1266027999 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :well i don't actually write TeX :D < 1266028016 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I j ust wanted it for a GUI < 1266028046 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :tex is convenient for quick mathematical stuff, though < 1266028057 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :ACTION uses paper < 1266028064 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I think I should learn LaTeX < 1266028064 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :less quick than that :P < 1266028066 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I mean quick to input < 1266028072 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :besides, why write A[N] when you can write A_N eh < 1266028244 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :admittedly what I really want is you type A[ and see A(subscript cursor) < 1266028259 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :then you type N and see A(subscript N with some sort of red cursor to the right indicating "incomplete") < 1266028266 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :then you type ] and the cursor gets big again and non-red < 1266028487 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I want to have italic lowercase names as vars in the viewing form of my lang because it's prettier but it creates a bad clashing with the Foo syntax of the ascii form :( < 1266028856 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: what do you think of literate programming? < 1266028893 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I LIKE it < 1266028921 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: but do you LIKE IT like it? < 1266028932 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1266028935 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Why does Chrome hate Reddit so? < 1266028936 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :100% < 1266028955 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: Then what do you think of TeXmacs literate programming where a non-literate program just happens to be entirely within an equations block?! < 1266028968 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Literacy for all! < 1266029062 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :personally i think only literates should be allowed to program < 1266029311 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: agree or disagree: fortress sticks a little *too* close to mathematical notation < 1266029323 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :no clue .. < 1266029331 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :imo it does; it even uses |x| for abs < 1266029339 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :well I hate |x| < 1266029355 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: Hear hear. < 1266029363 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :a lot of the time, mathematical notation sucks < 1266029370 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :because there isn't really any underlying rules, at all < 1266029378 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you just invent domain-specific notation, regardless of any clashes < 1266029398 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Many of the ideas in mathematical notation are decent. < 1266029408 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Unfortunately, it clashes a *lot*. < 1266029847 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION now has 15.2GB free :D < 1266029860 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Removing Portal and Team Fortress from my HD really helped < 1266029924 0 :Asztal!~asztal@host86-172-6-94.range86-172.btcentralplus.com JOIN :#esoteric < 1266029988 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1266029997 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :how easy is it to get real LaTeX to render in realtime, I wonder? < 1266030004 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :complete expressions, just... really quickly and incrementally < 1266030044 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :"And that, friends, is how I solved the Halting Problem." --Conor McBride < 1266030225 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: I think I prefer having set C = {Foo (a:R) (b:R)} < 1266030228 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :then having < 1266030237 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i as a separate thing < 1266030243 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so that a + bi can be a + b*i < 1266030250 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but... is having juxtaposition as multiplication really something I want? < 1266030271 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :no it's not! < 1266030278 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :right < 1266030283 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but otherwise, a + bi looks ugly < 1266030286 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :because i has to be in text < 1266030289 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(because italics = variable) < 1266030297 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so you get itaaaalic bSTRAIGHT i < 1266030483 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: so, that's one problem with tree rewriting systems < 1266030491 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :variable vs atom < 1266030515 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :huh? < 1266030520 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :why is it a problem? < 1266030528 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if x then y else z < 1266030532 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you need to mark the variables right? < 1266030533 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Chrome hates Reddit :( < 1266030534 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if X then Y else Z < 1266030536 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :in the LHS of a rule < 1266030541 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so then when you go to define complex numbers < 1266030551 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :set C = {(A:R)+(B:R)i} < 1266030557 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so your wonderful function working on complex numbers < 1266030559 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :has to say < 1266030564 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(A + B i) < 1266030568 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :this is fine in ascii, absolutely fine < 1266030582 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but when you go into TeX-esque land, < 1266030594 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you think hey, it'd be nice if italics = variable and roman = literal < 1266030599 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :after all, that's how mathematics is usually typeset < 1266030600 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so < 1266030601 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you get < 1266030603 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :a + bi < 1266030605 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :rendered as < 1266030610 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :italic a + italic bSTRAIGHT i < 1266030619 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and it looks unnatural and weird < 1266030620 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and you are sad < 1266030658 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :or maybe I'm crazy and it's fine < 1266030705 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: one thing I'd like is to have two definitions of types, functions etc < 1266030717 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :one is the equational definition, which is the simplest, purest form; inefficient as hell < 1266030719 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and one is the runtime definition < 1266030731 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the former is used for everything but the actual crunch time, making inferring things, etc. easier < 1266030984 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it is stupid how little fancy stuff today's languages have < 1266031149 0 :rodgort`!unknown@unknown.invalid QUIT :Quit: Coyote finally caught me < 1266031284 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :int64? bah. more like \mathbb{N}_{64} < 1266031292 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: actually i think i is usually typeset as a variable < 1266031299 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: exactly, but you can't < 1266031302 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :because it's not a variable < 1266031308 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it's part of the syntax of the rewriting rule < 1266031320 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you could define set C = { boring stuff } and have i be a separate variable, I guess < 1266031326 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but you wouldn't be able to pattern match on it < 1266031329 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :which is lame < 1266031390 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1266031431 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :by < 1266031506 0 :MissPiggy!unknown@unknown.invalid QUIT :Quit: Lost terminal < 1266032793 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :As a bonus, you also get "constructors with equations" for free. E.g., suppose that we want lists to automagically stay sorted and eliminate duplicates. In Pure we can do this by simply adding the following equations for the : constructor: < 1266032794 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :> x:y:xs = y:x:xs if x>y; x:y:xs = x:xs if x==y; < 1266032794 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :> [13,7,9,7,1]+[1,9,7,5]; < 1266032794 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :[1,5,7,9,13] < 1266032796 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pure is so cool < 1266032798 0 :augur!~augur@c-98-218-226-149.hsd1.dc.comcast.net JOIN :#esoteric < 1266033425 0 :jcp!unknown@unknown.invalid QUIT :Remote host closed the connection < 1266033751 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :That is rather cool. < 1266033808 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i'm thinkin' < 1266033811 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :typed term rewriting < 1266033813 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :next big thing? < 1266034239 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Maybe. < 1266034297 0 :GreaseMonkey!unknown@unknown.invalid QUIT :Ping timeout: 256 seconds < 1266034318 0 :GreaseMonkey!~gm@unaffiliated/greasemonkey JOIN :#esoteric < 1266034413 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :What we need is a typechecker for Thue. < 1266034443 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :and T::=T < 1266034447 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :"Oi, what? I don't think so." < 1266035049 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: \mathbb{Z}_32. Bit-specified integers have never looked so classy. < 1266035088 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :*_{32} < 1266035109 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: Heh. < 1266035177 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: shaddup < 1266035196 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :also, that would be 5 bits, not 32 with usual meaning < 1266035281 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oh, I forgot stupid mathematicians overloaded it < 1266035283 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :idiots :P < 1266035294 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION cackles evilly < 1266035297 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :\mathbb{Z}_{2^{32}} right? < 1266035304 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :right < 1266035304 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well that's just even classier. < 1266035332 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :n \textnormal{bits} = 2^n < 1266035337 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION just sent for a self-test kit to go on a bone marrow donor registry < 1266035343 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :\mathbb{Z}_{32 \textnormal{bits}} < 1266035347 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: aiee the pain < 1266035348 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ow ow ow < 1266035372 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I'm pretty sure there won't be any pain unless I end up actually donating < 1266035374 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :\times or \cdot for the standard multiplication operation, I wonder? < 1266035377 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :And even then, it's worth it < 1266035377 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :\cdot is lighter < 1266035388 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :\times is more... timesy < 1266035392 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION really hopes Sgeo doesn't have to get an actual bone marrow sample for the test < 1266035403 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: I doubt that would be a self-test. < 1266035404 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :It's a cheek swab < 1266035421 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh not even drawing blood? pussies! < 1266035421 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: Coated with sulfuric acid! < 1266035429 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric : < 1266035478 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: so, get with the \times? < 1266035479 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ACTION tries to figure out how to tell LyX to add more spacing in between the equations < 1266035515 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Isn't it better to convey semantic meaning? < 1266035529 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :that doesn't change the fact that the output is ugly because it's too close together < 1266035567 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but, god, \textnormal{set }\mathbb{Q}&=\left\{ \frac{n:\mathbb{Z}}{d:\mathbb{Z}}\right\} may just have been the most beautiful thing I've written in my entire life < 1266035575 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :er, should it be \textnormal{set } or \textnormal{set}\ ? < 1266035581 0 :augur!unknown@unknown.invalid QUIT :Ping timeout: 256 seconds < 1266035761 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :anyway < 1266035766 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :set Q = {(N:Z)/(D:Z)} < 1266035766 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(A/B) + (C/D) = ((A*D) + (B*C)) / (B*D) < 1266035766 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(A/B) * (C/D) = (A*C) / (B*D) < 1266035767 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :-> < 1266035773 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :\textnormal{set }\mathbb{Q}&=\left\{ \frac{n:\mathbb{Z}}{d:\mathbb{Z}}\right\} \\\frac{a}{b}+\frac{c}{d}&=\frac{(a\times d)+(b\times c)}{b\times d}\\\frac{a}{b}\times\frac{c}{d}&=\frac{a\times c}{b\times d} < 1266035790 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(just imagine something terribly pretty) < 1266035811 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Render it and put it online and show us! < 1266035821 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I'm trying to, but I can't get LyX to space it out some more! < 1266035886 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :There; using the principle of the Most Horrific Hack, I just added dummy lines in-between. < 1266035894 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: \textnormal{set }foo or \textnormal{set}\ foo? < 1266035923 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :bah < 1266035945 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :wut < 1266035959 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :will set always be used with a space after? < 1266035971 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :otherwise the second seems more logical < 1266036107 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well, the syntax we're expressing is "set NAME = {...}" < 1266036108 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :is set a command or a part of "set Q"? < 1266036111 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1266036119 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :set as in a set set < 1266036120 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :as in a type < 1266036125 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :as opposed to "set var = val" < 1266036127 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :in that case it would be more logical to have set _outside_ the math < 1266036140 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :erm, but it's in an equation block thingy < 1266036144 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i suppose that may not ... right < 1266036175 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :also why \textnormal and not \mbox < 1266036202 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :dunno, i'm really completely clueless with latex ::) < 1266036204 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*:) < 1266036218 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i guess the spacing may be slightly different and superioer with set}\ < 1266036222 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :due to italic/roman differences < 1266036286 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :maybe < 1266036288 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i need somewhere to dump this pdf < 1266036319 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION just cannot recall using \textnormal before. not that he recalls all of latex anyhow. < 1266036498 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: you have some sort of dumping ground webspace right? < 1266036742 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :alise, yes < 1266036758 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :got 68 kilos free for a wonderful little pdf? :{ < 1266036762 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Yes < 1266036778 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Although I'm sure you could use Normish if you wanted < 1266036796 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I'd be happy to put it on on diagonalfish < 1266036931 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I don't even know if my Normish account still... exists. < 1266036997 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I don't think normish accounts die < 1266037010 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Does Normish exist? < 1266037010 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :But normish.org isn't working. THe IP addy is in #rootnomic < 1266037031 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :* Topic for #rootnomic is: If connecting to normish.org doesn't work, try its IP address: 209.20.80.194 < 1266037173 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://sgeo.diagonalfish.net/alise/Q.pdf < 1266037177 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :In which a delight taking the form, < 1266037177 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :set Q = {(N:Z)/(D:Z)} < 1266037177 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(A/B) + (C/D) = ((A*D) + (B*C)) / (B*D) < 1266037178 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(A/B) * (C/D) = (A*C) / (B*D) < 1266037179 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :is experienced. < 1266037255 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION feels useful < 1266037315 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :More useful than a hedgehog. < 1266037610 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Not ... SONIC the Hedgehog?! < 1266037643 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :He's not actually a hedgehog. Evidence: He doesn't look like a hedgehog, his speed isn't that of a hedgehog, he can't swim but hedgehogs can, and he can talk. < 1266037914 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :are you _sure_ he cannot swim? maybe he's a witch! < 1266037941 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :let's get some ducks and compare weights. < 1266037990 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :I haven't seen any evidence that he can't swim. < 1266038010 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i knew it! burn the witch! < 1266038088 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :also, the code is slightly misleading < 1266038108 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :in that you can have no other x/y or \frac{x}{y} of a type other than Q without clarifying the argument types in the +/* rules < 1266038134 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i also sense a division by zero. < 1266038176 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :your mom is a division by zero < 1266038206 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :anyway x/0 will work perfectly fine so long as you don't try and do anything with it :P < 1266038223 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :O_o < 1266038229 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :term rewriting, oerjan < 1266038231 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :term rewriting < 1266038252 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ok admittedly I'll probably have X/0 = some error < 1266038272 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I'm rather certain x/0 works just fine so long as it's not evaluted in Haskell. ;) < 1266038280 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Evaluated, even. < 1266038291 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :X/0 = error 'zero denominator' < 1266038296 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :where '...' = atom quoting < 1266038296 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you're going to get trouble if you want to do theorem proving on that Q, though < 1266038299 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i.e. foo = 'foo' < 1266038306 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: well it's term rewriting, so you don't need to < 1266038309 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :how would you solve it anyway < 1266038320 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you could have another set instead of Z as the denominator < 1266038329 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :set YeOldeZ = {1,2,...} < 1266038363 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :well i wasn't sure if you had left dependent types behind at the moment < 1266038368 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :this is a separate language < 1266038427 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :perhaps the two will merge; meet at the twain of betwixted befuddlement; aye, such a language would be a grand affair; or even grandiose; or more superlative experiences, but I digress, for the only truly thing in this world is that one be dependently typ'd and all that entails and the other be typ'd but, alas and yet yey, a rolling roaring proof-addict-not system of rewriting terms; so nilly-willy! < 1266038435 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :also, it's 5:20 am and I need sleep < 1266038524 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :sleep or loquacious prose, that's the question < 1266038590 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Insert some off-the-cuff pun about country matters; for in times of reference, great great wars of reference, it seems side-references of great punnery are the only resort; recourse; holiday resort, aye, that would be a place to be < 1266038619 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :BUT! AND! IF! IS! THE! WHAT! Never to be never to be said the bee; I'll never be a bee who'll never be one never to be never to be; thus spoke the bee. < 1266038621 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :of course a recourse < 1266038640 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :And if the bee was never to be would a never-bee be a bee? Or would a never-bee never be a bee, much less in a bee's holiday resort? < 1266038653 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :eric the half a bee! < 1266038682 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :well, close anyhow < 1266038689 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :And what of the woodchuck, friend of the never-bee? How much never-bee wood would a woodchuck, friend of never-bee, chuck, if a woodchuck, never to be a never-bee; like the never-bee, who is never to be never to be a never-bee; could chuck never-bee wood? < 1266038765 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :about 5 tonnes. < 1266038801 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :AND HOW! As this 5:24 dawns the sound or silence of sleep as a propositional idea, presenting itself so sweetly, does nimble onto my tongue and lips and mind, but though I ignore it it presses at me, and yet this activity - of perhaps drunken in a way but only on unsleep (can it be said to be an entity? Certainly we cannot say such because it is the lack of an entity, but Douglas Adams had no problem with an item called no tea in his game) - portraying a vi < 1266038801 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ew of insanity that somehow delicately dances on the thinking organs and amuses one so great as to flutter and carbonise the world, aye, that'd be it. < 1266038866 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :now you are just abusing the fact we cannot call you insane here < 1266038866 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :aye I do realise that the use of the word aye pr'haps verges on cliche now, but fuck you; no seriously, not as a joke, fuck you. all the insects are all like < 1266038868 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :FUCK YOU < 1266038873 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :AND THEY ARE COMING < 1266038876 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :THEY ARE COMING FOR YOU < 1266038879 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :FFFFFFFFFFFFFFFFUUUUUUUUCK < 1266038883 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Y O O U U U U U O UO U U < 1266038885 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :U O O ---- < 1266038886 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : O < 1266038888 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : O < 1266038889 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : o < 1266038890 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :O fui < 1266038891 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : O < 1266038892 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Fuc < 1266038895 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you K k < 1266038899 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :AND THEN < 1266038902 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :n < 1266038903 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : o < 1266038904 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : t < 1266038907 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : h < 1266038909 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : i < 1266038911 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : n < 1266038913 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : g < 1266038916 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : . < 1266038939 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i'm sure there's somewhere that would publish that. < 1266038950 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :signed, < 1266038951 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :well for a small fee, anyhow. < 1266038958 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :E.E. Cummingtonites < 1266039006 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ALTOIDS HAVE YOU ANY IDEA STRONG HOW THEY ARE? < 1266039015 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you release the woooooooooooorld < 1266039055 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :release the world and breathe free < 1266039078 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :receive everything < 1266039080 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :not just fire but EVERYTHING < 1266039083 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :okay, not everything < 1266039084 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but EVERYTHING < 1266039086 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the THINGS < 1266039088 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you can REALISE < 1266039090 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :they are NOT endless < 1266039094 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but they are unequivocable < 1266039144 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :out bitches, i'm out, i'm totally out, but just for a day hey hey i'll be baaaaaaaack again another day < 1266039147 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :to send all my bullshit your way < 1266039160 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and thus ends, thus ends, thus ends, the world not with a bang but with a whimper the worst song ever created. < 1266039189 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :whew < 1266039202 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :BUT WAIT < 1266039202 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :wait, what? < 1266039203 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :THERE'S MORE < 1266039212 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :BUT YOU SAID IT ENDED < 1266039213 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :YOUR UNCLE IS SECRETLY A WHORE < 1266039215 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I LIED < 1266039216 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I DIED < 1266039217 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I CRIED < 1266039219 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I ESPIED < 1266039222 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :maaaaaaaaaaaaaaaaaaaagic < 1266039223 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :Order my uncle now? < 1266039226 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :in the aiiiiiiiiiiiiiiiiiiiiiiiiiiiir < 1266039231 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :peaaaaaaaaaar < 1266039240 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :derriere < 1266039249 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :antelopesque < 1266039250 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION kicks alise's derriere < 1266039252 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Kafkaesque < 1266039254 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :same bloody thing < 1266039255 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :RING A DING DING < 1266039260 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :poop < 1266039263 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :AND LOZENGES < 1266039265 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :poop < 1266039269 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :poop, poop AND LOZENGES < 1266039275 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :LOZENGES, poop poop and poop < 1266039278 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :spam, LOZENGES, and poop < 1266039284 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :aye. < 1266039308 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i think a comparison to vogon poetry is appropriate at this point. < 1266039336 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :vogons don't drink lozenges < 1266039342 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and they don't inhale spam < 1266039346 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :not a valid comparison, you lose < 1266039354 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :they _exhale_ spam. close enough. < 1266039375 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :don't make me kill your fam', spam-hugging man. < 1266039385 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :also i was going to say vogon poetry didn't reach to your knees, here < 1266039395 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you're _far_ worse < 1266039401 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :y < 1266039422 0 :Gracenotes!~person@wikipedia/Gracenotes JOIN :#esoteric < 1266039456 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :your knees? cheese < 1266039459 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :fuck the authority, please < 1266039470 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :On the topic of esoteric languages: < 1266039472 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :I just realised that Boat should be turing complete < 1266039473 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the bee's knees, in this case < 1266039480 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :can you guys verify this? < 1266039485 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :boats are turing complete, hoist the sails < 1266039489 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :OH NO IT'S SINKING < 1266039492 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :grab the wooden pails < 1266039493 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :no they aren't < 1266039497 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :nuclear submarines are < 1266039502 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :NUCLEAR FUCKING DEATH < 1266039502 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :because c is a nuclear submarine < 1266039506 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :YEAHHHHHHHHHHHHHHHHH < 1266039510 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :and we all know that c is the only programming language ever < 1266039529 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :except for python < 1266039535 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :but python is a scripting language < 1266039537 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :so it doesn't count < 1266039558 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :goat < 1266039566 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Actually, we all know that Haskell is the only language. < 1266039566 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ahahahaha goat < 1266039571 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Everything else is a poor imitation. < 1266039577 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :Haskell and C are the same thing < 1266039578 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :is this what being high is like, i should just sleep less often < 1266039581 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :like the two calculuses < 1266039582 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but not now, now i should sleep < 1266039587 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: Yes. < 1266039599 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :however < 1266039604 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :just the two calculuses < 1266039605 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: what was that a yes to < 1266039611 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Hallucinations should start after 48 hours awake. < 1266039615 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :C and Haskell have fundamental differences < 1266039617 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: "Is this what being high is like" < 1266039621 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :good to know < 1266039629 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :C and Haskell are coded utterly differently < 1266039630 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :good to Florence Nightingale the turtlefish < 1266039640 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if you know what i don't mean < 1266039656 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Wareya: That's because Haskell makes abstraction easy. < 1266039661 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And C makes abstraction a bitch. < 1266039669 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :I can do abstraction in C < 1266039677 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :it's my whole coding style < 1266039678 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yes, but it's difficult. < 1266039681 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i can eat an anus < 1266039684 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :doesn't mean it's easy < 1266039684 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :it's the only way < 1266039685 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :I < 1266039686 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :can < 1266039687 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :code C < 1266039691 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :also, caffiene < 1266039693 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :best drug < 1266039694 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :EVER < 1266039694 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :In Haskell, each and every function makes a new abstraction. < 1266039696 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :DON'T YOU WANT SOMEBODY TO ABSTRACT < 1266039699 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :DON'T YOU NEED SOMEBODY TO ABSTRACT < 1266039706 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :WOULDN'T YOU ABSTRACT SOMEBODY TO ABSTRACT < 1266039709 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :YOU BETTER FIND SOMEBODY TO ABSTRACT < 1266039712 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :alise: Go for 78 hours without sleep < 1266039713 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Wareya: Well, yeah. That is a sane way to code. < 1266039714 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :with caffiene < 1266039715 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :abstract a rabbit < 1266039717 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :godle < 1266039720 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Wareya: meh < 1266039720 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Abstractions make code easier. < 1266039728 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :anyway < 1266039731 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :http://esoteric.voxelperfect.net/wiki/Boat < 1266039738 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :can you guys confirm if this is turing complete? :< < 1266039743 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :stop linking or i will never leave < 1266039750 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :okay < 1266039753 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :prove it identical to brainfuck or lambda calculus < 1266039760 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :All memory addressing is treated as big endian < 1266039762 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :no bignums? < 1266039763 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :you should be able to implement brainfusk < 1266039767 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :fixed size pointers you mean? < 1266039767 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :bignums? < 1266039769 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :arras < 1266039770 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :arrays < 1266039778 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :you can store pointers in a fixed point in memory < 1266039778 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but 64-bit? < 1266039780 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :128-bit? < 1266039782 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :you can also point to pointers! < 1266039783 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :or infinity-bit? < 1266039784 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1266039786 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :casting < 1266039789 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :which < 1266039791 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :you can cast to any number of bits < 1266039792 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :do you have infinity-bit < 1266039799 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :is infinity a number? < 1266039802 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :including 93847589347539847589347598347589347589345893457894375893475843957349853489534759? < 1266039804 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :irrelevant < 1266039814 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :CANT INFINITY < 1266039817 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :LOLP < 1266039824 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well here i was thinking you were asking a question < 1266039830 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :I am < 1266039831 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if you were answering mine i'd tell you whether it's tc < 1266039837 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Wareya: but can you use an unbounded number of bits in the same program? otherwise you might have problems using unbounded memory < 1266039840 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :can i have a 409573498573984572398463874751834957298357287589175817346581732568714658734658745345-bit number < 1266039840 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :you can store a pointer in negitive addressing < 1266039845 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :answer that < 1266039850 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :and add/subreact to the addressing < 1266039852 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :yes alise < 1266039860 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :and use the pointer as normal < 1266039862 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :does it have flow control < 1266039874 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :you have if tests and while loops and 2D goto < 1266039884 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :80% probability of tc < 1266039900 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :_if_ you have unbounded memory < 1266039911 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if he has such big pointers and they work it's unbounded prolly < 1266039916 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Wareya: I'm pretty sure that's TC. < 1266039928 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :awesome < 1266039983 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :q[n]access memory at address q with n bits in size -- you could see 32[30] which would access the long integer at addresses 27, 28, 29, and 30. Yeah, it's big endian, but that might change as this goes. I guess I could get away call this as a special case for an array of bits. < 1266040020 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :"+" = `a`[`b`] = `a`[`b`] + 1, "-" = `a`[`b`] = `a`[`b`] - 1, ">" = `b` = `b`+1, "<" = `b` = `b`-1, "[ ... ]" = %(`a`[`b`] != 0){ ... } < 1266040026 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Okay, proved it's TC. < 1266040032 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :but < 1266040041 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :I don't have variables anymore < 1266040046 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :(q[n])[y]use value of size n at address q as an address for a value size y -- I need a better way to do this < 1266040069 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :halp < 1266040076 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Wareya: how do you use unlimited memory in a single program < 1266040087 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :malloc < 1266040097 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh you have malloc? < 1266040104 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :no, but < 1266040106 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so it's a boring conventional ish language then < 1266040107 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yawn :P < 1266040113 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :heh fun consequence of my language < 1266040115 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hex literal: < 1266040120 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :DEADBEEF[16] < 1266040122 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :can you figure out why? < 1266040127 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hint: array indexing < 1266040130 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :the interpreter should allocate as much memory as the program asks for, dynamically < 1266040137 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :like if it comes to a pointer to 0x5000 < 1266040148 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Wareya: i am of course asking how you _refer_ to unlimited memory if bit sizes must be given < 1266040151 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :and it used to have a pointer to -0x50 < 1266040169 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :then you should have a 0x5050 sized memory array < 1266040175 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :Oh, it handles memory just like BF does < 1266040198 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :that or I don't understand what you're asking < 1266040201 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :infinite tape? < 1266040204 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1266040208 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :infinite tape < 1266040215 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :moving backwards and forwards? < 1266040220 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1266040221 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: you tell me < 1266040224 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :c'mon, before I sleep :| < 1266040229 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : hex literal: < 1266040229 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : DEADBEEF[16] < 1266040229 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : can you figure out why? < 1266040229 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : hint: array indexing < 1266040232 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ok then < 1266040243 0 :augur!~augur@216-164-33-76.c3-0.slvr-ubr2.lnh-slvr.md.cable.rcn.com JOIN :#esoteric < 1266040257 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :but I need a better way to refer to pointers < 1266040258 0 :GreaseMonkey!unknown@unknown.invalid QUIT :Quit: HydraIRC -> http://www.hydrairc.org <- Nobody cares enough to cybersquat it < 1266040259 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :I mean < 1266040260 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: Uh. < 1266040266 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: hint: mathematical notation < 1266040272 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :refer to an address with a value inside of an address < 1266040294 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: You're just specifying the base? < 1266040311 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Well, yes... < 1266040337 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I'm being dense ATM. < 1266040341 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I should go to bed soon, myself. < 1266040374 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Okay, I'll just tell you. < 1266040379 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :DEADBEEF_{16} < 1266040383 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Has it clicked yet? < 1266040399 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Grraaaw. < 1266040401 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1266040416 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :a[n] = array indexing = a_{n} < 1266040421 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :foo_{base} = mathematical notation = a[n]! < 1266040423 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1266040434 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :I got it < 1266040447 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Wareya: you are a clever person, you win < 1266040449 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :not at something < 1266040452 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you just < 1266040452 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :win! < 1266040456 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Jumping from math notation to programming notation and back hurts. < 1266040460 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :I understand that almost < 1266040463 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :but I get something else < 1266040478 0 :alise!unknown@unknown.invalid TOPIC #esoteric :totally 0 days since last anyone sighting. 'part from hcf, 2583 and a bit days. http://tunes.org/~nef/logs/esoteric/?C=M;O=D < 1266040483 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yoyoyoyo sleep < 1266040484 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :I'll adress memory character 0xF00(16) instead of 0xF00[16] < 1266040486 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :seeya tomorrow bitchnizzles < 1266040488 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :night < 1266040500 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :(q[n])[y]use value of size n at address q as an address for a value size y -- I need a better way to do this < 1266040515 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :q(n)(y) < 1266040520 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :q[n][m]array with segments the size of n with the "origin" data value being at address q - with big endian, again. < 1266040524 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :q(n)[m] < 1266040542 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :clearly it should be 16[DEADBEEF] < 1266040563 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :or actually < 1266040567 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :q < 1266040601 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :no wait those are my direction commands < 1266040606 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :I guess I'll change those < 1266040640 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :fuck < 1266040645 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :I ran out of closing characters < 1266040656 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :I'm using all of ({[< for other things already < 1266040674 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :"' too < 1266040683 0 :zzo38!~zzo38@h24-207-48-53.dlt.dccnet.com JOIN :#esoteric < 1266040689 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1266040865 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :oh, you can't use {} in the middle fo expressions or calls < 1266040907 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :awesome < 1266040939 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I have other idea for esolang based on the C-preprocessor, after it unquote strings it will run it through the preprocessor again, and then it will continue over and over again...... < 1266040955 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :until there's nothing left? < 1266041028 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Yes, I guess so. < 1266041217 0 :coppro!~coppro@unaffiliated/coppro JOIN :#esoteric < 1266042087 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION misread alise as ais523 at least twice in the scrollup < 1266042105 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Oh, erm, e's not awake. Hope e has pings silenced < 1266042110 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Or isn't at the computer < 1266042752 0 :sebbu2!~sebbu@ADijon-152-1-39-127.w83-194.abo.wanadoo.fr JOIN :#esoteric < 1266042939 0 :sebbu!unknown@unknown.invalid QUIT :Ping timeout: 252 seconds < 1266043391 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :ais523 does not appear to be connected < 1266043692 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :That has what, exactly, to do with confusing anyone, or pinging al!se? < 1266043706 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :No. < 1266043710 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Sorry, didn't mean to get snippy < 1266043721 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :That's OK. < 1266045978 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :v < 1266045999 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :hey, you're right, it's the weekend again, neat < 1266046007 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is still a little charged with Olympic fever < 1266046014 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :erm, by v, I meant Night all < 1266046032 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1266046036 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :hey alise! < 1266046038 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Was copying/pasting to some channels < 1266046121 0 :Sgeo!unknown@unknown.invalid QUIT :Quit: /Deframentation time. Good night < 1266046146 0 :madbr!~madbrain@modemcable175.136-81-70.mc.videotron.ca JOIN :#esoteric < 1266046437 0 :sebbu!~sebbu@ADijon-152-1-44-70.w83-194.abo.wanadoo.fr JOIN :#esoteric < 1266046620 0 :sebbu2!unknown@unknown.invalid QUIT :Ping timeout: 265 seconds < 1266046977 0 :zzo38!unknown@unknown.invalid QUIT :Remote host closed the connection < 1266047255 0 :coppro!unknown@unknown.invalid QUIT :Remote host closed the connection < 1266047392 0 :coppro!~coppro@unaffiliated/coppro JOIN :#esoteric < 1266047999 0 :clog!unknown@unknown.invalid QUIT :ended < 1266048000 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1266048064 0 :oerjan!unknown@unknown.invalid QUIT :Quit: leaving < 1266048248 0 :madbr!unknown@unknown.invalid QUIT :Quit: Radiateur < 1266052411 0 :sebbu!unknown@unknown.invalid QUIT :Ping timeout: 256 seconds < 1266052849 0 :oklopol!~oklopol@a91-153-117-208.elisa-laajakaista.fi JOIN :#esoteric < 1266053357 0 :sebbu!~sebbu@ADijon-152-1-64-171.w83-194.abo.wanadoo.fr JOIN :#esoteric < 1266053565 0 :kar8nga!~kar8nga@jol13-1-82-66-176-74.fbx.proxad.net JOIN :#esoteric < 1266055260 0 :tombom!tombom@wikipedia/Tombomp JOIN :#esoteric < 1266055919 0 :MigoMipo!~MigoMipo@84-217-15-2.tn.glocalnet.net JOIN :#esoteric < 1266058236 0 :kar8nga!unknown@unknown.invalid QUIT :Remote host closed the connection < 1266058527 0 :Pthing!~pthing@cpc11-pres4-0-0-cust168.pres.cable.virginmedia.com JOIN :#esoteric < 1266058800 0 :Asztal!unknown@unknown.invalid QUIT :Ping timeout: 272 seconds < 1266060323 0 :MizardX!unknown@unknown.invalid QUIT :Quit: reboot < 1266060676 0 :MizardX!~MizardX@unaffiliated/mizardx JOIN :#esoteric < 1266060977 0 :lieuwe!~kvirc@a62-251-101-217.adsl.xs4all.nl JOIN :#esoteric < 1266061011 0 :lieuwe!unknown@unknown.invalid QUIT :Client Quit < 1266062118 0 :kar8nga!~kar8nga@jol13-1-82-66-176-74.fbx.proxad.net JOIN :#esoteric < 1266064830 0 :FireFly!~firefly@unaffiliated/firefly JOIN :#esoteric < 1266066151 0 :oklopol!unknown@unknown.invalid QUIT :Quit: ( www.nnscript.com :: NoNameScript 4.2 :: www.regroup-esports.com ) < 1266066456 0 :tombom!unknown@unknown.invalid QUIT :Quit: Leaving < 1266068531 0 :MissPiggy!~none@unaffiliated/fax JOIN :#esoteric < 1266068671 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Whee, eBash results page seems to hang browser real good. 100% CPU usage, and it doesn't even react to killing its X connection (xkill). < 1266069230 0 :Gracenotes!unknown@unknown.invalid QUIT :Remote host closed the connection < 1266069422 0 :kar8nga!unknown@unknown.invalid QUIT :Remote host closed the connection < 1266069673 0 :Pthing!unknown@unknown.invalid QUIT :Remote host closed the connection < 1266070072 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1266070289 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ACTION decides he wants ℵ_0 as a value in his language, just because it's cool. < 1266070309 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1266070355 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ACTION also decides to use ⟨a,b⟩ as his tuple (or list?) syntax; he is well and truly off the deep end now. < 1266070388 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and I like it < 1266070391 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I lik that! except remove the commas < 1266070397 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :why? < 1266070398 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :⟨a b c d e⟩ < 1266070402 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :^ SEX ON WHEELS < 1266070430 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :⟨Foo "goatee", Bar "emasculate"⟩ < 1266070446 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :is far too common to make uglier as ⟨(Foo "goatee") (Bar "emasculate")⟩ < 1266070470 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(and more confusing; is that ⟨( or (( or ⟨⟨ or (⟨?) < 1266070483 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :they look more different in latex at bigger sizes, yes, but still < 1266070693 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1266070748 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(S : a -> a) seems too relaxed < 1266070761 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :(s : s -> s) < 1266070771 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :because it simply means that whatever rules you add to S, the only restriction is that they take a value of one type and return the same < 1266070781 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but (a -> a) is "anything to anything" < 1266070784 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :which simply isn't true < 1266070967 0 :oklopol!~oklopol@a91-153-117-208.elisa-laajakaista.fi JOIN :#esoteric < 1266071096 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: is set Z = {n:N, -(n:N)} a good "theoretical" definition, do you think? < 1266071118 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i.e. the set Z contains values of type N, and -(a value of type N). < 1266071120 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what context < 1266071128 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i would never read a log < 1266071133 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :a proglang I'm inventing that's pretty unique for once < 1266071139 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :term rewriting, just so you hate it :) < 1266071143 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but typed term rewriting < 1266071146 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :guess what i'm doing < 1266071148 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it's pretty smexy < 1266071149 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :guess! < 1266071152 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :logreading < 1266071155 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well i do love smex < 1266071156 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :nope. < 1266071171 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :smexing? < 1266071177 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh definitely not < 1266071205 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :let's just say i hate parsing < 1266071216 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise, in set theory N u {0} u -N works, but in type theory seems better to use binary numbers < 1266071219 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i should learn to use some parsing tool < 1266071222 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :preferably a human < 1266071225 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :who can read my mind < 1266071233 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise just in terms of getting good algorithms < 1266071235 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: you mean to define N or Z? < 1266071243 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :Z < 1266071243 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Z < 1266071251 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :right, well, this is part of my grand plan to have "semantic definitions" and "runtime definitions" < 1266071274 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i.e., you define a really mathematically pure N + operations, and then a gnarly, perhaps even unsafe set of N definition + operations; maybe even in C or whatever < 1266071283 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the former holds for all compile-time reasoning, and the latter holds at runtime < 1266071295 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :of course, having them be equivalent is... not really enforceable < 1266071313 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :everything is doable if you're drunk enough < 1266071317 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but term rewriting is so pie-in-the-sky as far as performance goes that having pure-but-inefficient definitions doesn't *really* matter :) < 1266071324 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :really?? < 1266071332 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :really what? < 1266071339 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well i know you have some ideas for making it faster < 1266071345 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :all I know is the really dumbtarded algorithm :) < 1266071384 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :did you know term rewriting rhymes with sperm rewriting < 1266071409 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :could someone please write this parser for me < 1266071432 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ACTION tries to tell texmacs "center this text block but have the text left-aligned" < 1266071446 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's like explaining math to a monkey < 1266071529 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh wait < 1266071534 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i just realized this is trivial to parse < 1266071544 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :apparently the guy who made this language is a genius < 1266071592 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :what lang < 1266071597 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :clü < 1266071603 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :also you're CODING?! < 1266071625 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yes! < 1266071642 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i even like some of it, unfortunately i'm too tired to do anything complicated enough that i'd enjoy it. < 1266071657 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hmm maybe i should have my fundamental definition of Q be the Stern-Brocot tree < 1266071665 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :otherwise i have 1/2 and 2/4 < 1266071684 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I guess a/b aka \frac{a}{b} should be : R -> R -> Q < 1266071720 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and you could use the john gabriel tree for the definition of R < 1266071743 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :R -> R -> Q? < 1266071779 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you're a mathman. < 1266071918 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ACTION watches alise turn in her grave as he writes a separate tokenizer < 1266071968 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :at least you used to consider that a sin, methinks < 1266071982 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :at least unless you're writing your parser manually < 1266072363 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: i'm so much of a mathman that the preferred representation for the language actually has them in blackboard bold < 1266072434 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm just wondering about the types < 1266072461 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you do know R is closed under division (well almost)? < 1266072468 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well umm < 1266072480 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that's not actually what we need here < 1266072496 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but clearly for all elements division by them is a surjection < 1266072506 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :to R < 1266072524 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :wait wait wait < 1266072528 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :are we talking about this < 1266072528 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://knol.google.com/k/john-gabriel/are-real-numbers-uncountable/nz742dpkhqbi/10# < 1266072530 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :john gabriel < 1266072540 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah he's my idol < 1266072548 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :he's one total dude < 1266072574 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yeah, if you use R in your programs < 1266072579 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you'll get an approximation by default < 1266072595 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :unless you want to sacrifice equality checking, I guess < 1266072601 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :could you answer: did you suggest R -> R -> Q as the type of division < 1266072613 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :no, as one type of division < 1266072622 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :specifically, what you'd use to construct Qs < 1266072631 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :given that the internal constructor wouldn't be exposed < 1266072653 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you could just contruct the Q from one R < 1266072694 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well unless R's play some sorta special role < 1266072711 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :like 5 :: R and shit < 1266072725 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :why just one R? < 1266072737 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :obviously I'm going for human-happiness here, and \frac{1}{2} should, you know, work < 1266072749 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it's not the internal constructor, that's the Stern-Brocot tree < 1266072754 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :just the thing that, you know, humans actually use < 1266072765 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm just wondering why not N -> N -> Q < 1266072812 0 :Pthing!~pthing@cpc11-pres4-0-0-cust168.pres.cable.virginmedia.com JOIN :#esoteric < 1266072862 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: err of course < 1266072865 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i'm pretty fucking stupid < 1266072872 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :was thinking of R -> R -> C :-) < 1266072916 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh i see < 1266072924 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i have just woken up and all < 1266072951 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the natural field extension i presume < 1266072960 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the natural extension of your mom, inded < 1266072962 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*indeed < 1266072986 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :actually the way I was thinking of having C a subset of R was < 1266072997 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :are you implyinh my mom is the splitting field of her own legs < 1266073000 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :inert i < 1266073001 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*implying < 1266073011 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :set C = {(a:R) + (b:R) i} < 1266073012 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :then < 1266073023 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :0 : C < 1266073029 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :0 = 0 + 0 i < 1266073041 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and then < 1266073043 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :C a subset of R? < 1266073047 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :S : ...hmm, wait < 1266073049 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: er, superset < 1266073054 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I was thinking, just like define 0 and S on it < 1266073063 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but that isn't really enough for the compiler to believe it's a true superset < 1266073085 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :anyway take a break and admire my beautiful rich syntax: < 1266073093 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://dl.dropbox.com/u/2164436/booleans-and-naturals.pdf < 1266073094 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :there's such a natural embedding of R to C that most people don't even know it's an embedding < 1266073182 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :In most functional languages, youfd expect S : a ¨ a to mean that S takes a value of any type, < 1266073182 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and returns a value of that same type < 1266073197 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yeees? < 1266073203 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :wait a mo < 1266073215 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :term rewriting, so terms are arbitrarily extensible < 1266073222 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and...things < 1266073236 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :blergh, hard to put this into words < 1266073243 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :functional programming plus symbolic computation by the same mechanism, fuck yeah < 1266073245 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: do go on :P < 1266073248 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :maybe i'll just say nothing < 1266073255 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :no please do < 1266073281 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well err < 1266073310 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I don't really LIKE term rewriting < 1266073338 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :basically S : a -> a just doesn't mean the same thing as in say haskell, but instead that "for each type a there is something, also called S, that has this type signature for the type a" < 1266073339 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :what I LIKE is giving an equational theory, and then having the compiler design an algorithm which decides equality on that < 1266073347 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :or maybe it decides unification on it < 1266073355 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :stuff like that you could use really well < 1266073371 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :basically that's really saying nothing < 1266073407 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :S : a -> a in things like haskell means that S is one function, that takes values that walk like a's and uses them all the same way < 1266073425 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :no that isn't what it says < 1266073435 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :because, for example < 1266073438 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :S "a monkey" will fail < 1266073444 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :because there's no S : String -> String < 1266073455 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :S : a -> a is merely a *constraint* on what types you can endow S with < 1266073460 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well right < 1266073462 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :that is, they must be of the form a -> a < 1266073476 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :that way, you can use S in other parts of the program on variables, as long as you obey the rull < 1266073478 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*rule < 1266073484 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :plus2 x = S S x < 1266073489 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :plus2 : a -> a < 1266073497 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i just meant it's not the same thing as it is in haskell, but yeah i guess thinking about it in terms of rewriting makes it natural. < 1266073501 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :defining S : b -> b gives us plus2 : b -> b too < 1266073509 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and yes, it isn't < 1266073513 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :that's why I explained the difference. :P < 1266073525 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and that's why i said maybe i should say nothing < 1266073526 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1266073601 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so what exactly is this thing < 1266073707 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: well it's a term rewriting language like Q and Pure, it's purely functional and lazy, so you have lazy symbolic computation _and_ lazy functional computation by the same mechanism, < 1266073712 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and it's typed. < 1266073729 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :do you get what I mean about equational theories < 1266073735 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :not really < 1266073745 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :if you specify like < 1266073756 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :(a [] b) [] c = a [] (b [] c) < 1266073767 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :it should work both ways < 1266073776 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :infact you shouldn't care which way around it's written < 1266073777 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :two-way rewriting < 1266073780 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :the two things are identical < 1266073797 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :right < 1266073803 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :that's the same thing as < 1266073809 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :the fact that (a [] b) [] c --> a [] (b [] c) normalizes terms in this theory is just a coincidence < 1266073811 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(a [] b) [] c = internal3 a b c < 1266073816 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :a [] (b [] c) = internal3 a b c < 1266073844 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :with rewriting you say the two things are equal, but one-way rewriting also says "...but the one on the right is the more natural form" < 1266073870 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah you could say it's normalization < 1266073930 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what i'd want is a two-way rewrite system, and a nice system for adding your own heuristics < 1266073933 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well if you don't execute it and just do properties and proofs and transformations < 1266073938 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :then one-way rewriting doesn't exist, it's all two-way < 1266073942 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :one-way is just a choice of how to evaluate it < 1266073980 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :the problem with specifying an equational theory is that it's usually undecidible < 1266073996 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that's not a problem < 1266074000 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the problem is it's slow < 1266074015 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well okay < 1266074034 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i suppose it is a problem, but (insert argument) < 1266074084 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I guess it would be nice to be able to say S : Num a => a -> a < 1266074092 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but what should Num be in this glorious rewriter? < 1266074262 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ACTION decides that what - gives in tex (is it just the minus symbol?) is the best thing for the operator hole < 1266074271 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :for ascii, dunno < 1266074282 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i'm starting to care stunningly little about the ascii representation < 1266074431 0 :FireFly!unknown@unknown.invalid QUIT :Quit: Leaving < 1266074432 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :typeclasse are so suck < 1266074440 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1266074454 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Maybe this is where I should introduce dependent types < 1266074457 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :im trying to prototype a CHR typeclass replacement but haskell doesn't have a decent CHR < 1266074483 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :S : {Num a} -> a -> a < 1266074494 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :where Num : Set -> amodulething < 1266074497 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but ehh < 1266074503 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I'm bobbing along fine without them atm < 1266074524 0 :FireFly!~firefly@unaffiliated/firefly JOIN :#esoteric < 1266074701 0 :tcsavage!~tomcsavag@host86-133-195-53.range86-133.btcentralplus.com JOIN :#esoteric < 1266074970 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: is big-{ containing (foo when condition\nbar otherwise) a good notation for guards, do you think? < 1266074977 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :or should it be part of each definition like pattern matching < 1266075012 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :big-{ means you have to do space alignment in ascii form which is lame < 1266076147 0 :tcsavage!unknown@unknown.invalid QUIT :Quit: Leaving < 1266076641 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise you should make a wiki < 1266076700 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :for this lang? < 1266076709 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :for everything < 1266076726 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah the alise wiki, where people can do your projects < 1266076734 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: why < 1266076743 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i answered that already < 1266076799 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :not a good answer tho :P < 1266076852 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well EXCUSE ME for being completely useless < 1266076862 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :And it should be a Hackiki wiki. < 1266076867 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1266076896 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :how do you pronounce "hackiki", the way i do it sounds like some sorta exotic animal < 1266076906 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :or like an african melon-hunting tribe < 1266076913 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Hack-ee-kee < 1266076925 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :latexwiki would be fun < 1266076932 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :not just latex blocks < 1266076933 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the whole thing is latex < 1266076938 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :we just spotted some wild hakiki in the forest < 1266076964 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :LatexWiki - the free latex fetish encyclopedia < 1266076965 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :The LatexWiki is a free latex fetish encyclopedia that anyone can edit, an online resource for latex fetishists, rubberists and rainwear lovers! ... < 1266076965 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :>_< < 1266076967 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: emphasis on which syllable? < 1266076973 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1266076976 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: The first kee < 1266076977 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :not sure there are choices really < 1266076981 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1266077096 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ugh, the ascii representation is so boring < 1266077210 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Fortress and Q and Pure are just so cool < 1266077494 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ACTION decides that the unmatching [/) interval syntax is barfworthy. < 1266077742 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :how about [0, 1[ ;) < 1266077769 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :aieeeeeeeeeeeeeee < 1266077773 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :maybe "[5, 7] right exclusive and left inclusive" < 1266077808 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ouch < 1266077808 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i should check out one of those languages < 1266077817 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(if they're hip and cool) < 1266077823 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :check out all three. (pure is q's successor) < 1266077848 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ACTION ponders having T^n = <(T,)*n> < 1266077849 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :once i finish this parser < 1266077857 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i.e. R^3 = 3d coordinate, < 1266077890 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :R_{2^{64}}^3 = 3d coordinate using 64-bit reals (prolly floating point) < 1266077916 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :in general you'll want A^B to be a function from B to A, just if B is a natural, you convert it to a set of that cardinality < 1266077935 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :why would a^b be a function from b to a? < 1266077941 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I have -> for that < 1266077980 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :how dare you question how mathematics usually defines it < 1266078020 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :also what's up with hcf nowadays < 1266078115 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :totally dead man < 1266078118 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :_[_] : Array_(d,a) -> N_d -> a < 1266078125 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the ascii form of this language is somewhat ugly < 1266078191 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :erm, *N^d < 1266078199 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I like that < 1266078203 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1266078210 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :why does it take an array of indices? < 1266078215 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :tuple < 1266078222 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :because array is N dimensional < 1266078227 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :for a 2d array it'd be < 1266078227 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ahh < 1266078240 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :of Rs, say: < 1266078243 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i thought you mean N_d as in integers mod d < 1266078250 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :right right _ was a mistake < 1266078251 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :^ i meant < 1266078252 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :in which case it would've been like a finite array < 1266078254 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :_[_] : Array_(2,R) -> N^2 -> a < 1266078265 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*-> R < 1266078270 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :err, yes XD < 1266078284 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :anyway without that syntax for constructing tuple types you couldn't even write that function! < 1266078285 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so I like it < 1266078310 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: also I'm considering using N_d = integers-mod-d to do fixed-size ints < 1266078319 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :after all, N_(2^n) is an n-bit natural < 1266078320 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you totally should < 1266078321 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :in fact < 1266078325 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :also N is naturals not ints :P < 1266078338 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so N_(2^n) = uintn and Z_(2^n) = intn < 1266078341 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you should have X_u defined as X/uX in general < 1266078351 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1266078361 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :what would 100N mean? < 1266078365 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i'm dense atm, forgive me < 1266078375 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :100 * n for n \in N < 1266078404 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :also, I need to use a_x for set arguments < 1266078411 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :like before, Array_(2,R) < 1266078485 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :then C = R[x]_(x^2+1) :P < 1266078492 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :although I guess Array 2 R would work, I can't think how to prettify that with LaTeX < 1266078495 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: wat. < 1266078522 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1266078527 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :latex is not so good at juxtaposition < 1266078532 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :"Array d a" looks like Array da < 1266078589 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :alise: basically you get all polynomials in R[x] that are of a smaller in degree than (x^2 + 1), so your elements are of the form ax + b < 1266078600 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and x^2 + 1 = 0, so in fact x = i < 1266078622 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i think you just took my language and force-fucked it into esotericness < 1266078622 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm learning field theory atm, i hope it doesn't show. < 1266078628 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i may sue you. < 1266078631 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1266078698 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wonders whether to have a <> unit type < 1266078903 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :so < 1266078913 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ACTION can't figure out how to do ⟨⟩ in texmacs :( < 1266078914 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :tt : 1 < 1266078918 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :or maybe not... < 1266078923 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: in my lang you mean? < 1266078938 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :1 isn't a set, but certainly tt : set-of 1 < 1266078939 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :since ff, tt : 2 work < 1266078948 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :wut < 1266079099 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :wut < 1266079102 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :wuuuuuuuuuut < 1266079338 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you know, I don't think 1-tuples make any sense < 1266079348 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so should a^1 = a?? < 1266079358 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if so, then having a^0 be <> seems inconsistent, if ^1 is the "base" < 1266079440 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :in math we usually identify (a,(b,c)) and ((a,b),c) < 1266079460 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :like completly implicitly, there's probably generations of people that haven't even thought about it < 1266079469 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :same with (a) and a < 1266079490 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I don'tsee a problem wth a^0 as unit < 1266079494 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :since you might define < 1266079497 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :a^0 = () < 1266079506 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :a^(1+n) = a * a^n < 1266079507 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but < 1266079510 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :a^0 = a < 1266079512 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :erm < 1266079513 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :a^0 = <> < 1266079515 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :a^1 = a < 1266079517 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :a^2 = < 1266079519 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :a^3 = < 1266079521 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :see the "gap"? < 1266079523 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :that's weird < 1266079553 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :no < 1266079560 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :a^1 = <> * a = < 1266079632 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :But does make sense? < 1266079634 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :It is, semantically, a. < 1266079647 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :And I think it's a rather pointless type to have. < 1266079679 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Anyway, <> looks ugly, syntactically. :P I think I want a separate unit type... < 1266079998 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :identification of things is a complex subject, says SICP < 1266080587 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Have you read your SICP today? < 1266080630 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well < 1266080631 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :no < 1266080637 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm sorry < 1266081000 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: so do you think <,c> should = ? < 1266081013 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if a^n = a * a^(n-1) < 1266081013 0 :Sgeo!~Sgeo@ool-18bf618a.dyn.optonline.net JOIN :#esoteric < 1266081079 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise not sure, it's a lot different in programming < 1266081086 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :than on paper < 1266081099 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :tupelem : a^n -> N_n -> a < 1266081114 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :alise, taking any pictures this weekend? < 1266081125 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Ah! < 1266081133 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I will do that tomorrow; it completely crossed my mind on Friday. < 1266081137 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Erm, completely didn't. < 1266081138 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Cross. < 1266081147 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Remind me. :P < 1266081164 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(but a legal investigation seems more likely than moving at the moment0 < 1266081270 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*) < 1266081294 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Why was this so useless?: http://i.imgur.com/ClzRm.png < 1266081321 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Although actually, some stuff does seem faster now < 1266081321 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :You did stuff while fragmenting. < 1266081322 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Don't. < 1266081324 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*defragmenting < 1266081326 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: placebo < 1266081341 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Hm < 1266081368 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :If stuff is accessing stuff, it can't move that stuff. < 1266081379 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :So close everything, run the defragmentation, and go for a walk. < 1266081382 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Or just keep it fragmented. < 1266081389 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I tried to let it run overnight < 1266081397 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :When I woke up is when I started doing stuff < 1266081398 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Then I dunno. < 1266081405 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :[although I did leave my browser open on one page] < 1266081413 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :That wouldn't have such a dramatic effect. < 1266081440 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :And "doing stuff" when I woke up [and it was still going] came down to visiting a few pages < 1266081581 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that's one naughty pic < 1266081627 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: if you touch the HD *too* much, defragmenter restarts < 1266081629 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but if it's done it's done < 1266081631 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so... dunno < 1266081663 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :When I started touching stuff, it said something like, 30%, Compressing files < 1266081670 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Don't know if that counts as a restart < 1266081787 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :don't think so < 1266082060 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I'll try again tonight, I guess < 1266082116 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1266082124 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if you have {1,2,...} and {0,1,2...} what should you name them? < 1266082131 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if you have just one obviously N is the right name < 1266082188 0 :MissPiggy!unknown@unknown.invalid QUIT :Quit: Changing server < 1266082216 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :N* is used for "N without 0" in at least two contexts < 1266082221 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(that's not one of them tho) < 1266082233 0 :MissPiggy!~none@unaffiliated/fax JOIN :#esoteric < 1266082244 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: :D < 1266082258 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :errrrrrr < 1266082266 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :s/N/X/ :) < 1266082279 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :what's N_+ < 1266082284 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i could look it up < 1266082286 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but poop! < 1266082309 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Z_+ and Z_- are used for... i don't know if the zeroes are there actually < 1266082325 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :N_+ i haven't seen < 1266082405 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :maybe Z_+ then < 1266082413 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :don't remember < 1266082437 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that would make sense, but shuold check if 0 is usually there < 1266082464 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: apparently N* is in fact used to mean N without 0 < 1266082468 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :for the naturalz < 1266082472 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ah, cool < 1266082509 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :wasn't one of the two i knew, didn't actually know it isn't used for it < 1266082575 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's just one of the meanings i know "makes sense" for N, and N* = {1} < 1266082586 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh wait... < 1266082593 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so what kind of * is it, I wonder < 1266082596 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :since when is N a ring :P < 1266082613 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :my head is out shopping today < 1266082798 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(c=>x; d=>y; e=>z; otherwise) is a nice conditional syntax < 1266082825 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i keep almost speaking finnish here < 1266082835 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :head hurts again < 1266082839 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i think i'm dying or something < 1266082862 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it hurts almost every week < 1266082870 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :see a dawktore < 1266082876 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah right < 1266082883 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :thought not < 1266082887 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1266082889 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well i might < 1266082897 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :or maybe not < 1266082899 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :dunno < 1266083110 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :_\circ is a rather nice hole char for multifix < 1266083167 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what's \circ? < 1266083238 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :circle thingy. < 1266083249 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you know, like a big big . filling a whole letterspace, but hollow. < 1266083251 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :a circle. < 1266083286 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh i see < 1266083291 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :makes sense < 1266083335 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :they're subscripted so as not to clash with the operator text < 1266083343 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and you can think of specifying an argument as "filling the circle in" < 1266083386 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://dl.dropbox.com/u/2164436/if-then-else.pdf < 1266083386 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :dig it. < 1266083447 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :PDF WARNING!!!!! < 1266083466 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I always think of \top and \bot as sets though.. < 1266083472 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :tt and ff as values < 1266083478 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pdf warning my arse < 1266083479 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :looks weird but idk < 1266083487 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :nothing wrong with pdfs < 1266083490 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I know :( < 1266083497 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :are you using adobe reader or sth? :p < 1266083507 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you might be right about \top and \bot < 1266083509 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :im just complaining about how stupid reddit is < 1266083511 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :they aren't sitting well with me, either < 1266083513 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ah ok < 1266083528 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I'd be more coolie about tt and ff if they, say, had a fancy ligature < 1266083536 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it's gotta be in unicode, right? < 1266083536 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :ehehe < 1266083546 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :don't overuse unicode < 1266083552 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: of course if i'm using names i could just call them, you know, true and false < 1266083561 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :they letters on the keyboard are the easiest ones to type < 1266083567 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :also, the main syntax for this language is two-dimensional using things like blackboard bold < 1266083581 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :of _course_ it needs a specialised editor (or just use the ascii->that converter) < 1266083606 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you shouldn't have to be writing a research paper to get beautiful code ;) < 1266083608 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*:) < 1266083642 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wonders how to represent _\circ in the ascii form < 1266083648 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :maybe if()then()else() < 1266083668 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: any reason to use tt/ff over true/false? < 1266083706 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :or just 0/1 :P < 1266083760 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :shorter < 1266083762 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I:) < 1266083768 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :wut < 1266083770 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1266083770 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :true and false are probaly best < 1266083792 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yeah except "if true then" "if false then", you know, sorta good to keep the ambiguity between names and inert values down :P < 1266083814 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :why do you want something as horrible as if-then-else- ? < 1266083829 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :bool : a -> a -> B -> a < 1266083833 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah you horriblophiliac < 1266083834 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric : ^ is better < 1266083840 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: not for imperative code < 1266083850 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :imperative doesn't exist < 1266083852 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and not for if x then let ... in ... else ... < 1266083883 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :"No identifier may be identical to another identifier used in the program to denote something else, or include such an identifier as a substring. < 1266083915 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :"Note particularly that, in the case of one identifier being a substring of another, only the longer identifier shall be considered erroneous. < 1266083945 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :"The constants for true and false are t and f respectively." < 1266083946 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :haha < 1266083953 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay double haha < 1266083961 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh wait just one < 1266083968 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :coppro: C++0x, I presume! < 1266083976 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :alise: :P < 1266083984 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :I just made that up and thought it would be amusing to share < 1266084002 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :It should become a language < 1266084006 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :coppro: i's hucking brillian < 1266084009 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Filled with absurdities like that < 1266084024 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric : it should be called javascript < 1266084273 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :dependent types + tuples with names for their args = module system methinks < 1266084359 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Functor : * -> * -> * < 1266084369 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Functor f a = b) -> f a -> f b> < 1266084370 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :right? < 1266084376 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :then you'd do < 1266084413 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Functor_List : Functor List < 1266084439 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Functor_List a = < 1266086034 0 :Asztal!~asztal@host86-172-6-94.range86-172.btcentralplus.com JOIN :#esoteric < 1266086955 0 :coppro!unknown@unknown.invalid QUIT :Remote host closed the connection < 1266086967 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so. i just debugged my code for like 20 minutes because i'd written my fibonacci program with just one base case. < 1266086984 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :in any case, clue parser parsed its first baby < 1266086987 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :\o/ < 1266087278 0 :SimonRC!unknown@unknown.invalid QUIT :Ping timeout: 265 seconds < 1266087513 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: is that the guessing clue thing < 1266087513 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :omg < 1266087514 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :omg < 1266087517 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :have my babies, the clue babies < 1266087563 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah it's the guessing thing < 1266087569 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and it's cooooool < 1266087869 0 :SimonRC!~sc@fof.durge.org JOIN :#esoteric < 1266087954 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is writing a tree-rewriting tarpit to get the feel of it first < 1266087955 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :fn A E X = (A = X) : E < 1266087957 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I wish that worked < 1266087975 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but it doesn't, because the rule A = X is just ASIDUASD = X, i.e. you can rewrite anything at all to X < 1266087985 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I need a quote/unquote thingy to do that :P < 1266087991 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(rule : E is e-with-rule) < 1266088012 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(so "+ X Y = ..." called is like (X = val) : (Y = val) : ...) < 1266088474 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i really want reversible parsers < 1266088489 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i want to just be able to write a syntax and have it think of data structures automatically and write a->String and String->a < 1266088640 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you know what? < 1266088644 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i'm gonna fuckin' write it < 1266088646 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :uhh wait < 1266088647 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :one thing first < 1266088657 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: ask the little copy of oerjan in your mind if it's possible < 1266089147 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i only use my copy of oerjan for good < 1266089167 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: hey this is good < 1266089172 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you don't have to write pretty-printers ever again! < 1266089191 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :2parse or not 2parse, that is the question! < 1266089271 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :haha man, conor mcbride is like < 1266089273 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :a copy of me < 1266089277 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :do you think i should make a syntax for the functional language to which clues are compiled < 1266089278 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i mean < 1266089281 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :he's more intelligenterer but he has like < 1266089285 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :exactly the same programming language interests as me < 1266089286 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh shit water boils < 1266089293 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :IT DOES < 1266089299 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: also yes < 1266089304 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :make it the inverse lambda calculus < 1266089334 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :lambda calculus puts values in names, then uses those names in a new value < 1266089351 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :inverse lambda calculus looks up names for values, then extracts those names from a value < 1266089354 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :make it now < 1266089445 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I need a graph lambda calculus < 1266089463 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm, it would definitely be cool to see what kind of algorithms this thing generates < 1266089490 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i was just thinking it'd be weird, in some sense, to have a functional language you can see, but can't actually write < 1266089493 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but maybe it's not < 1266089573 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: i presume you're not talking about the inverse lambda calculus :) < 1266089609 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so in lc (\x.y)z puts z in x, then uses x in y; so in inverse lc we have to get x from z, then extract the x from y < 1266089622 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :not sure what the result of the extraction is, though < 1266089675 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so, really, LC is (name=arg) in body < 1266089696 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :basically in LC what we work with are values, and names are just helpers < 1266089699 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i was thinking something like a haskell syntax < 1266089705 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :in inverse LC we only have values so we can find names < 1266089720 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the question is, how do we get a name from a value? < 1266089921 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ok, so my parser combinator library will be based on applicative functors < 1266089952 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :with most parser libraries all you need is syntaxbits -> ast < 1266089960 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :like varname,funcbody -> ast < 1266089970 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but in this we need ast -> varname,funcbody as well < 1266089982 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so, maybe we can derive that. < 1266090019 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if you ignore a parsed bit, you have to specify a default value for it so it can use it when deparsing < 1266090125 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay these now parse and compile: http://www.vjn.fi/pb/p351446645.txt < 1266090141 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :syntax complaints? < 1266090142 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i think that this is sexy. < 1266090146 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :wow lol < 1266090156 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: well one i'd add more unicode, i take it _that_ won't be accepted < 1266090159 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :why is there two :.'s ? < 1266090169 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :in foo ~ ; baz; quux i'd use commas, not semicolons < 1266090171 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: two different examples < 1266090177 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :not actually very useful for this simple things < 1266090192 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :what < 1266090198 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :in fib there is :. twice < 1266090198 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric : why < 1266090207 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: clue :: [(input,output)] -> (input -> output) < 1266090210 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i just gave it two examples. < 1266090212 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well, + some hints < 1266090216 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :fib ~ {:. 8 -> 21 < 1266090216 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric : : 6 -> 8 < 1266090217 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric : : 7 -> 13 < 1266090217 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric : :. 7 -> 13 < 1266090217 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric : : 5 -> 5 < 1266090219 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric : : 6 -> 8} < 1266090222 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :why is :. there twice?? < 1266090223 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah so < 1266090239 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, it's because i gave it two examples :P < 1266090239 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but < 1266090240 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :it looks like 6 examples in two groups, what are the groups? < 1266090245 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :no < 1266090256 0 :cheater3!~cheater@ip-80-226-16-165.vodafone-net.de JOIN :#esoteric < 1266090258 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :two examples, it's just you don't separate them. < 1266090260 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :UR LANGAUGE IS TOO HARD < 1266090278 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :do you complain about that, i'm not sure why i decided to do it like that, maybe just to be weird < 1266090292 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :how is that not 6 examples? < 1266090295 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :basically that's (:. stuff : stuff : stuff), (:. stuff : stuff : stuff) < 1266090299 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well because < 1266090301 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I thought an example was an input output pair < 1266090301 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i'm confused < 1266090307 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the ":"'s are subexamples < 1266090311 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :for the :.'s before them < 1266090312 0 :cheater2!unknown@unknown.invalid QUIT :Ping timeout: 258 seconds < 1266090313 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :what is a sub example? < 1266090317 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :what's :. < 1266090318 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :presumably it's two calls < 1266090321 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :reducing fib downwards < 1266090328 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what the recursive calls should return < 1266090335 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and what their inputs should be < 1266090336 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :thought so :D < 1266090341 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yarr < 1266090347 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :80-1 = 7 < 1266090350 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :8-2 = 6 < 1266090353 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so you have 8 6 7 on the LHS < 1266090357 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*8-1 < 1266090360 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :to show how the recursive call goes < 1266090369 0 :kar8nga!~kar8nga@jol13-1-82-66-176-74.fbx.proxad.net JOIN :#esoteric < 1266090369 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :7->13, biggy so you know, show how dat be done < 1266090382 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::. IOP : IOP1 : ... : IOPn means find code for IOP, use all of IOPi's when deriving output value < 1266090390 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :otherwise, clue wouldn't know when to recurse downwards < 1266090394 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it'd just have a shitload of numbers < 1266090402 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and oklopol isn't quite clever enough to reverse that :) < 1266090418 0 :Pthing!unknown@unknown.invalid QUIT :Remote host closed the connection < 1266090428 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and yeah i think you're getting it right < 1266090438 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :especially the not clever enough part < 1266090440 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :oklopol wuuuuuuuuuut < 1266090455 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: okay. let's look at this < 1266090460 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :<MissPiggy> fib ~ {:. 8 -> 21 < 1266090461 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :<MissPiggy> : 6 -> 8 < 1266090461 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :<MissPiggy> : 7 -> 13 < 1266090464 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :fib(8) = 21 < 1266090465 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :http://www.vjn.fi/pb/p351446645.txt < 1266090468 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :fib(8) = fib(6) + fib(7) < 1266090472 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so, we show that 21 is the result < 1266090473 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :excuse me?? < 1266090478 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and then show it descending into fib(6) and fib(7) < 1266090488 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :8+13 = 21, so 8 -> 21 shows how you add the two recursions < 1266090489 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :oh I see!!!!!!! < 1266090492 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :then we start a new example, for 7 -> 13 < 1266090494 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I understnad CLUE!!!!!!!! < 1266090500 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and ANCHOVIES!!!! < 1266090505 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :this makes sense < 1266090508 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :when you have < 1266090534 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric : :. a -> b : a'_i -> b'_i < 1266090559 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :it means that f(a) = b = G(f(a_0),f(a_1),...) < 1266090562 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: ":. 8 -> 21 : 6 -> 8 : 7 -> 13" says find a way to get 21 from the input 8, and the outputs 8 and 13. also find a way to find the subinputs 6 and 7 from the main input 8 < 1266090567 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :where G is the recursive case it's solving for < 1266090577 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :these are the things you always do with recursion < 1266090608 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :do something to get input for the recursive cases (6 and 7), then use their output (and your original input maybe) to find the final output < 1266090627 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so, my suggestions: < 1266090633 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :in the hint line, make the operator something other than ~ < 1266090646 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :make the separator , not ; < 1266090668 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I thought it was just < 1266090673 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :also, don't have multiple blocks in ~ like that, either separate every call (excluding subcalls ofc) into its own block < 1266090675 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :or have one big block < 1266090677 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :those are my suggestions < 1266090687 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :[(input,ouput)] -> (input -> output) < 1266090689 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :but it's actually < 1266090709 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :[((input,output), [(input, output)])] -> (input -> output) < 1266090731 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so about putting this thing on esolang, we need (the first?) disambiguation page right? i have no idea how to use the wiki really. also is it okay to put closed source up there, i really don't want to publish this code yet. < 1266090737 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: you forgot -> [hint] < 1266090740 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :and each ((mi,mo),(si,so)) :: ((input,output), [(input, output)]) < 1266090743 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :oops < 1266090758 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :and each ((mi,mo),(si_j,so_j)) :: ((input,output), [(input, output)]) < 1266090760 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: if there's no code you can post a binary, but I'll lynch you < 1266090765 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :because there is an obvious massive abstraction i can do, but it requires a tiny bit of thinking, which i can't do right no < 1266090765 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :w < 1266090769 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :where j rangers over n different subproblems < 1266090770 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :IMO publishing just a spec beats publishing a binary with no source < 1266090788 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :and the subproblems are used to explain the recursion structure < 1266090792 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :yeah and there's hints too < 1266090804 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it's like publishing a press release saying "we're finalising a paper that shows that monkeys are real" vs "Monkeys are real. Here is how to work it out given the data: ... We will not show our data." < 1266090813 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the former is fine, the second isn't < 1266090844 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :basically just the conversions multiple examples <-> one example with at each actual value a vector of values in the corresponding places in the different examples < 1266090865 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so, it's really tiny < 1266090867 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :ocluepol, I guess that is how this works without being type directed < 1266090881 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :seems :P less magic now < 1266090886 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :but still amazing < 1266090924 0 :kivod!~kivod@ABordeaux-551-1-72-101.w92-149.abo.wanadoo.fr JOIN :#esoteric < 1266090949 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :what if you don't have subproblems is it just impossible? < 1266090951 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: so basically you just have a bunch of, basically tables for operations like add, subtract, multiply < 1266090956 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and you just look things up in there < 1266090963 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: maybe not with hints < 1266090972 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i don't get what his hints do though :) < 1266091013 0 :kivod!unknown@unknown.invalid PRIVMSG #esoteric :is this a chan about esotericism or programming? < 1266091017 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1266091031 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :esotericism programming and esoteric programming < 1266091038 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Esoteric programming. < 1266091040 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :esotericism programming! iching(1) < 1266091044 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION goes off to program some ghosts. < 1266091046 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :and itching < 1266091051 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and gay sex < 1266091055 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :mostly gay sex actually < 1266091061 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :enigmatic gay itching? < 1266091067 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Very. < 1266091077 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :kivod: now the question we have, which one did you *want* < 1266091080 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*have is < 1266091101 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :oklotype I will help code a type directed version if you want < 1266091120 0 :kivod!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1266091125 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :although you werobefubef < 1266091129 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :kivod: you wanted lol? < 1266091133 0 :kivod!unknown@unknown.invalid PRIVMSG #esoteric :I was searchning for a chan about esotericism < 1266091141 0 :kivod!unknown@unknown.invalid PRIVMSG #esoteric :but I like programming too so ... < 1266091142 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :kivod, I'm into esotericism < 1266091153 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ignore MissPiggy, the rest of us aren't crazy! < 1266091155 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :secret of the cube and stuff < 1266091160 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :...apart from oklopol < 1266091168 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :although oklopol probably has some deep oklo musing about the secret of the cube. < 1266091195 0 :kivod!unknown@unknown.invalid PRIVMSG #esoteric :so, now my question is, what's exactly esoteric programming? < 1266091224 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :"alise: also, don't have multiple blocks in ~ like that, either separate every call (excluding subcalls ofc) into its own block" <<< now i have block per one type of computation < 1266091235 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Programming using an esoteric programming language. An esoteric programming language is a language designed to be exceptionally unusual, odd, or hard to use. < 1266091244 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :kivod: programming the computational equivalent of crack by monkeys on crack < 1266091250 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :The best-known examples are Brainfuck and INTERCAL. < 1266091257 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :in languages that crack your mind into a thousand million pieces and they all turn into monkeys. < 1266091262 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: you are BORING < 1266091276 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: I try. < 1266091277 0 :kivod!unknown@unknown.invalid PRIVMSG #esoteric :sounds cool ^^ < 1266091283 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :IT ISN'T. It's horrific. < 1266091296 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Turn back now, while you still have a chance!!!!! < 1266091300 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wrote a thingy for use by programs written in esoteric languages < 1266091313 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :That thing, however, was idiotically designed [by me] and for all intents and purposes, dead < 1266091314 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Ignore Sgeo, he's never quite gotten over the PSOX ordela. < 1266091316 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*ordeal. < 1266091326 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :If he starts mumbling, just smile and say yes a lot. < 1266091328 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: i think this is a cooler thing than using types, as an esolang, that is < 1266091333 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1266091349 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :oklopol can you make any functions with it which aren't HM typeable? < 1266091349 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: can you define your own tables for it to look up in? or does defining functions do that < 1266091405 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :HM typeable? < 1266091413 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :alise: humm? < 1266091418 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :look what up < 1266091422 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hindley-milner typeadoo < 1266091425 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ohh < 1266091435 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: like it infers the operations by looking up your two operandyhoos values that it needs to infer an op from < 1266091443 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :from like various tables of the core operations like +, - etc < 1266091443 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :give an example that isn't HM typeable < 1266091445 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :right? < 1266091446 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :y? < 1266091451 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :y isn't hm typey yeah < 1266091458 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well obviously you can write y < 1266091459 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :What's HM typable? < 1266091459 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: so is defining a function adding your own table < 1266091461 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :or wait can you now < 1266091465 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hindley-milner typeadoo < 1266091472 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Should I assume that y == y combinator? < 1266091483 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :alise: what table? < 1266091488 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :do you mean < 1266091496 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :can you use your functions as helpers in other functions < 1266091510 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :like can you make a function that does something, using an append function you wrote < 1266091529 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: yeah, without specifying it < 1266091541 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i.e. does making new functions give it more rules with which to infer operations < 1266091569 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :umm, where did you get that it "infers" something? :P < 1266091577 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i hope i didn't say yes to anything like that < 1266091582 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's just brute force search man < 1266091592 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1266091594 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :isn't it like < 1266091598 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :this is very beta. < 1266091599 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :okay our two subcalls are 4 and 3 < 1266091606 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :our main thing is 12 < 1266091612 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :4+3 = 7 nope < 1266091614 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :4-3 = 1 nope < 1266091618 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :4*3 = 12 BINGOOOOOOOO < 1266091626 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and we have like, addition, subtraction and multiplication table there < 1266091629 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and we look up in each one < 1266091631 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah it's like that, but you'd probably just give it * and not + or -. < 1266091635 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :recursively for the subcalls < 1266091638 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: well how does it know < 1266091640 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you didn't tell it < 1266091641 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :anyway < 1266091649 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :does making your own function f(x,y)=z add f as a table to that inferring process < 1266091651 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if not SHIT SUX < 1266091667 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ah, you give it the functions to use EXPLICITLY. < 1266091678 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :... < 1266091682 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so it isn't clever at all < 1266091684 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric ::( < 1266091685 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :fib ~ ; dec; add < 1266091690 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :append ~ ; car; cdr; cons < 1266091693 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :how about not having them < 1266091700 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and having it search the entire universe of currently-defined functions < 1266091711 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :oklopol I don't understand why you wouldn't want it type directed :( < 1266091721 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :perhaps if i write a sophisticated enough compiler < 1266091733 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: oh i do, eventually < 1266091752 0 :Pthing!~pthing@cpc11-pres4-0-0-cust168.pres.cable.virginmedia.com JOIN :#esoteric < 1266091754 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :parse :: String -> Maybe Integer < 1266091755 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :parse "0" = Just 0 < 1266091755 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :parse ('S':xs) = return (1 +) <*> parse xs < 1266091755 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :parse _ = Nothing < 1266091755 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :deparse :: Integer -> Maybe String < 1266091755 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :deparse 0 = Just "0" < 1266091757 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :deparse (n+1) = return ('S':) <*> deparse n < 1266091759 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :deparse _ = Nothing < 1266091761 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :conclusion < 1266091766 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :for trivial parsers, just swap LHS and RHS for parse/deparse < 1266091793 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :now to make it less trivial < 1266091799 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: but really it's type directed already in the sense that if an operation fails, then its result is ignored. < 1266091802 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, so right now, if you have hints {f,g,h} and you want to make a function from recursive subcalls {p,q} which equals the target value x < 1266091822 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :x = f(p,h(q,p,p),g(p)) might be a right answer, for example < 1266091833 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :is this roughly the kind of problem it tries to solve? < 1266091836 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1266091846 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :how do you which arity each function is? < 1266091851 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :like h takes 3 parameters < 1266091870 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :primitives have arities, and your functions have the arities their clues do. < 1266091886 0 :kivod!unknown@unknown.invalid PART #esoteric :? < 1266091898 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :some primitives have types, and your functions will fail if used with an incorrect type, because the primitives they consist of will fail. < 1266091920 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :oh okay < 1266091923 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :"alise: so it isn't clever at all" <<< the compiler is not supposed to be clever, the language is. < 1266091926 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :well arity is the first sign of type :D < 1266091933 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :instead of being untyped it's typed like < 1266091935 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: specifying ops != clever < 1266091937 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :* -> * -> * < 1266091950 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :rather than < 1266091954 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :Int -> String -> Int < 1266091958 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :or even < 1266091964 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :Int -> (String -> String) -> Int < 1266091971 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :does it do higher order programming? :P < 1266092047 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: not atm, but it should < 1266092055 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :oklopol that sounds be really really hard though < 1266092063 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :later < 1266092077 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :no not relly. < 1266092078 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*really < 1266092106 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :alise: yeah i don't care about your stupid opinion < 1266092113 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and your mom is fat < 1266092115 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric ::( < 1266092117 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ow < 1266092122 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :take that < 1266092126 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :waaaah < 1266092131 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :you guys stop fighting!!!!!!!!! < 1266092135 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anyway err < 1266092139 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i was originally even thinking < 1266092144 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you might make like append < 1266092147 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :by the higher order programming is hard < 1266092149 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :BY THE WAY < 1266092153 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and then give some other function, as a helper, (append [1,2,3]) < 1266092161 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :curried that is < 1266092178 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :well sure "append [1,2,3]" denotes a function just as "append" does < 1266092179 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hard in what sense? < 1266092179 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anyway the problem is < 1266092182 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I don't see any difference < 1266092188 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you might be able to just write some sorta combinators, and program in helper lists < 1266092200 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :^ the problem i was thinking it might have < 1266092206 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, well for type directed higher order programming, you can do it algorithmically < 1266092210 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :without any examples or anything < 1266092220 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :but when you add recursive data types, it becomes very difficult < 1266092280 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :do what algorithmically < 1266092284 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :this whole thing? < 1266092302 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :how can you do example-oriented programming without examples < 1266092333 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :or do you mean just deducing functions from some general rules for how they should work < 1266092344 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :because that's bullshit < 1266092395 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :oklopol do you make your language output lisp and haskell? < 1266092423 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :you can inhabit (or show impossible) stuff like a -> (a -> b) -> b < 1266092426 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :without any examples < 1266092426 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well no, not actually either of them < 1266092428 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :because it's not internally either < 1266092442 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :even as a functional language it's quite different < 1266092455 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :really? < 1266092456 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :inhabit? what the fuck does that help < 1266092470 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :that's what your language does I think < 1266092474 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i wanna write a tetris with this, not a fucking logic wanking tool < 1266092482 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :you create functions from examples no? < 1266092488 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :sure, sure < 1266092499 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :LOL LOL LOL < 1266092540 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :"i wanna write a tetris with this, not a fucking logic wanking tool" -- oklopol on programming < 1266092551 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm just saying the language is a bit different, so i was thinking haskell syntax, plus some additional syntax < 1266092556 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Mmmm < 1266092557 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Logic wanking < 1266092560 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :on programming with clue, yes < 1266092564 0 :coppro!~coppro@unaffiliated/coppro JOIN :#esoteric < 1266092578 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i just mean you people seem to completely misunderstand the idea of the language < 1266092586 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I do < 1266092601 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I want to undersatnd it though] < 1266092608 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's not meant to be something pure and sexy, it's meant to be a cool hack around the fact example-based stuff is impossible to make work. < 1266092695 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :What I mean is < 1266092708 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :(1) higher order programming is going to be extremely difficult to solve < 1266092722 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*Text.TwoParse> toVars $ toAST $ varsFor P_ X < 1266092722 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Right X < 1266092722 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i don't think it is! < 1266092723 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it's a start < 1266092730 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :oh well I hope you are right :P < 1266092732 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: oklopol's probably right, he can hack up anything < 1266092734 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i mean < 1266092740 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :let's say you wanna write like map < 1266092774 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you just give it an example of some list and something like an increment function, and show that it applies the function to first one, and recurses on the tail of the list, then conses < 1266092780 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :let me implement map f [] = [] ; map f [3,5,6,2] = [f 3,f 5,f 6,f 2] ? < 1266092782 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :then < 1266092792 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if you change the function, it'll just apply it, like it did with increment. < 1266092803 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1266092821 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :so map inc [] = [] ; map inc [3,5,6,2] = [4,6,7,3] < 1266092833 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if there are problems, i can't see them. < 1266092841 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :ACTION neither < 1266092864 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :this is going to be so sick < 1266092866 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that thing i just explained would work right away, prolly, if i added like an append function, and made it possible to have functions as data < 1266092866 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :err < 1266092866 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*added like an apply function < 1266092964 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i can try to implement map, although it won't work currently (no fundamental reason it shouldn't, just some name lookup things i'd need to add) < 1266092969 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*Text.TwoParse> toVars $ toAST $ varsFor S_ ('a','b') < 1266092969 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Right (Right ('a','b')) < 1266092970 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yay < 1266093052 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay done < 1266093117 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :http://www.vjn.fi/pb/p525542334.txt < 1266093119 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i think that's it < 1266093133 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh... < 1266093141 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay there's a slight problem because i chose such a simple function < 1266093145 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :prolly wouldn't work < 1266093152 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :can you see why btw? < 1266093276 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :http://www.vjn.fi/pb/p536541641.txt < 1266093277 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :better < 1266093382 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :alise: the reason i chose "," over ";" was just so you could use "," in identifier names < 1266093406 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :like if you want a function called "do this, then do that" < 1266093517 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i mean i do think it would be nicer to use ",", i just want to have absolute freedom in varnames. < 1266093533 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and what do you suggest for "~", and what's wrong with it now? < 1266093560 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :as for the block thing, i've learned to love it already < 1266093571 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well why can't you use ; in varnames < 1266093580 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i guess you could < 1266093581 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the block thing i suggested or how you already had it? < 1266093589 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and ~ is fine, just not for the list of funcs < 1266093592 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the one i have now, < 1266093594 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*-, < 1266093595 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I'd use / < 1266093598 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1266093598 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :like w/, with < 1266093602 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well < 1266093610 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :map / ; cons; car; cdr < 1266093613 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :originally i think i had different chars for both < 1266093641 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but there's sort of this esotheme going on that things that mean completely different things look similar < 1266093687 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the other main thing is {:: a -> b }, although i guess it just looks like a completely separate thing now that i've implemented this < 1266093694 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::: is the tests < 1266093706 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's actually probably not that useful, but no matter < 1266093769 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'll consider / < 1266093790 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :how about "USING THE FOLLOWING HELPER FUNCTINOS:" < 1266093795 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*USES < 1266093949 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :here's how I'd write fib in http://www.vjn.fi/pb/p351446645.txt < 1266094043 0 :MizardX!unknown@unknown.invalid QUIT :Ping timeout: 276 seconds < 1266094053 0 :zzo38!~zzo38@h24-207-48-53.dlt.dccnet.com JOIN :#esoteric < 1266094061 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :what do the <> mean in hints < 1266094068 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :base case? < 1266094069 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1266094081 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :; deconstruct for recursion; combine < 1266094085 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh nooo < 1266094085 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I was reading the "LoUIE" page. < 1266094090 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :<> is the condition function < 1266094105 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you also explicitly tell it what to use to differentiate between cases < 1266094114 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I said LoUIE LoUIE < 1266094129 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, not completely explicitly < 1266094143 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :like fib just needs id < 1266094164 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :base case 1 is always 0, base case 2 is always 1, so all others will go to the general case < 1266094196 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I was looking at the "Paneer" part. Forth (and possibly other existing programming langauges) can do something like that (maybe bash shell-script can, but I'm not sure), but it doesn't what you want, necessary. Still, that's how the OASYS->TAVSYS converter works. The file "oasys.4th" defines a word "oas" which causes OASYS binary files to be treated as a source code for a TAVSYS file. < 1266094207 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and in append, instead of empty you could also use length < 1266094245 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I also looked at "Boo-yah!" and I want to think of what kind of states it can use. < 1266094287 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: http://www.vjn.fi/pb/p123635515.txt < 1266094290 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :my masterful syntax < 1266094307 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :..5/..6 in the second fib recursion thing should be .. 5/.. 6 < 1266094348 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :What is that file? < 1266094396 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i don't have a clue < 1266094422 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :alise: how does it know the 7 and 8 examples are the same? < 1266094470 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the grouping is to show that < 1266094496 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :nothing else < 1266094584 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I also had another idea of esolang: A program language that the operators for dealing with numbers includes things such as "count how many letters to write the word of this number in English", "count how many letters to write the word of this number in Latin", "remove all digits from the first number that match digits in the second number", and so on, like that. < 1266094645 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: oh < 1266094649 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: didn't realise < 1266094694 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :probably i didn't mention it < 1266095009 0 :coppro!unknown@unknown.invalid QUIT :Ping timeout: 245 seconds < 1266095073 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :fooS :: PP Foo < 1266095074 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :fooS = char 'x' *> give X_ () < 1266095074 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : <|> char 'p' *> give P_ fooS < 1266095074 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : <|> give S_ (anyChar, anyChar) < 1266095122 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so I need PP :: * -> * ;; instance Functor PP ;; instance Applicative PP ;; instance Alternative PP ;; char :: Char -> PP Char ;; give :: MetaFor a b -> b -> PP a < 1266095145 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :alise: did you accept the grouping then? i could just have whitespace, but i sorta like the idea of brackets when there's pretty much no structure and it's completely needless :P < 1266095152 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :parse :: PP a -> String -> Maybe a ;; deparse :: PP a -> a -> Maybe String < 1266095165 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: tbh the syntax is minimal enough that it barely matters < 1266095169 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1266095170 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i guess < 1266095171 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :90% of the program will be a bunch of examples < 1266095176 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and the only syntax there is comma and -> :P < 1266095198 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah, and .'s and :'s < 1266095209 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :although you just need one of them < 1266095216 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yeah they're pretty rare < 1266095222 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :actually it takes the sum of dots mod 4 < 1266095223 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :compared to examples < 1266095238 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :0 is test, 1 is base, 2 is subcase, 3 is recursive case < 1266095247 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :http://hackiki.org/wiki/features I added some documentation of Hackiki's feature to hackiki.org (zomg) < 1266095248 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I should just make a language where every function has to be invertible < 1266095261 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :notably, it would protect programmers from using strong encryption < 1266095276 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so you can write :., .: or ... < 1266095288 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: wow, that is glacial. < 1266095291 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: XD < 1266095294 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh wait actually ofc you can't write everything with :'s, turns out : isn't a prime < 1266095298 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*turns out 4 isn't < 1266095304 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric : hey you guys < 1266095307 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hey augie < 1266095314 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :augur. < 1266095316 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :not augie < 1266095317 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric ::| < 1266095318 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: wow that's like recursion < 1266095340 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: Uhhh? < 1266095348 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: nm. < 1266095352 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oh I forgot, I also need anyChare :: PP Char < 1266095362 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :"documentation of Hackiki's feature to hackiki.org" <<< X in X. < 1266095363 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: he was mocking you :) < 1266095379 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that really made no sense < 1266095386 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :...yeah mocking < 1266095391 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well, more or less < 1266095394 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so cleverly you don't even get it < 1266095395 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I have a OpenID program but how can I get it to work? < 1266095410 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :augur: what's wrong with augie < 1266095427 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :it was the name of a friends brother when i was younger < 1266095430 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :This is what I have so far http://zzo38computer.cjb.net/openid/openid.php < 1266095437 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :so in my mind it's not the diminutive of augur < 1266095437 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :As you can see, it doesn't work. < 1266095441 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :its just a different name < 1266095443 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i call alise allie and Sgeo sgay < 1266095463 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :yes and im not saying its not a reasonable diminutive for augur < 1266095475 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :but to my ear it doesnt _sound_ like a diminutive, it just sounds like a different name < 1266095482 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay, i see < 1266095491 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if you can think of another cutive, i can used that. < 1266095501 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*use < 1266095503 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :augur is cute enough! < 1266095512 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :aurgy < 1266095514 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you wish < 1266095517 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: You give that URL to something with OpenID login ... to log in. < 1266095521 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :"auglet" < 1266095524 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :http://dblp.uni-trier.de/db/indices/a-tree/v/Vijay=Shanker:K=.html < 1266095529 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :look at all those wonderful papers T_T < 1266095553 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :i think someone should build a programming language that uses a LIG/TAG or something < 1266095605 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: did you... configure it? < 1266095624 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :afk < 1266095770 0 :tombom!tombom@wikipedia/Tombomp JOIN :#esoteric < 1266095799 0 :KingOfKarlsruhe!~nice@p5B133741.dip.t-dialin.net JOIN :#esoteric < 1266096099 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I did give that URL to sometihng to log in, and it says it is wrong! < 1266096107 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :http://www.wasab.dk/morten/2007/11/openid/ < 1266096129 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :fix_n f = f (fix_n f)^n where n>0 < 1266096136 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: you didn't configure it < 1266096137 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :edit the file < 1266096365 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :How? < 1266096512 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :with a text editor. < 1266096524 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :back yo < 1266096561 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I know that, of course. That isn't what I meant < 1266096750 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: i had an interesting idea for a modification of prolog < 1266096751 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric ::x < 1266096778 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :do you mean some sort of unification over quantifiers with a dash of absolute convergence? < 1266096801 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :what? :| < 1266096810 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :by which i mean do explain, we can hope i understand a word of it < 1266096818 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :nothing < 1266096832 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I looked at the codes but it looks like correctly. < 1266096851 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i keep saying things that mean nothing today, especially irl, here i can just not press enter < 1266096858 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :it wouldnt modify standard prolog (unless prolog already does this) but < 1266096871 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :foo(X), bar(X) ---> foo(bar(X)) < 1266097170 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I can see what's wrong now. It is trying to open /dev/urandom and that's why it doesn't work. < 1266097240 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :# Each of the n characters in a name must come from a different character partition, where a character partition is identified as any character within the range [0..99], [100..299], ..., [3600..3699]. For example, while ŸēĴǥȬʂ˩̪ΘкүӾԦב؏ڀۙݥގࠅࡁࣷईং৔ਾ૖ૻஃ௵శದദං෌แ clearly is an elongated streams, ٬੓ಛ଩ƀĚЇ̢ߊvǢϦɸ܀৺૊౭஌<؅ࠀ˽ࣄܢɒ௵ँෞݜғๅࡼՠҰേজඛ is not a value chain, basi < 1266097240 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :cally because there are two unicode characters within the range [1800..1899] in here. Neither is ಉ̪ݛՁूϚ֡Ŝ٘ல෌࠴ৄॼˋ߷нɋwCьÒޜӠ౬؀૔ങࣷۮǐਖ਼ఄବʔ൬, mainly because it is 36 characters long and there is no such thing as a 36 characters long identifier in i®™. < 1266097250 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :No, it is still wrong. < 1266097251 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :--Gerson Kerz, i spec < 1266097271 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :[[Lets talk about sourcecode first. The character set for a legal i input file must be in Punicode encoding, as specified in RFC 3492 and the file must have a utf-16be BOM. This helps keeping the code secure, because nobody can use something as trivial as Notepad to edit i sourcecode.]] < 1266098128 0 :zzo38!unknown@unknown.invalid PART #esoteric :? < 1266098153 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :class (PFunctor p r t, QFunctor p s t) => Bifunctor p r s t | p r -> s t, p s -> r t, p t -> r s where < 1266098153 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : bimap :: r a b -> s c d -> t (p a c) (p b d) < 1266098169 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :when you start implementing an instance of this, is that the signal that "make this so my life is easier" has failed utterly and horribly? < 1266098609 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :let's just say that looks like a lot of letters < 1266098641 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :turns out I also have to implement < 1266098642 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :class (Category r, Category t) => PFunctor p r t | p r -> t, p t -> r where < 1266098642 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : first :: r a b -> t (p a c) (p b c) < 1266098643 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and < 1266098646 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :class (Category s, Category t) => QFunctor q s t | q s -> t, q t -> s where < 1266098646 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : second :: s a b -> t (q c a) (q c b) < 1266098655 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :augur: i don't see how that makes sense < 1266098658 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(this is just for a parsing library.) < 1266098667 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: what? < 1266098676 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :"augur: foo(X), bar(X) ---> foo(bar(X))" < 1266098684 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: why doesnt that make sense < 1266098726 0 :kar8nga!unknown@unknown.invalid QUIT :Remote host closed the connection < 1266098781 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i just don't see what the point is < 1266098925 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :fizzie / Deewiant / any finn online? < 1266098950 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: theres no point, except to make it weirder < 1266098990 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh well i can imagine it would do that < 1266099005 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so do you own at finnish < 1266099012 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: not yet < 1266099025 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i need to know some train schedules but my internet is not alive < 1266099044 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm completely offline atm < 1266099457 0 :KingOfKarlsruhe!unknown@unknown.invalid QUIT :Remote host closed the connection < 1266099889 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: How is your Internet not alive if you can do the IRC < 1266099912 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :TELEPATHY < 1266099926 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :He's emitting gamma rays that flip bits in Freenode's RAM that make it think he's connected and sending messages. < 1266099942 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I suppose DNS could be dead but there are easier ways to work around that than asking somebody else over IRC < 1266100465 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: write my haskell function for me, thx < 1266100478 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: Whatever for? < 1266100506 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: a bi-directional ([token] -> a and a -> [token] from the same parser), applicative parser < 1266100515 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i'm fairly sure a certain function is unimplementable < 1266100548 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://pastie.org/823742.txt?key=ugezvaboaxv3tg15cjeja < 1266100551 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Good luck, sucker! < 1266100564 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: Have you tried Parsec and a show/read instance? < 1266100582 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, because Parsec can take an AST and give you back corresponding source. < 1266100588 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Without writing a separate deparser. < 1266100605 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Since it can do that, it's exactly what I want and I'm duplicating effort by writing something that can do that. < 1266100611 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1266100612 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Is a pretty printer that hard? < 1266100612 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1266100641 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Is a pretty-printer that handles things like only putting parentheses in when needed harder than simply writing a parser and having it automatically deparse too? < 1266100646 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Yes; much harder. < 1266100651 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :And a library only has to be written once. < 1266100683 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Ehh, eff that. < 1266100706 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I've got a dozen more kanji or so I'd like to learn today. < 1266100714 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Bah! < 1266100848 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: it's just really slow, if you need to know. < 1266100853 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Mmm, autodidactism. < 1266100857 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It is such a wonderful thing. < 1266100886 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :there's no other didactism, teaching is just an attempt to direct focus. < 1266100901 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :crazy person says what < 1266100910 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i love clue < 1266100952 0 :coppro!~coppro@unaffiliated/coppro JOIN :#esoteric < 1266100995 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :also i just realized mutual recursion can't really be added just like that, the whole language needs to be changed quite a lot < 1266101004 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, who needs mutual recursion anyway < 1266101025 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :mutual recursion just leads to sadness < 1266101028 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :as does regular recursion < 1266101038 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Hmmm... I think I have figured out another way for computing coordinates when moving through wormholes, but that way doesn't support nested wormholes at all. But one could have multiple funge spaces connected with wormholes... < 1266101057 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: so what are the ways around it? < 1266101066 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :If you get rid of self-reference, you won't have nasty paradoxes < 1266101077 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: Switching your DNS server? < 1266101089 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Or just remembering the IP address of Google < 1266101093 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :(An IP address) < 1266101101 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : there's no other didactism, teaching is just an attempt to direct focus. < 1266101105 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i have no idea how to switch DNS server ofc < 1266101107 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i've not been able to state it better < 1266101139 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :I've heard it better; it's on the walls of my school better < 1266101147 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :s/better$/somewhere/ < 1266101157 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Oh, the irony. < 1266101169 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1266101180 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and here i thought it was my own thinking < 1266101204 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: Linux: /etc/resolv.conf; Windows Vista: Control Panel -> Network and Sharing Center -> Manage Network Connections -> right-click your connection -> Properties -> TCP/IPv4 -> Properties -> Use the following DNS server addresses < 1266101251 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: that's easier than asking someone? that's like... 8 clicks! < 1266101252 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anyway is there a list from which i can choose? < 1266101276 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :because sort of hard to get addresses if you're offline < 1266101297 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :wuut < 1266101331 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: 8.8.8.8, 4.2.2.2 for example < 1266101357 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh okay < 1266101388 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I mean, just memorize/write down some public ones :-P < 1266101445 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :not sure that's very useful < 1266101453 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i guess if you need to do that often < 1266101525 0 :tombom!unknown@unknown.invalid QUIT :Quit: Leaving < 1266101573 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay what should i write in this thing < 1266101601 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :trivialities like fibs and append aren't really much of a test case < 1266101625 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :what is a good test case < 1266101641 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :something slightly more complicated < 1266101679 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Like a kernel. < 1266101690 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Make an OS kernel a one-linear. < 1266101693 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :One-liner, even. < 1266101718 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :there's one slight problem < 1266101724 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you can't write a one-liner in clue < 1266101759 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh wait you can < 1266101797 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: write life < 1266101823 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ah, that's good, although maybe 110 first < 1266101857 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :maybe i should add infinite lists........................................................ < 1266101862 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :noooooooo! < 1266101876 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1266101879 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what's wrong with infinite lists < 1266101888 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :infinite lists are IMPLAUSIBLE < 1266101903 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm, yeah that's a good point < 1266101968 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :implausible how. < 1266102068 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, first of all infinity is a REALLY big number < 1266102113 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: infinity = infinity + 1 < 1266102116 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Roughly that big. < 1266102117 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1266102130 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :good point, it's even bigger < 1266102133 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy, oklopol, wanna hear something cool about natural language? :o < 1266102136 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1266102139 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :hi augur! < 1266102140 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1266102153 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1266102173 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hi auglet < 1266102201 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :suppose that M("brown") = \x.brown(x) < 1266102217 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :(that is, the meaning of the word "brown" is some predicate of brownness) < 1266102221 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :and M("cow") = \x.cow(x) < 1266102254 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1266102274 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is supposing the ass of those truths < 1266102280 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :it seems to be the case that humans are only capable of learning that M([a b]) = \x.M(a)(x) && M(b)(x) < 1266102297 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :huh < 1266102312 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :ie [brown cow] = \x.M("brown")(x) && M("cow")(x) = \x.brown(x) && cow(x) < 1266102348 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :its not possible that M([a b]) = \x.M(a)(x) || M(b)(x) < 1266102360 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :of course a brown cow isn't either brown or a cow? < 1266102363 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :or'm I missing something < 1266102364 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :e.g. M([brown cow]) = \x.brown(x) || cow(x) < 1266102371 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :thats the point! < 1266102375 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :or rather < 1266102383 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :also, humans cannot learn that [big toy] is in fact a small rabbit < 1266102384 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :The point is that languages just plain don't do that. < 1266102387 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Interesting. < 1266102390 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :yes, in _practice_, a "brown cow" is not something that is either brown OR a cow < 1266102398 0 :Pthing!unknown@unknown.invalid QUIT :Quit: Leaving < 1266102418 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :but its not merely a happenstance thing about existing languages < 1266102419 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I thought of it as brown(cow) < 1266102422 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :why isn't it that? < 1266102423 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :its a fact about POSSIBLE languages < 1266102433 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: because cow is a concept, not a thing. :P < 1266102466 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :brown(cow) surely denotes that the CONCEPT cow is brown < 1266102470 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :or that all cows or brown < 1266102471 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Also, [brown cow] could then be applied to something else. < 1266102475 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :hmmmm < 1266102484 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Say, [brown cow dance]. < 1266102485 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :well alright that does make sense what you are sayng < 1266102489 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :alise: also, kids can indeed learn that "big toy" means "small rabbit" < 1266102493 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(silly example, but gets the point across) < 1266102523 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :just like they can learn that "brown cow" means "rootbeer float made with chocolate icecream not vanilla < 1266102544 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :can't learn as in physically can't? < 1266102548 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :because i have a new thing to try on my future kids < 1266102569 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :as in you can try to teach a kid a new adjective and/or a new noun < 1266102576 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :call it "prown" and "gow" < 1266102584 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :such that a "prown gow" is either brown, or a cow (or both < 1266102585 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :) < 1266102599 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :and kids cant get it. < 1266102618 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And now, he's going to try to make a conlang with that as a grammatical feature just to fuck with his kids. :P < 1266102618 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :and where something that is just "prown" is brown < 1266102623 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :and something that is just a "gow" is a cow < 1266102632 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :goat < 1266102652 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :augur: how do you test something like this? < 1266102656 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :for whatever reason, in natural language, syntactic concatenation = semantic conjunction < 1266102658 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :He's a genius reckless. < 1266102660 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :BUT WHICH < 1266102673 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: acquisition labs < 1266102679 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh? < 1266102685 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :Jeff Lidz has an acquisition lab < 1266102697 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :basically we try to teach kids novel words or constructions < 1266102709 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :that sounds cool < 1266102711 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :and they can learn a lot of them really easily < 1266102719 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :but they cant learn some of them at all < 1266102731 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anyway who cares about kids, they're retards anyway, i bet i could learn a language where concatenation is disjunction. < 1266102740 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :That is both clever and obvious. < 1266102743 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: not as a natural language :) < 1266102775 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :you would not be able to employ it in such a fashion naturally. your usage would, rather quickly, come to use concatenation to mean conjunction. thats the weird and crazy thing. < 1266102780 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :or heres another one < 1266102780 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :augur: so basically it's kid guinea pigging :) < 1266102793 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :alise: yes :) < 1266102796 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :perhaps it's just because conjunction is far more common than disjunction < 1266102803 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :quantifiers (words like "all", "some", "every", etc.) must obey the following rule < 1266102824 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :augur: i don't believe that < 1266102828 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :"all X are/do Y" must mean the same as "all X are X's that are/do Y" < 1266102837 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :e.g. "all dogs bark" = "all dogs are dogs that bark" < 1266102863 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :instead of what? < 1266102863 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :now im going to bet that this ALSO seems pretty fucking obvious < 1266102900 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :but consider that if "all" is just some binary subset function, e.g. "all X Y" = X ⊆ Y < 1266102912 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :then why cant we have "lall X Y" = Y ⊆ X? < 1266102920 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :loll X Y < 1266102921 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :e.g. "lall dogs bark" = "all barkers are dogs" < 1266102923 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :;) < 1266102933 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :yes, it was quite intentional :) < 1266102936 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Tangential, but I always find it weird when people talk about Noam Chomsky in the context of politics. < 1266102958 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :GNU/Chomsky < 1266102959 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: why? hes one of the leading far left political commentators < 1266102986 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :augur: I always think of his work on formal grammars. < 1266102991 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :true. < 1266103001 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :augur: i don't think "not as a natural language" means anything, natural languages are much harder to talk in than, say, math < 1266103020 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: No, much easier. < 1266103024 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: ofcourse they are, but thats because natural language is complicated in weird and hard-to-understand ways < 1266103031 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you always end up explaining anything even slightly complicated on paper, because natural languages are so crappy < 1266103031 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :and its not entirely arbitrary, either < 1266103033 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :You talk in a natural language without thinking about it all the time. < 1266103035 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Math, you think about. < 1266103050 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: math isnt hardwired into our brains ;) < 1266103053 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :objectively, its easier. < 1266103057 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :augur: Well, yes. < 1266103066 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :That is what makes it easier... < 1266103066 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :its also precise, and well defined < 1266103071 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :we understand it < 1266103083 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :or at least, we understand how to understand statements in math < 1266103093 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :eh? often while proving things i'm thinking about something else < 1266103097 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :and we understand why those statements mean what they mean because we defined them < 1266103100 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i mean if it's something simple < 1266103123 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :but natural language has completely crazy, bizarre constraints on its mapping from form to meaning < 1266103130 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :heres a purely grammatical one, pikhq < 1266103135 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :you know what a cyclic permutation is? < 1266103148 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :augur: Not entirely. < 1266103159 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Though I may find it obvious once you describe it. < 1266103160 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what's a cyclic permutation? < 1266103169 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :My knowledge of linguistics is very... Vague. < 1266103176 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :its math, actually, but < 1266103189 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And my knowledge of math is incomplete. < 1266103205 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :a cyclic permutation is basically an arrangement of some set of items such that the relative ordering is the same, including looping around to the beginning again < 1266103221 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Oh, the obvious meaning associated with those words. < 1266103225 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :e.g. the cyclic permutations of "abcde" are "abcde", "bcdea", "cdeab", "deabc", and "eabcd" < 1266103261 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay so permutations that have just one cycle or whatever it's called < 1266103265 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :cyclic permutations are _impossible_, as far as anyone can tell, as grammatical rules. < 1266103296 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :O_o < 1266103311 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :"I ate the food" "Food I ate the" "The food I ate" "Ate the food I". < 1266103336 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION just thinking it over < 1266103342 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Huh. < 1266103345 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :well, lets not use that as an example < 1266103346 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :as grammatical rules, how? < 1266103364 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i mean in what sense, well i guess any sense? < 1266103368 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :lets say, instead, that there are some adjective classes, e.g. color, size, subjective judgement < 1266103389 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :e.g. red, small, and pretty < 1266103417 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :lets say its then grammatical to have them in that cyclic order: color, size, judgement < 1266103421 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :K. < 1266103438 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :heh, now i keep reading all concatenations as disjunctions < 1266103438 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :such that "red small pretty button" "small pretty red button" and "pretty red small button" are fine < 1266103440 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :but nothing else is < 1266103454 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :"cyclic order" is a bit of a brainteaser < 1266103474 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :in that context < 1266103576 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :interesting < 1266103581 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :augur, I read that Sumarian doesn't have any order < 1266103582 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :or lets take verbal auxiliaries < 1266103592 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :so every cyclic permutation of words meant the same thing < 1266103596 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :"john has been being an ass lately" < 1266103606 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :not that i believe testing this stuff on kids tells us anything, but i suppose most people do believe kids can learn languages. < 1266103609 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :or even better "john will have been being an ass" < 1266103620 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :something i seriously doubt < 1266103632 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :no that wont work actually haha < 1266103636 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :... You doubt children can learn languages. < 1266103643 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :lets just say its "john will have been an ass" < 1266103649 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :that order, will-have-be < 1266103653 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Clearly, you merely became fluent at the age of 18. < 1266103654 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1266103664 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :let that be the cyclic ordering of those auxiliaries < 1266103681 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well yeah, i mean sure they can mangle some sorta crap, but a kids aren't fluent speakers, you learn languages explicitly, when you're older < 1266103681 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :such that "john will have been an ass" = "john have been will an ass" = "john been will have an ass" < 1266103689 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :this is not something kids can learn < 1266103695 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*-a < 1266103714 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: no, kids DO learn languages quite well < 1266103717 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1266103719 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :its a mistake to assume otherwise. < 1266103734 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :formal training in "Proper" language is entirely bullshit < 1266103743 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :what you speak is language < 1266103747 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :not in my experience < 1266103747 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :no < 1266103754 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :so anyway. < 1266103768 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :there are just these constraints on what is a possible human language < 1266103779 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :and they dont seem to be objectively motivatable < 1266103788 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: You sound like a prescriptionist. < 1266103793 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :cyclic permutations especially, since humans can do perfectly well on them when its not language < 1266103795 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :of course i'm a prescriptionist < 1266103803 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :oklopol is just silly. < 1266103809 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you would be too, if you knew how crappy natural languages are < 1266103827 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :You also sound silly. I knew proper, formal English from a young age... < 1266103827 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: you'd stop being one if you realized how crappy prescription actually is ;) < 1266103847 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :prescriptivist, you idiots < 1266103850 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it's prescriptivist! < 1266103853 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and they're IDIOTS! < 1266103862 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Please say prescriptivist. prescriptionist is just wrong. < 1266103862 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: ITS PRESCRIPTIONIST NOW. MUAHAHAHAH. < 1266103864 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :natural language is extremely good at doing what it was evolved to do < 1266103864 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :;) < 1266103865 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but seriously, don't even talk about them < 1266103867 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :be a descriptivist < 1266103869 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :and thats NOT math. < 1266103869 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :GET IT GUYS GET IT < 1266103877 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :IT'S A DESCRIPTIVIST BEING PRESCRIPTIVIST ABOUT THE WORD PRESCRIPTIVIST < 1266103879 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :augur: no it's not < 1266103883 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it sucks at it. < 1266103887 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :no it doesnt < 1266103891 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yes it does < 1266103903 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: Propose some alternatives? < 1266103910 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :well, it sucks objectively speaking, but you cant make it better < 1266103913 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yes, use lojban or something < 1266103928 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :lojban is either just as sucky, or impossible to use naturally. :) < 1266103937 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that's not true < 1266103940 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :yes, it is. < 1266103948 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :no, it's not. < 1266103951 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :yes, it is. < 1266103951 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :"Fluent" speakers produce Lojban that doesn't parse quite right. :P < 1266103953 0 :SimonRC!unknown@unknown.invalid QUIT :Ping timeout: 265 seconds < 1266103954 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :no, it's not. < 1266103960 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :yes, it is, oklopol. < 1266103965 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :no, it's not, augur. < 1266103977 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :the human language faculty is what it is. < 1266103991 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :if lojban does not fit this mold, then it simply cannot be used naturally. < 1266104006 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :if it does fit this mold, then it is subject to all of the problems that non-lojban languages are subject to. < 1266104030 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :augur: Well, all of the problems that *all* non-lojban languages are subject to. < 1266104038 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm gonna go to sleep now, you keep on dreaming; in any case, that was interesting stuff, is there a comprehensive listing of these testings? < 1266104038 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well i don't care, communication sucks anyway < 1266104055 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: i agree. lets just fuck instead. < 1266104057 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1266104057 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It can at least avoid certain of them, like "having a spelling that is completely unrelated to how it's spoken". < 1266104060 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :sex works < 1266104062 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :natural sex. < 1266104073 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: thats not language tho, thats orthography < 1266104080 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :but orthography is already unnatural. < 1266104081 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :augur: True. < 1266104097 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :further, "completely unrelated" is a difficult thing to explain. < 1266104109 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Mm. Yeah. < 1266104119 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :natural languages don't have variables and proper mathematical quantifiers, i guess that's the thing i hate about them most < 1266104130 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :english orthography, except for some rough patches, is actually quite decently transparent. < 1266104135 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :its just not compositionally transparent. < 1266104142 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: actually they do :) < 1266104160 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :the variables are just not as easilly handled, and the quantifiers require bigger phrases. < 1266104195 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah, in other words the most fundamental concepts of communication suck ass < 1266104217 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :not for what theyre designed to do! :) < 1266104228 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :how does it suck??? < 1266104253 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :it sucks because oklopol is trolling is all. < 1266104256 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :and hes a robot < 1266104261 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :augur: Transparent? Mmm. Well, the spelling at least has some affiliation with the pronunciation. < 1266104262 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :eh, i'm not trolling < 1266104265 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but really sleep -> < 1266104273 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Though it varies based upon etymology. < 1266104274 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :also answer my question if you have the time < 1266104274 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :-> < 1266104489 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: so yeah. find a good explanation for these things. < 1266104494 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :its tricky! < 1266104648 0 :SimonRC!~sc@fof.durge.org JOIN :#esoteric < 1266104841 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1266104911 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Hail, oerjan. < 1266104935 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: I asked oklopol to ask the little copy of you in his head, but he didn't, so: it *is* possible to write a bidirectional parser, right? < 1266104937 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Yes? Good. < 1266104943 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(I'm 99% sure it is, so.) < 1266104953 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :um what is a bidirectional parser < 1266104954 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :what do you mean by bidirectional? < 1266104972 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's both gay directional and straightdirectional < 1266104973 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*gaydirectional < 1266104982 0 :adam_d!~Adam@cpc2-acto6-0-0-cust48.brnt.cable.ntl.com JOIN :#esoteric < 1266104997 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm not sure that works. < 1266105017 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :try with homo- and hetero- < 1266105021 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what's the definition of gay, is it just "same sex" or "at least same sex" < 1266105025 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1266105031 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that's better < 1266105069 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i'd say it's evilly mixing greek and latin roots, but the -sexual versions already do that < 1266105105 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah but can homo- or gay include bi's? < 1266105116 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :homo- can't < 1266105140 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that sounds kinda stupid < 1266105140 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :bi is like sqrt(2)/2 * straight + i * sqrt(2)/2 * gay < 1266105152 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :alise: yes. it is possible. < 1266105154 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :how do I add a quote to the bot? < 1266105160 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : `addquote < 1266105183 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :gay(x) = sex(x)==sex(me); straight(x) = sex(x)!=sex(me); bi(x) = gay(x) || straight(x); < 1266105189 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I am bidirectional parser curious < 1266105193 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :where orientation(x) = "is it okay to consider this relationship under this sexuality" < 1266105198 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I dabble a bit in pretty printing and sexy parsing < 1266105212 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :parsing isn't sexy < 1266105214 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's really annoying < 1266105217 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :mine is < 1266105221 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1266105225 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah maybe < 1266105230 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric ::3 < 1266105234 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :further constraints may be applied of course < 1266105245 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :`addquote bi is like sqrt(2)/2 * straight + i * sqrt(2)/2 * gay < 1266105250 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pansexual = bi + any other constraint considering gender is omitted < 1266105253 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :129| bi is like sqrt(2)/2 * straight + i * sqrt(2)/2 * gay < 1266105259 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :alise: thats not what bi means :p < 1266105270 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: bidi parser = one parser definition does both [tok] -> a and a -> [tok] < 1266105282 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :but its an interesting interpretation! < 1266105286 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: sounds like something you'd do with prolog < 1266105289 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :augur: you can prefer one gender over the other in bi < 1266105298 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :this is true. < 1266105298 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but the functions I wrote meant "is this okay by this orientation" < 1266105301 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :That makes my brain hurt :P < 1266105312 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pansexuality is basically bisexuality with both sexes having the same weight < 1266105313 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i didn't get her formalism at all < 1266105324 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: yeah, well I'm doing it in haskell. < 1266105328 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: it is _difficult_. < 1266105346 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :don't forget omnisexuality < 1266105348 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :alise: not really. < 1266105351 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: maybe you can abuse Show/Read derivation for it? < 1266105357 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :omnisexuality? does that exist < 1266105359 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :pansexual is the fancier version of bisexual, basically. < 1266105359 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :augur: then what do you consider pansexuality? < 1266105363 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well, yes < 1266105363 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but < 1266105368 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :thats how pansexuals use it. < 1266105372 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :bisexual = I potentially like people of both genders < 1266105378 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :because would be nice to have a word that actually means what pansexuality should mean < 1266105385 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pansexual = I do not consider gender when deciding whether I like someone < 1266105389 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :omnisexual = I fuck everything < 1266105389 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :panisexual: attracted to bread < 1266105390 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :is the "official" definitionerition < 1266105393 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :alise: this is not the case. < 1266105399 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :augur: wikipedia agrees qed < 1266105401 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but yeah < 1266105403 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pansexual is a faggot term < 1266105405 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :...wait < 1266105414 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :well wikipedia is irrelevant. :P < 1266105430 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :thus is your mother. < 1266105430 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :biosexual: Attracted to anything living < 1266105433 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : Can't make a derived instance of `Show (Syntax t a)' < 1266105434 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : (Constructor `Sequence' does not have a Haskell-98 type) < 1266105437 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :god things annoy me today < 1266105437 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :fukkkkkkkkkkkkkkkk yuuuuuuuuu < 1266105449 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :shut up oklopol GOD!!! I can't belive you sometimes < 1266105452 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :maybe it's partly because my head hurts like hell < 1266105462 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :hexosexual: Attracted to six. < 1266105466 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :pansexual is so stupid :( < 1266105470 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I hate that word < 1266105478 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :alise: if you're going to be discussing these, please use the specific definitions of gender and sex < 1266105480 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: i vaguely recall someone doing something something typeclass polymorphic to get both directions of parsing in haskell. but maybe i'm confusing it with something else. < 1266105495 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :coppro: i'm basing it on a utopian world where people consider gender, not sex < 1266105508 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :admittedly for sexual relationships it needs ... somewhat of an adjustment < 1266105512 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :exercise for the reader < 1266105520 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :alise: regarding bidirectional parsing, i presume you mean from either end of the input string? < 1266105527 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :23:54 < oerjan> alise: sounds like something you'd do with prolog < 1266105533 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :Yes oerjan has a good point < 1266105540 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :quite a few programs you write as DCGs are invertible < 1266105556 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :augur: no, I mean that one syntax definition generates both a parser and a printer < 1266105572 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :basically imagine String->a, to generate a->String you just swap LHS and RHS, basically < 1266105585 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it's like that, with all the difficulties I omitted, with lots of extra trouble because parsers aren't that simple in actuality < 1266105599 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :you can't swap LHS and RHS>..