< 1265587221 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*Main> System.IO.UTF8.putStrLn $ pretty idL < 1265587221 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(λα : (α : ★) → (β : α) → α. α) < 1265587230 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*Main> System.IO.UTF8.putStrLn $ pretty consL < 1265587231 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(λα : (α : ★) → (β : ★) → (γ : α) → (δ : β) → (ε : ★) → (θ : (ζ : α) → (η : β) → ε) → ζ. (λβ : (ι : ★) → (κ : θ) → (μ : ι) → (ν : ★) → (π : (ξ : θ) → (ο : ι) → ν) → ξ. (λγ : (ρ : ο) → (σ : π) → (τ : ★) → (χ : (υ : ο) → (φ : π) → τ) → υ. (λδ : (ψ : φ) → (ω : ★) → (γ′ : (α′ : υ) → (β′ : φ) → ω) → α′. (λε : (δ′ : ★) → (η < 1265587231 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :′ : (ε′ : ω) → (ζ′ : α′) → δ′) → ε′. (λζ : (κ′ : (θ′ : γ′) → (ι′ : δ′) → η′) → θ′. ζ γ δ)))))) < 1265587234 0 :MizardX-!~MizardX@unaffiliated/mizardx JOIN :#esoteric < 1265587311 0 :adam_d_!unknown@unknown.invalid QUIT :Quit: Leaving < 1265587394 0 :MizardX!unknown@unknown.invalid QUIT :Ping timeout: 276 seconds < 1265587413 0 :MizardX-!unknown@unknown.invalid NICK :MizardX < 1265587625 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: in a dependent lang the function arguments to church numerals don't have to be a->a do they < 1265587632 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :pretty? < 1265587633 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :they just have to be (something which includes b)->b < 1265587644 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: prettifies a dependently-typed lambda calculus AST < 1265587658 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is already confused < 1265587726 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: just go along with him < 1265587730 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :*her < 1265587769 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :well that's a subtype of b->b isn't it < 1265587828 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hïrm < 1265587860 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: right < 1265587864 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*Main> System.IO.UTF8.putStrLn $ pretty (church 0) < 1265587864 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(λα : (α : ★) → (γ : (β : α) → α) → (δ : α) → α. (λβ : (ζ : (ε : δ) → δ) → (η : δ) → δ. (λγ : (θ : ε) → ε. γ))) < 1265588111 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Something's broken... < 1265588302 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*Main> System.IO.UTF8.putStrLn $ pretty (church 50) < 1265588302 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(λα : (α : ★) → (γ : (β : α) → α) → (δ : α) → α. (λβ : (ζ : (ε : δ) → δ) → (η : δ) → δ. (λγ : (θ : ε) → ε. (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β (β γ))))))))))))))))))))))))))))))))))))))))))))))))))))) < 1265588481 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*Main> System.IO.UTF8.putStrLn $ pretty trueL < 1265588481 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(λα : (α : ★) → (β : α) → (γ : α) → α. (λβ : (δ : γ) → (ε : γ) → γ. (λγ : (ζ : δ) → δ. β))) < 1265588481 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*Main> System.IO.UTF8.putStrLn $ pretty falseL < 1265588481 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(λα : (α : ★) → (β : α) → (γ : α) → α. (λβ : (δ : γ) → (ε : γ) → γ. (λγ : (ζ : δ) → δ. γ))) < 1265588521 0 :BeholdMyGlory!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1265588545 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :"As an alternative to the encoding using Church pairs, a list can be encoded by identifying it with its right fold function." < 1265588546 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Me likey. < 1265588560 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :can you define foldl with foldr? < 1265588657 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1265588671 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise but why would you... < 1265588695 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: if a list is defined as its foldr... < 1265588701 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :what oerjan said < 1265588710 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :defining things as their natural functions is a nice thing < 1265588720 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :like Maybe a is b -> (a -> b) -> b < 1265588728 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Either a b is (a -> c) -> (b -> c) -> c < 1265588733 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(a,b) is (a -> b -> c) -> c < 1265588734 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :etc < 1265588740 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it's one of those anamorphism or catamorphism things < 1265588743 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: what's the definition btw? < 1265588751 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION cannot remember which is which < 1265588762 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm lessee < 1265588786 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :foldl' f b0 as = foldr (\a k b -> k (f b a)) id as b0 < 1265588787 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :apparently < 1265588805 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :why the ' ? < 1265588811 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :that's what the LtU person called it < 1265588813 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :just not to clash < 1265588815 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :not for strictness afaik < 1265588818 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1265588819 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :they failed :P < 1265588821 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(at not clashing) < 1265588827 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1265588859 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i'm beginning to realise why nobody uses the dependently-typed lambda calculus as a core language < 1265588864 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(it's frickin' verbose and opaque!) < 1265588881 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :um < 1265588889 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :you cant encode data types by the folds < 1265588900 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you can represent a list as its foldr < 1265588908 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :it doesnt' work < 1265588911 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yes, it does < 1265588922 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :sure you can. it's how it's done in System F iirc < 1265588928 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :map, foldl, head, tail, ... can all be implemented with juts foldr < 1265588930 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*just < 1265588943 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :also: http://en.wikipedia.org/wiki/Church_encoding#Higher-order_function < 1265588990 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: also is it just me or does prolog solve the expression problem? < 1265588991 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :maybe < 1265589010 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :prolog has no static types. < 1265589020 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :without which, it is much easier < 1265589024 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :iiuc < 1265589050 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I don't think there's any point me linking to a research problem that proves what I am saying if you already know that I am wrong < 1265589083 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: well, do link < 1265589094 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but i'm fairly sure oerjan and wikipedia, and facts back me up on this < 1265589133 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.32.4355 < 1265589165 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :note that this foldr encoding of lists applies to when lists have all elements the same type, like in haskell < 1265589170 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: i'm just talking about lists < 1265589184 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :yeah I knew it was pointless < 1265589190 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :sigh < 1265589200 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i don't think you understand what i'm saying < 1265589201 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :data Nat : * where < 1265589202 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric : Z : Nat < 1265589205 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric : S : Nat -> Nat < 1265589208 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :data List : * where < 1265589210 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric : nil : List < 1265589217 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric : cons : a -> List -> List < 1265589221 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :same thing < 1265589243 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ACTION knows how to bug alise... hehehe < 1265589252 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :How? < 1265589271 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: so, are you saying that map isn't implementable with just foldr? what about foldl? head? tail? < 1265589281 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :by insisting that C# solves the Expression Problem < 1265589289 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :you can do whatever the fuck you want in haskell or untyped lambda calculus or wikipedia < 1265589297 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :what does that have to do with it < 1265589341 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :coppro: >_< < 1265589351 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :it comes close < 1265589353 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: because you are being opaque about what you are actually trying to state to me < 1265589367 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :coppro: can you add new methods and have them work on existing members of a type hierarchy? < 1265589380 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :alise: Yes, they're called extension methods < 1265589387 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I think it's more a case of you already have your mind made up < 1265589392 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :they're just glorified functions, but okay < 1265589398 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :that doesn't really count :P < 1265589407 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: I haven't and I'm trying to get the information out of you, dammit < 1265589422 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :they are < 1265589422 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :and you seemed to read an entire research paper in the amount of time it takes to read its title < 1265589433 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: um so whether you can define a data type using a foldr might depend on your type system. what does that have to do with what we are saying? < 1265589442 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :but does the semantic difference of what is and isn't a member of a type matter? < 1265589443 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: i read the abstract < 1265589449 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :usually that summarises what the paper concludes. < 1265589455 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :other than the verbosity < 1265589459 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :coppro: yes < 1265589469 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :alise: explain < 1265589476 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :coppro: access to private fields < 1265589482 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :QED < 1265589504 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it's equally clear that in the System F type system people _have_ defined list types as their corresponding fold types < 1265589513 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :this thread of discussion has got murky and clouded with assumptions so lets clear it and we can start again < 1265589540 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :alise: that isn't required < 1265589549 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :coppro: well nothing is required < 1265589557 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the expression problem doesn't reduce a language's power < 1265589561 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it reduces its expressivity < 1265589585 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wonders why the idiot decided to refer to it as being solved, when it really isn't < 1265589599 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :I'd argue prototype systems come closest to solving it < 1265589601 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :What idiot? < 1265589609 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :The author of the .txt file? < 1265589610 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :alise: Wadler < 1265589613 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :O_O < 1265589616 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :You just called Wadler an idiot. < 1265589650 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Firstly, Wadler is a great computer scientist who came up with using monads in programming and many aspects of Haskell's design. < 1265589651 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :he was an idiot when he decided to refer to it as being solved < 1265589654 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :or solvable < 1265589660 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Secondly, he didn't. He presented *one solution*. < 1265589671 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :It allowed you to add both rows and columns. < 1265589673 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :That is a solution of the problem. < 1265589681 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :It may not be the best or even a good solution, but it is a solution. < 1265589700 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :in that case I contend that C# has solved it < 1265589725 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :No. < 1265589726 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Private fields. < 1265589773 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :I contend that those do not matter < 1265589808 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Nothing matters. < 1265589814 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :It is a problem of convenience and expressivity, not power. < 1265589823 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :So either obey all the rules or obey none. < 1265589834 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :If it wasn't about private fields, *every* OOP language would solve it. < 1265589844 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(In an awful, kludgey way, of course.) < 1265589861 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :you have to "add new cases to the datatype and new functions over the datatype" < 1265589864 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :Summary: In lambda caculus you can define data types (including higher order ones like the syntax of lambda caclculus itsself using the Scott encoding, in Haskell you can't use this because it doesn't typecheck but data types are isomorphic to the folds (but the algorithmic complexity of functions you define on the fold version is limited), in dependently typed calculus you can't use the fold encoding because you can't do induction on these types. < 1265589868 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :coppro: Anyway, if you add an extension method to a subclass, do you have to add it to all superclasses too? < 1265589883 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :Summray: In untyped lambda caculus**** < 1265589885 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :If you add an extension method to a superclass, do you have to make separate definitions for each subclass? If not, then it is not solved. < 1265589888 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :alise: Actually, that I'm not sure about, and would be fatal to the Expression Problem < 1265589892 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise, oerjan ^ < 1265589894 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :but access to private members is not fatal < 1265589930 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :Interestingly enough, prototype systems take it one step further < 1265589955 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :i just spent about half an hour to an hour shoveling snow < 1265589971 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :par for the course < 1265589982 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :GRAR UPPER BODY STRENGTH < 1265589986 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :HULK SMASH SNOW < 1265590018 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: kay :P < 1265590023 0 :cheater2!unknown@unknown.invalid PRIVMSG #esoteric :you are the snow shovelar! < 1265590031 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :coppro: But yes, I just realised that's why it doesn't solve it. < 1265590033 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :prototype systems let you define new functions over individual objects < 1265590040 0 :Wareya!unknown@unknown.invalid QUIT :Read error: Operation timed out < 1265590042 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :coppro: In a real-life table of numbers, < 1265590044 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :i'd shover your snow ;o < 1265590048 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I typed that all out and you're not even going to read it? < 1265590051 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you can't just add a column, put one number in, and pretend all the rest are that number < 1265590057 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :You have to fill in each separately, considering each row < 1265590079 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: I read it < 1265590090 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: why do you assume I did not? < 1265590096 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ah, true < 1265590112 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ACTION motions quietly in the direction of Python < 1265590113 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :coppro: admittedly, normal OOP systems fail at this with rows too by inheriting methods; but that's less bad, since it's just one row being affected < 1265590121 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :rather than a nuclear holocaust of oppression as in adding a column < 1265590156 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :alise: why does inheriting methods screw it up? < 1265590165 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :wait, it doesn't < 1265590176 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :with the column fuckup you enter one and it magics into the other rows < 1265590181 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but with method inheritance, there's no entering+copying < 1265590184 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it's just regular inheritance < 1265590185 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1265590210 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Incidentally, language implementations with a solution of the expression problem are godly in their ease-of-organisation. < 1265590225 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ok, here's a fun one < 1265590237 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :Erlang < 1265590241 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Adding a new construct? You can do it in one module: add a row to the AST type, implement all the columns (like "compile", "prettyprint"), add it to the parser, and you're done. < 1265590244 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :oerjan? < 1265590247 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :(note: I know it doesn't solve it. I'm asking you to describe why ont) < 1265590247 0 :Wareya!~wareya@cpe-74-70-140-214.nycap.res.rr.com JOIN :#esoteric < 1265590248 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :*not < 1265590258 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise because you didn't even argue < 1265590260 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :It becomes organised by feature, not by phase. < 1265590269 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: because you're probably right :P < 1265590278 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :coppro: Erlang isn't strongly-typed; mu < 1265590290 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well. you can't add pattern-matching cases to a function in erlang, too < 1265590301 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so even if you arbitrarily said {foo,2} is your new row, you can't fill in the columns < 1265590307 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :yeah, it fails pretty hard < 1265590314 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :funny for a functional language though < 1265590324 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :adding new types is the easy bit < 1265590333 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well, since it's not statically typed you can think of it as being able to add rows < 1265590338 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it's just that you don't have to declare the rows you add :) < 1265590339 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: well as i said it means it doesn't work in all type systems. perhaps it's a general problem for all dependent ones, i don't know. < 1265590347 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :er < 1265590348 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :wait < 1265590348 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :no < 1265590350 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it can add columns < 1265590352 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but definitely not rows < 1265590353 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :right < 1265590355 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :like most functional languages < 1265590376 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the expression problem only really makes sense with static typing < 1265590406 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :coppro: i was expecting you to be more "coool" at my thing about language implementation organisation :( < 1265590425 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :sorry < 1265590433 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :ehird < 1265590433 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1265590437 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :alise* < 1265590442 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ha, i was just about to < 1265590472 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :are you considering designing a language which has a very easy solution to the expression problem? < 1265590479 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :food -> < 1265590504 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :augur: i'm considering including my nice syntax for my solution in my language < 1265590508 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and making _all_ types tables < 1265590517 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(although of course you have to export the table part to get it extensible by others etc) < 1265590534 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :all ADTs that is < 1265590546 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :I wonder if the ability to subclass could be considered a requirement < 1265590558 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :no, just extend the type < 1265590559 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1265590570 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :subtyping in OOP extends the parent type, because you can use the subclasses as their parents < 1265590571 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :or have type extensions of some sort < 1265590576 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1265590578 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1265590579 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :that's adding rows < 1265590582 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well < 1265590586 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :adding row = extending type + filling in columns < 1265590595 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :adding column = making function + filling in rows < 1265590600 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :with covariance or contravariance? < 1265590609 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :COMONADS AND CONTRAMONADS < 1265590617 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :coppro: I don't see why? < 1265590624 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :alise: no, I mean which < 1265590629 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :er I was thinking of the wrong meaning of covariance :D < 1265590641 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :coppro: no, all the extensions are considered equal < 1265590649 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :subtyping in OOP just happens to do this, it isn't the optimal way < 1265590656 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the optimal way is simply adding constructors to an existing data type < 1265590657 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :subtyping in OOP is covariant < 1265590661 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :(usually) < 1265590670 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yes, but it doesn't matter for the expression problem < 1265590676 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :but it does < 1265590678 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :subtyping is a more general operation than what you need for the expression problem < 1265590685 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :with the expression problem, all are = < 1265590707 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :what does one define as "adding new cases to the datatype"? < 1265590737 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :data Foo a = Abc Int a < 1265590741 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :data Foo a = Abc Int a | Bar a a < 1265590744 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :data Foo a = Abc Int a | Bar a a | Quux Int String < 1265590772 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ACTION realises something < 1265590783 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :alise: Why doesn't simple composition not qualify? < 1265590786 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :my language probably has almost as many features that almost all other languages don't have, as common features < 1265590788 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :*does < 1265590795 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :coppro: it does i think? < 1265590814 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :well you just said that extension was necessary < 1265590822 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well it has to extend the original type < 1265590823 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :unless we were talking about different definitions of extension < 1265590828 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :because you fill in the columns < 1265590830 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :people in haskell are mean < 1265590832 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and you can't change the type of the columns < 1265590834 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :#haskell < 1265590835 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :it's an overloaded word I think < 1265590839 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :dependent types, mixfix operators, extensible syntax, partiality as an effect, heavy unicode usage, < 1265590847 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :solution to the expression problem, < 1265590848 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :... < 1265590865 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :alise: what do you mean "fill in the columns"? < 1265590877 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :when you add a new row < 1265590884 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you have to implement all the functions (columns) < 1265590885 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :for that row < 1265590900 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :again, think of a real table of numbers < 1265590909 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :I don't think that's a requirement < 1265590909 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if you add a row, you have to fill in the values for its columns < 1265590915 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :since many functions can't be implemented < 1265590919 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if you add a column, you have to fill in the values for its rows < 1265590923 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :coppro: all the functions previously added < 1265590924 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the columns < 1265590932 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is beginning to suspect you don't understand the problem... < 1265590934 0 :coppro!unknown@unknown.invalid PART #esoteric :? < 1265590940 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :uh, bye. < 1265590941 0 :coppro!~coppro@unaffiliated/coppro JOIN :#esoteric < 1265590943 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :wb < 1265590947 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :did you miss anything? < 1265590949 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :alise: I do understand it < 1265590950 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :no < 1265590954 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :wait < 1265590959 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :do you have the link to my explanation? < 1265590961 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I'll show what I mean < 1265590964 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :no < 1265590965 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :I don't < 1265590974 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1265590994 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :AFAICT, we're currently arguing over the specification of the problem < 1265590997 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i need the explanation though :P < 1265591002 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i could search the logs I guess < 1265591014 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :coppro: well, I'm 99.9% sure I've described the problem correctly < 1265591028 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :alise: I'll wait on your explanation before saying more < 1265591035 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :just to check < 1265591039 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you have read http://pastie.org/812459.txt?key=cadkhg4ho0qiceepz1a7w right? < 1265591046 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :might be good to read it again :P < 1265591052 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(I wrote it) < 1265591100 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :slight hinting + greyscale antialiasing makes linux typography okay, yay. < 1265591149 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :alise: yes, I agree < 1265591159 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :with the antialiasing thing? < 1265591165 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :no, your explanation < 1265591168 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ah :P < 1265591175 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :however, I also see our disagreement < 1265591188 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :you're considering it as an isolated case; I'm considering every function and type as a whole < 1265591226 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :? < 1265591230 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :add more jargon to that < 1265591233 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it's too vague < 1265591234 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :e.g. there is an comparison function which is defined for numbers, but not for lists < 1265591250 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :whereas there is a function to get the first element of a list that is not defined for numbers < 1265591285 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :a table is a type, by the way < 1265591290 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :rows = members of that type < 1265591293 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :columns = functions on that type < 1265591295 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1265591300 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :okay, that's what I was missing < 1265591303 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :rows are data, columns are functions < 1265591304 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :tables are types < 1265591394 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :now things make more sense :) < 1265591436 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yeah the "some functions aren't implementable" thing was confusing me < 1265591462 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :also, note that not every function on a type needs to be a column; if it doesn't access the data directly and is just a composition of columns and other non-column functions, it doesn't change definition depending on the row < 1265591474 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :hey alise, will you be on next week? < 1265591481 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :wend < 1265591485 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: End, yes; why? < 1265591495 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :well just wondering like if you aren't < 1265591499 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :then ? < 1265591508 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :coppro: this adds slight awkwardness to the typical functional style because you have to declare column functions specifically; I'm considering inferring it < 1265591520 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(pattern match = Damn nigga, you sum columnic function) < 1265591535 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: Then what? You mean if they find out and imprison me in a fortress for 100 years? < 1265591572 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :okay so you're not worried < 1265591621 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Not particularly. They know I can program and like being on the computer (which I wave away with "talking on IM? yeah, yeah, that. no, not Facebook") but I don't think they know I have any sort of web prescense, so them googling for me is unlikely < 1265591640 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :If they don't do that, how will they find out? The incriminating thoughts have been in my head since the first few days and they don't seem to have read them yet. < 1265591674 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :If I'm not on this week or next week, well... what can you do? Nothing, really. < 1265591682 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Rest assured I won't be personally giving up, so... < 1265591752 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :We'll just assume your Finnish internet connection isn't set up :P < 1265591787 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Internet connection is the only thing going for Finland over Sweden and Norway. < 1265591797 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I'm adamant about not working for the military, so it's out :P < 1265591812 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(Even though by 18 I'll be a senior professor of awesome at MIT.) < 1265591841 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :I thought you weren't going to the USA? :P < 1265591914 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :All the excellent CS universities are in America. I could, at least, stand Massachusetts. :-P < 1265591928 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Also note that I may have been joking a wee bit, what with the senior professor of awesome thing. < 1265591936 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :*gasp* < 1265591952 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :clearly this is the difference between male and female ehird < 1265591978 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yeah the male one never joked < 1265591979 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Yes; female alise would never be promoted to Senior Professor of Awesome because of SEXISM < 1265591996 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Also, hey, who says I'm female! Just because I'm referring to myself with female pronouns! < 1265592010 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :It's sexism to mandate that only one sex can use one set of pronouns. < 1265592020 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it's the (s)h/it, man < 1265592337 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Why did classic Clearlooks become modern Clearlooks? < 1265592340 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Old Clearlooks is far prettier. < 1265592820 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :alise: they'll have to create that professor for you, i think < 1265592887 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Professor. Ingredients: 50 bananas/day. 25 cups of coffee/day. 1 Ph.D. Mix until of a frazzled and messy consistency. Cook for 30 minutes at 30 Celsius. < 1265592915 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :or, if a physicist, at 300 K < 1265592995 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yes physicists are cold, horrible people < 1265592997 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :is that what you meant? < 1265593009 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :3.15 degrees make all the difference < 1265593022 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hmm, so the difference between a physicist and a mathematician is ~pi < 1265593027 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :makes sense. < 1265593040 0 :Asztal!unknown@unknown.invalid QUIT :Ping timeout: 258 seconds < 1265593111 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ACTION cackles < 1265593130 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :wat. < 1265593147 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :I'm trying to freeze the physicists < 1265593190 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :xD < 1265593207 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yeah 26.85 degrees is freeeeeeeezing < 1265593213 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :I know I'll never get rid of their energy entirely, but I'll get rid of what I can < 1265593227 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :coppropy < 1265593250 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :then I shall design a mysterious and inexplicable device with their zero-point energy < 1265593348 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :hmm... in what language should I write my text visualizer? < 1265593507 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Haskell. < 1265593518 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :cobol < 1265593519 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :"text visualizer"? < 1265593520 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :Already had your reply written down < 1265593526 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I already have one of those < 1265593531 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :The whole program essentially boils down to "vis s = map tile s", after all. < 1265593543 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Indeed, with FRP, you could write literally that. < 1265593546 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :to start, yeah < 1265593564 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Okay then, "vis tiles s = map (tile tiles) s". < 1265593610 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :yes, I get it :P < 1265593619 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :I'm strongly considering Haskell < 1265593620 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Well, it's not "to start with", it's pretty close to all you need. < 1265593629 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :alise: I intend to add more features < 1265593635 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Of course, but the actual tiling part. < 1265593637 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :screw Unix < 1265593649 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :coppro: If you do, please do consider using an FRP toolkit. < 1265593657 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :You don't have to worry about updating the rendering on its changing or anything. < 1265593662 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :alise: Yes, that seems like a good idea :) < 1265593663 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(FRP is basically event-based programming, but functional) < 1265593690 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :coppro: Unfortunately, most FRP implementations suck. :-) < 1265593708 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I don't know if GuiTV lets you do arbitrary graphics, but look at http://www.haskell.org/haskellwiki/TV for the sort of thing that would help updating < 1265593738 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(TV is conal's plaything, and conal is one of the main FRP dudes; he was writing papers about it from the start) < 1265593756 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :coppro: So what kind of features are you considering? < 1265593760 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Here's something that would be cool: < 1265593787 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :alise: changing tile images based on surroundings, possibly editing < 1265593793 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :You could tell it to run the command "nethack", with a definition file that says the area of the screen (coords of the map) is to use tileset foo, and the rest is to use tileset (a simple bitmap font). < 1265593802 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :It'd interpret the vt100 codes and send your keypresses, and voila! < 1265593806 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :yeah, that was on the 'lofty goal' bit < 1265593809 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Graphical nethack in a few lines and some drawing! < 1265593814 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :vt100 codes are very simple, so < 1265593818 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1265593823 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :was thinking that /exact/ thing, actually < 1265593823 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you could even use termcap/whatever to make them send ones easier for you < 1265593833 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :not that I'd actually use it for nethack < 1265593850 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :writing apl :P < 1265593856 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1265593866 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :given a program that compiles ascii characters to apl chars < 1265593879 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you could arrange the apl chars to the alphabet etc on your keyboard to your liking like the old apl keyboards, and just type away < 1265593907 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I like APL < 1265593911 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :where should I start with actually learning Haskell Syntax? < 1265593924 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :coppro: You should learn Haskell in one go. :-) < 1265593926 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :coppro, f x y z is what you'd normall write like f(x,y,z) < 1265593931 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :alise: yes, but where < 1265593934 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://learnyouahaskell.com/ is an excellent starting point. < 1265593934 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :except that its ACTUALLY (((f x) y) z) < 1265593945 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :thank you for telling me what currying is < 1265593949 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :It's practical, simple to understand and amusing. < 1265593956 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :I like the elephant < 1265593957 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: coppro is rather beyond that stage < 1265593962 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :coppro thank you for learning the first thing about haskell syntax < 1265593982 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :I also happen to sort-of understand monads < 1265593986 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :coppro: learn you a haskell doesn't actually explain monads yet, but surely you've picked up what a monad is by now? < 1265593988 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ha < 1265593995 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ESP too :P < 1265594000 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :what I wrote has nothing to do with monads < 1265594006 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :I know that < 1265594008 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :that was the reverse state monad < 1265594013 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://lukepalmer.wordpress.com/2008/08/10/mindfuck-the-reverse-state-monad/ < 1265594016 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(it passes state backwards in time) < 1265594047 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :hmm... LYAH says it's aimed at someone who hasn't done functional programming < 1265594056 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :doesn't matter < 1265594059 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it works for someone who has too < 1265594060 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1265594071 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it just might be a little easy at first :P < 1265594079 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :remember that style is important in haskell, though < 1265594089 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it's easy to write bad haskell code, and it often looks like good code in other languages. < 1265594095 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(because they're less expressive) < 1265594100 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :if coppro doesn't like reading things he already knows he should just learn Haskell from the Report < 1265594102 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so paying attention to what it does is probably a good idea < 1265594122 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I think A Gentle Introduction is harder to read than the Report :-) < 1265594125 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :the highest signal ratio you will get is from the report < 1265594135 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :yeah it is but he flipped out when I mentioned currying < 1265594138 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :alise is right though; style is everything < 1265594148 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: he didn't < 1265594156 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :so he probably wont be able to handle LYAH < 1265594159 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :he was just pointing out, sardonically, that he was rather beyond that stage < 1265594165 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :chill :P < 1265594198 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :"Haskell was made by some really smart guys (with PhDs)" <-- excellent. An important feature to any language. < 1265594208 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Hey, I don't have a Ph.D. < 1265594215 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1265594255 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :just steal ideas from PhDs then, that's what I do < 1265594259 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ditto < 1265594262 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1265594272 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :later, I'll pay them to make a proof of soundness for me to steal. < 1265594275 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :like TeX < 1265594287 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :wat < 1265594292 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :TeX is pure genius. And it was made by a guy with a Ph.D. Coincedence? < 1265594305 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Ehh, TeX has flaws :P < 1265594312 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :how TeX is pure genius? < 1265594320 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it's good though, just not "pure genius" < 1265594322 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Objective-C. /me yawns. < 1265594325 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I thought it was pretty much just a good tool that needed to be made < 1265594328 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :coppro: you do realise you can get a Ph.D. in theology, right? :D < 1265594442 0 :MissPiggy!unknown@unknown.invalid QUIT :Quit: Lost terminal < 1265594480 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the top two things missing from haskell: < 1265594485 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :1. Dependent types < 1265594491 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :2. A powerful (ML-style) module system < 1265594510 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :1 would in fact remove the need for many other features (like foralls and typeclasses) and even go a long way to solving 2 :P < 1265594520 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :doit < 1265594529 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I'm no dolt! < 1265594539 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(http://folklore.org/StoryView.py?story=Do_It.txt) < 1265594543 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but, err, what < 1265594568 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :go fix Haskell :P < 1265594586 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I'm doing that! Sort of. < 1265594593 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :By making an entirely new language with lots of things from Haskell. < 1265594614 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :quick, someone explain why negative numbers must be in parens < 1265594641 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Haskell needs typeclasses? < 1265594654 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :coppro: because f -3 is f - 3 < 1265594663 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1265594664 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :I've pondered emulating typeclasses in Agda and decided that Agda without typeclasses would be superior to Agda with typeclasses. < 1265594668 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :that's haskell's first dirty little secret :) < 1265594674 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :uorygl: haskell doesn't "need" them < 1265594688 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :alise, DoIt < 1265594688 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :implicit arguments + records/modules > typeclasses < 1265594698 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the former almost always comes with dependent types. < 1265594715 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :alise: knowing nothing, I'm going to guess that operators are just identifiers and arithmetic is a curried expression template? < 1265594716 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :data Monad m = Monad {return :: forall a. a -> m a; . . .} < 1265594726 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :coppro: (symbols) is an infix operator < 1265594728 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(+) :: ... < 1265594736 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :aw, I'm wrong :( < 1265594743 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :arithmetic is just a function :P < 1265594751 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :uorygl: yes, but you have to specify that every time :) < 1265594755 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but yes, that + implicit arguments = tada < 1265594758 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :if/then/else is more than just a function :( < 1265594760 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :yeah, but I was thinking it would be smalltalkish < 1265594763 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: not in agda! < 1265594765 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :coppro: howso < 1265594768 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :((1 +) 2) < 1265594777 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(1 +) works, so does (+ 2) < 1265594782 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you can think of (1 + 2) like that if you want. < 1265594782 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :coppro, you can do that in Haskell < 1265594799 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :I guess I'll read a bit more before adding additional comment < 1265594805 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :coppro: there's also "infix[lr] symbols N" which defines associativity and precedence < 1265594864 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1265594886 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :agda does operators far better < 1265594896 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if_then_else_ is how you define the conditional operator (syntax in haskell) < 1265594901 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :_+_ is addition, etc < 1265594939 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :yeah, I know, I read that bit of Agda < 1265594950 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :languages that modify their own syntax always scare me though < 1265594988 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it isn't modifying syntax < 1265594991 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :not really < 1265595015 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you could view it as agda parsing to a very linear form at first < 1265595020 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and the rest being semantics, not syntax < 1265595030 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :anyway, it isn't full syntax modification < 1265595057 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :still makes me squeamish < 1265595080 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I find syntax modification slightly creepy but I just see mixfix as a generalisation of prefix, infix and postfix operators < 1265595090 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :after all, you can emulate if a then b else c with if a then (b else c) < 1265595105 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so the only "big" change is allowing non-symbols in operator names, which means you can't know for sure what's an operator at parse-time < 1265595119 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :right < 1265595170 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :We should make a language where syntax modification is critical to use, or something < 1265595175 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :No :P < 1265595189 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :coppro: I might have to be up at 8, but probably not. Probably more like 9-10. < 1265595193 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :it's called Perl < 1265595198 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I should probably think about bed sometime. < 1265595203 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :probably < 1265595205 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :But I'm stupid, so I won't :D < 1265595206 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :see you Friday < 1265595222 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Bleh. LYAH's code samples have invisible _ < 1265595256 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://esolangs.org/wiki/Defcalc < 1265595259 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I like this language < 1265595261 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: invisible? < 1265595269 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :alise, I can't see them < 1265595273 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :For some reason < 1265595278 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Get some glasses < 1265595288 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :They look like spaces < 1265595298 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :line height or sth probably < 1265595378 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :http://i.imgur.com/sMKlv.png < 1265595503 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :There's supposed to be underscores there? < 1265595521 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Ah. < 1265595521 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1265595523 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :I love the wiggler diagram of the list < 1265595531 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(Underscore means "ignore this argument".) < 1265595548 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :coppro: link? < 1265595551 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Nothing <*> _ = Nothing < 1265595558 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :alise: http://learnyouahaskell.com/listmonster.png < 1265595565 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Not space, like it appears in the screenshot < 1265595576 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :coppro: ah yes < 1265595578 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i think that's new since I read it < 1265595610 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :A list is a curious monster. < 1265595624 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :why is == [] bad? < 1265595649 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :coppro: requires the content type to be comparable with == < 1265595649 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :because it's "null xs" < 1265595654 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :also that < 1265595660 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(Eq a) => Eq [a] < 1265595670 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so you can't compare two lists of incomparable elements, so you can't do == [] on them < 1265595676 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :null, otoh, uses pattern matching, and so is fine < 1265595698 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :[1] == [] works fine for me < 1265595708 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :that's because you can compare numbers. < 1265595715 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :sure, but try [sin] == [] ... < 1265595724 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1265595858 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :"Mapping and filtering is the bread and butter of every functional programmer's toolbox. Uh." --LYAH < 1265595888 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :that "Uh." in the actual quote? < 1265595894 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1265595899 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1265595908 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(if you're confused, whoosh) < 1265595911 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Ah, B0NUS' writing. < 1265595924 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*BONUS < 1265595926 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :His name is BONUS. < 1265595931 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :One of the better language tutorials I've read in general. < 1265595934 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :never mind his writing, take a look at his twitter < 1265595935 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://twitter.com/bonus500 < 1265595953 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: well i read that as a possible sarcasm tag... < 1265595963 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: "bread and butter" "tool box" < 1265595986 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :well ok i did notice that too < 1265595999 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: That is one of the more amusing Twitters. < 1265596010 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :He emits twats on a daily occasion. < 1265596018 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Tee hee hee, twat. Ahem. < 1265596052 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :twit is destined to become a strong verb < 1265596073 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Twit, twit your twat's twat. < 1265596079 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :TRANSLATION < 1265596093 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Idiot, post (your vagina's posting to Twitter) to Twitter. < 1265596148 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i'll call 't wit < 1265596170 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I will sleep soon, I will sleep soon, I will sleep argh < 1265596193 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :any ops here? we should ban alise for hïrs own good < 1265596217 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hrs own good? What sort of grammar is that? < 1265596225 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :also, I'm only going to be affecting my performance in Hell. < 1265596243 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :might need to wake up at 8am, it's 2:30. but more likely 9 or 10 < 1265596244 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you might still want to show up on time... < 1265596273 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :If Elliot is anything like I, mobility and consciousness are detached. < 1265596277 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i'm just trying to make neutral pronouns by merging... < 1265596279 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*Elliott < 1265596282 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: only partly. :P < 1265596288 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And I presume that he merely needs mobility, and doesn't *desire* consciousness. < 1265596289 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: Show up on time? They come for you. < 1265596296 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I would just have to do without much sleep. < 1265596297 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh dear < 1265596309 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: oh, I can't be mobile without consciousness < 1265596320 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I find my mind sparks a lot while I'm sitting barely able to move my hands on the keyboard, though < 1265596326 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: Sounds like mobility isn't needed, either. < 1265596338 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I am expected to walk around and go to classes when I get there... < 1265596348 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Alas. < 1265596443 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I wonder if this chocolate will make me sleepy. < 1265596564 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :alise, they have classes there? < 1265596581 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: It is, nominally, a school. < 1265596591 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I would hardly be sane if I wasn't pumped with the idiotic national curriculum, would I? < 1265596597 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Actually, it's a "hospital" containing a school. < 1265596607 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Or rather, a branch of a metaschool with no physical location. < 1265596616 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(schools various newcastle hospitals.) < 1265596623 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :For the most part, the idiotic national curriculum is a good thing. < 1265596631 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :No. Hell no. < 1265596633 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Double hell no. < 1265596639 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Quadruple hell no. < 1265596647 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :O_O < 1265596662 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Remind me again how this is a bad thing? You're forced to stay nights, I think? I guess that makes it bad < 1265596665 0 :MizardX!unknown@unknown.invalid QUIT :Ping timeout: 248 seconds < 1265596684 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :The national curriculum of almost all - (all?) - countries actively inhibits learning for the intelligent. < 1265596692 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :alise: Oh, I agree < 1265596710 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :unfortunately, the majority of people are not 'the intelligent' < 1265596720 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: He was homeschooled. They believe he is in some manner or another mentally deficient. They are threatening to institutionalise him. < 1265596728 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Homeschooled, I object to that word. < 1265596746 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: 'Tis the word, though. < 1265596748 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I was not in a "school" at "home" nor was I taught by my parents as the word evokes. < 1265596755 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Ah. < 1265596763 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I did, however, learn a crapload more than I ever learned beforehand and stopped hating life. < 1265596777 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :So, then, your education more consisted of "Learn." < 1265596783 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :The thing about the public school system is that it inhibits teaching kids stuff like magic and religion. < 1265596790 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: Why it's bad: one, it is not voluntary, although it pretends to be, for I am under grave threat of institutionalisation; two, I should not be drinking the "nutritional supplement" I am; three, blah blah blah < 1265596815 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :I'm in a gifted program, which is all that kept me sane. Since I hit high school it's not as necessary for a number of reasons, though I'm still in the program < 1265596819 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :uorygl: Well, that is true. I don't think parents should teach their children; on average, people are pretty dumb, including parents. < 1265596830 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: I'd like to comment that I managed to get through "normal" education just fine. < 1265596842 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :*Granted*, I spent most of that time learning things for myself... < 1265596847 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :I somehow survived public schools. < 1265596852 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: the fact that I was also bullied intensely for almost my entire school career did not help. < 1265596853 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Hum, alise = ehird? < 1265596855 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :uorygl: Yes. < 1265596859 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :ACTION nods. < 1265596865 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :He got a sex change. < 1265596872 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :what, you don't whois everyone who joins the channel? < 1265596876 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: Oh. That hinders greatly. < 1265596878 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I can use a feminine name and pronouns while still identifying as male if I want to! < 1265596888 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :I whoised alise after I suspected e was ehird. < 1265596894 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :coppro: I don't have ehird or anything in my whois :P < 1265596895 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Such was my life in elementary school. < 1265596899 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :I did not recognize eir IP address. < 1265596923 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :uorygl: it says "identified as ehird" < 1265596928 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :oh, no it doesn't < 1265596932 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :e must have dropped that < 1265596932 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I suppose I seriously must bed myself soon; something like 5:20 hours of sleep if I sleep now and have to wake at 8. < 1265596936 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :9 or 10, maybe, probably. < 1265596943 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :But still. Perhaps 8. < 1265596949 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :So, very soon. Very very soon. < 1265596949 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :alise: so, you're made to stay nights at whatever this place is for the sole purpose of forcing you to drink whatever this thingy is? < 1265596951 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :I was bullied a lot before I switched into this program < 1265596958 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Uh, anyone have the link to the pastie? < 1265596964 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :Since then, I've learned that bullies are idiots < 1265596967 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Eh. I'll summarise. < 1265596973 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :If so, that's simply inefficient. Write the papers. < 1265596991 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :uorygl: I am mainly there because they believe I could not function in normal society because I am a recluse; they believe I am on the autistic spectrum, leaning to Asperger's, and probably have OCD. < 1265597004 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :They are, however, doing nothing to "fix" these things even if you accept them as diagnoses. < 1265597009 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Or, to use a less oddly ambiguous phrase, inform the media. < 1265597018 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :"His only crime was being born delicious!" < 1265597028 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Okay, that's more... understandable. < 1265597033 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Instead, based on the junk science of BMI and the fact that I'm quite below-average weight, just as my father was, < 1265597040 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :that's why they're doing the drink thing. < 1265597048 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :It's intended for people with disease-related malnutrition, so... yeah. < 1265597053 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I eat perfectly fine. < 1265597058 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :They're crazy. < 1265597058 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I thought everyone knew that BMI was little more than a guideline... < 1265597065 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :It's not even that! < 1265597069 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :a bad one at that < 1265597072 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :It was invented by a mathematician in the 1800s and was fudged to fit the data! < 1265597076 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :A poor one, though. < 1265597084 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :In the 1800s people barely exercised! Body mass was totally different! < 1265597085 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Aaaaaaaaaargh < 1265597094 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Have you seen a doctor about whether you're underweight or not? < 1265597100 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Anyway, I'd write to the papers but if it gets to the courts there's a chance I'll be sectioned there and then. < 1265597101 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :uorygl: it's all "doctors" < 1265597115 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :uorygl: I am "underweight" as in below average weight. < 1265597123 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :So was my dad at the same age until quite later on in his life. He ate fine too. < 1265597137 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Have you seen a GP about whether you're underweight or not? < 1265597151 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :No, but undoubtedly they had. < 1265597157 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :But nutrition science is bullshit. < 1265597166 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :uorygl: Pretty hard to when he's held there on weekdays. < 1265597169 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(Just ask Ilari, if you have a few hours. Fudged data for political reasons, outright ignored conclusions, ...) < 1265597188 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Anyway, since the media carries a risk of court which carries a risk of sectioning, the more foolproof option, moving country, is the one currently being persued. < 1265597189 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :You mean that if the courts find out that you wrote to the papers, they could use that as a reason for... whatever sectioning is? < 1265597196 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sectioning = institutionalisation. < 1265597199 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :ACTION nods. < 1265597207 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :The court could notice the case, examine it, and conclude I should be sectioned. < 1265597210 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*courts < 1265597218 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :they can actually do that? < 1265597227 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :without being referred to? < 1265597229 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :alise, how long could it take to prepare? Shouldn't you have been doing that this weekend? < 1265597233 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Well, if the courts don't notice or do anything with the case, why contact the media? < 1265597238 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :What would it accomplish? < 1265597240 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: What, moving? < 1265597242 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1265597244 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: He needs a passport. < 1265597255 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :We have the forms, I just didn't get round to getting my picture for the passport this weekend, oops. < 1265597258 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Next weekend we'll do it. < 1265597260 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Well, maybe you should go see a GP. < 1265597262 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :As far as planning, we don't need to do much. < 1265597265 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :uorygl: Why? < 1265597280 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: Issues with employment or anything? < 1265597286 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :To get a sympathetic viewpoint or something. < 1265597311 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :uorygl: Why? The mainstream opinion on stuff like this is bullshit that doesn't even consider family history, your frame or anything. < 1265597320 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Next weekend, shall I remind you to get your picture? < 1265597322 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :BMI has not been widely discredited, even though doing so could be done by an infant. < 1265597327 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: That would be good. :P < 1265597381 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: Believe it or not, this is less of a fucked up situation than some other things I've heard... There's been a few parents in the UK who were termed "unfit" to be parents for the sole purpose of meeting adoption quotas. < 1265597384 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Go see a GP because I'm curious whether the GP you see will be a real person or not? < 1265597387 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION goes to Google Calendar < 1265597396 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :uorygl: "Real person"? < 1265597400 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I am confused by your terminology. < 1265597413 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :The sort of person who would look at overwhelming evidence and not disagree with it. < 1265597431 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Ah. < 1265597458 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I'd much rather not waste any time and enact the plan ASAP; it's a soul-sucking place and I can't take much more. < 1265597475 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :ACTION nods. < 1265597486 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :But, uhh, I'm afraid my expectations of the health service are basically 0 after this. < 1265597505 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :How much time do you spend in this place? < 1265597509 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Monday to Friday. < 1265597533 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION writes stuff in Google Calendar that looks like vacation planning < 1265597534 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :It's not a place you go to in the week so much as home is a place you go to on the weekends. < 1265597540 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :ACTION nods. < 1265597591 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Indeed, the world is full of injustice and strangeness. Especially if you have Asperger's. < 1265597610 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :uorygl: The UK's handling of it is full-on retarded. < 1265597629 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :uorygl: I don't really believe Asperger's is a real mental condition in any form, especially in its modern, over-vagueised form. < 1265597639 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Maybe a silly synonym for "intelligent nerd". < 1265597666 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :I think I concluded at some point that if three things are mutually correlated, you can call them one thing. < 1265597676 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :I mean, I think the definition of a syndrome is a set of traits that tend to occur together. < 1265597679 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Maybe. But it's certainly not a mental illness. < 1265597693 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Well, it causes problems. < 1265597698 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Or even "worse" than allism (the opposite of autism; http://www.fysh.org/~zefram/allism/allism_intro.txt), I'd say it's better. < 1265597699 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :It's a mental difference :D < 1265597709 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Empathy is spooky emotion at a distance. :-) < 1265597710 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: It is, at most, a very mild form of disability. < 1265597724 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(mild) autism is certainly a more rational state than allism < 1265597744 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :In the past couple of days, I've felt significantly, perhaps severely, handicapped by Asperger's. < 1265597753 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Why? < 1265597788 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Social interaction is very, very hard... < 1265597799 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Only allistic social interaction. < 1265597805 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :With most basic reactions basically learned by rote. < 1265597806 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Well, yes. < 1265597811 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :It wouldn't be a disability if most people were autistic. < 1265597816 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Autistic social interaction is the most trivial thing in the world. < 1265597817 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :So it isn't a disability. < 1265597826 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :If you had a society full of retards, on the other hand... < 1265597829 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :That wouldn't work. < 1265597841 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Anyway, I may be biased by the fact that psychological conditions are defined by consensus among psychologists, not evidence. < 1265597848 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Which makes me go rawr and :(. < 1265597885 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :I've heard (ahem) that Asperger's causes akrasia to a degree much higher than that suffered by other people. < 1265597894 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :If we lived in a society where most people had wings and could fly, would not having wings be considered a disability? < 1265597899 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Howso? < 1265597903 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Hm, imperfect analogy < 1265597906 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :You can't be vague, uorygl, and expect everyone else to know exactly what you mean. < 1265597911 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Especially if it's based on personal experience. < 1265597912 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Where "akrasia" is stuff like addiction, procrastination, and generally acting against one's better judgement. < 1265597932 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :uorygl: Alas. < 1265597933 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :ACTION hugs Sgeo. < 1265597938 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I'd call an autistic person's obsession dedication or specialisation, not addiction. < 1265597950 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Is procrastination more prevalent in autistics? Prove it. < 1265597957 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Wings confer benefits even in a world where only one person has wings. < 1265597968 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: but autism/allism aren't utilities < 1265597973 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :they're different configurations < 1265597976 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: "Addiction" is, indeed, the wrong term... < 1265597994 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :is being a rabbit, not a snake, a disability? < 1265598010 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Addiction is something I don't really suffer from. < 1265598025 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :My dad thinks I'm addicted to the computer < 1265598031 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I'm addicted to the computers and the internet. Which just makes my weekdays stay in Hell all the more pleasant. < 1265598050 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Computers and the internet? Yeah, we have those. The computers are for schoolwork only and the internet censored. < 1265598064 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :The closest I get to programming is on paper. < 1265598069 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Procrastination, I do. I've only been able to complete three classes this year. < 1265598080 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: I've done some of my best golfing on paper. < 1265598083 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Assuming that I can finish the one class I have this semester. I probably can. < 1265598089 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: You can't evaluate paper. < 1265598093 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Heh heh, "addicted to the computer". < 1265598096 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :You can't do exploratory programming on paper. < 1265598103 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Sorry, *Brainfuck* golfing. < 1265598103 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :uorygl: Why the hehs? < 1265598123 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Which is exceptionally easy to evaluate, even with just a piece of paper and a pencil. < 1265598129 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: I do have to wonder if they'd allow a laptop without an internet connection, but it'd have to be a pretty damn cheap laptop to make that worthwhile. < 1265598130 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :"The computer" is not an activity; saying "addicted to the computer" is like saying "addicted to the exterior of one's house". < 1265598136 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :uorygl: Oh I agree. < 1265598144 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I've tried to explain to people that the computer is composite, not atomic. < 1265598162 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :How can people *not* understand that? < 1265598163 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :But the fact is that I don't really like to do X much, where X is most things that are not contained within the computer. < 1265598178 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Because they see you sitting in front of a screen typing and mousing in much the same way as you ever do. < 1265598179 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I mean, really. My computer gets used for a hell of a lot of things... < 1265598182 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Thus, it's one activity. < 1265598185 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I once helped someone by showing them the recent files in the File menu in Word < 1265598188 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(Yes, I know they don't see *you* mousing.) < 1265598194 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I read books, I read magazines, I read comics, I write programs, I chat... < 1265598197 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :She proceeded to refer someone who was having programming troubles to me < 1265598198 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I play video games... < 1265598201 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(mmm, emulator) < 1265598232 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you forgot pornography < 1265598233 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Watch movies, watch TV, listen to music... < 1265598240 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: Heheh. < 1265598246 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: Computer = one activity. You're good at programming = fix my computer. < 1265598264 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It's like the magic "Do everything" machine! < 1265598270 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :You're family/friend = I don't understand how it works, but I know how to use a keyboard and a mouse, so it's easy. < 1265598283 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Compare with painting: Most people don't know how to paint a picture of any real sort of caliber. < 1265598291 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :But you can easily tell a "real" painting, so they don't do that. < 1265598300 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :With computers, everything looks alike. To inexperienced users, that is. < 1265598348 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It's amazing how few people are even competent with computers, even today. < 1265598396 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And I don't even mean "have a concept of how it works", but even just "learn the basic working concepts of the UI or UIs they commonly use, so that they can readily figure things out." < 1265598399 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, I love it. < 1265598400 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i can't wait until we're all uploaded minds experiencing totally configurable virtual realities of our design < 1265598405 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it will be freakin' SWEET < 1265598407 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :It means I can show off without using my brain! < 1265598436 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: Hahahah. < 1265598452 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I'm shutting things down to leave... < 1265598456 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Bye < 1265598456 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :You have a few minutes, tops. < 1265598457 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1265598474 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: Gxis la revido, mia bonega amiko. < 1265598481 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Poo. < 1265598484 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :"la" revido? < 1265598497 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Also, what's -ega? < 1265598507 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :It's been a while < 1265598517 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :"Very". < 1265598520 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Ah < 1265598521 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Anyone have anything to say to me before I disappear for five days? < 1265598531 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: good luck < 1265598536 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: Thanks. < 1265598538 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: Retain thy sanity. < 1265598541 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :alise, may you retain your sanity < 1265598545 0 :jcp!unknown@unknown.invalid QUIT :Ping timeout: 260 seconds < 1265598547 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Sgeo: EXPOSED AT LAST < 1265598560 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Which one is the one created to fuck with me, pikhq or Sgeo? < 1265598563 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1265598576 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo. < 1265598581 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :wait which sense of "fuck" is this? < 1265598585 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I KNEW IT < 1265598589 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Bye, alise. :( < 1265598590 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :He doth not use the common tongue correctly. < 1265598597 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: "to mess with". < 1265598602 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: The sexy sense! By which I mean the sense in which someone is created to confuse me. < 1265598608 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :uorygl: Aww. Bye. < 1265598614 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :So long, suckers. If you don't keep the missing counter updated in the topic, I'll know you don't truly love me. < 1265598616 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1265598630 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Alise/ehird/Lord Bob Bobbington Bobbingson the Third, out. < 1265598635 0 :alise!unknown@unknown.invalid QUIT :Quit: Leaving < 1265598658 0 :pikhq!unknown@unknown.invalid TOPIC #esoteric :RIP sun.com | 2 days since last ehird sighting | 0 days since last alise sighting | http://tunes.org/~nef/logs/esoteric/?C=M;O=D < 1265598680 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :*facepalm* < 1265598706 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: ;) < 1265599014 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :argh, a dripping sound < 1265599307 0 :Gracenotes!unknown@unknown.invalid PRIVMSG #esoteric :okay, I'm just submitting my applied algebra homework with rendered latex and not caring that everyone else is using pencil+paper < 1265599315 0 :Gracenotes!unknown@unknown.invalid PRIVMSG #esoteric :so much easier to type it out < 1265599352 0 :jcp!~jw@bzflag/contributor/javawizard2539 JOIN :#esoteric < 1265599384 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :always add some commutative diagrams for good measure < 1265599396 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION cackles evilly < 1265599492 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :I wonder if I have any homework that's due tomorrow. < 1265599502 0 :Gracenotes!unknown@unknown.invalid PRIVMSG #esoteric :sadly nothing too abstract yet, just coding theory over binary n-tuples < 1265599522 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :My professor wants us to both submit the problems online and hand in a paper copy. So far, I think I've consistently done exactly one. < 1265599523 0 :Gracenotes!unknown@unknown.invalid PRIVMSG #esoteric :not too many structures to commute over < 1265599539 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you and oklopol and your coding theory < 1265599570 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION should learn LaTeX < 1265599577 0 :Gracenotes!unknown@unknown.invalid PRIVMSG #esoteric :also, I really need to write a Haskell module that autogenerates tabular based on a function < 1265599707 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Gracenotes: maybe http://hackage.haskell.org/packages/archive/tabular/0.1/doc/html/Text-Tabular-Latex.html ? < 1265599734 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION cackles evilly again < 1265599749 0 :Gracenotes!unknown@unknown.invalid PRIVMSG #esoteric :eh. that would involve using the table AST-y thing they provide < 1265599783 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1265599790 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION just googled anyhow < 1265599799 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: you should < 1265600635 0 :Gracenotes!unknown@unknown.invalid PRIVMSG #esoteric :hurrah, Visual Studio 2008 Professional Edition has been installed on my recently partitioned Windows 7 install < 1265600638 0 :Gracenotes!unknown@unknown.invalid PRIVMSG #esoteric :ACTION shoots himself < 1265600669 0 :Gracenotes!unknown@unknown.invalid PRIVMSG #esoteric :but if it's for computer game programming class... I might be able to forgive myself < 1265600682 0 :Gracenotes!unknown@unknown.invalid PRIVMSG #esoteric :also apparently recent versions aren't that bad at all < 1265600687 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :they aren't < 1265600742 0 :jcp!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1265600819 0 :jcp!~jw@bzflag/contributor/javawizard2539 JOIN :#esoteric < 1265600823 0 :Gracenotes!unknown@unknown.invalid PRIVMSG #esoteric :here is the site for it: http://mysbfiles.stonybrook.edu/~mgruen/cse380/project.html < 1265600862 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :is that the assignment? < 1265600900 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric ::( DirectX < 1265600912 0 :Gracenotes!unknown@unknown.invalid PRIVMSG #esoteric :the individual project, spanning the next month or so < 1265600991 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :neat < 1265601090 0 :Gracenotes!unknown@unknown.invalid PRIVMSG #esoteric :it all relies on the delay idea being enjoyable < 1265601099 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :heyo Gracenotes < 1265601101 0 :Gracenotes!unknown@unknown.invalid PRIVMSG #esoteric :I've been idly thinking of puzzle ideas these last few days < 1265601163 0 :Gracenotes!unknown@unknown.invalid PRIVMSG #esoteric :AUGUR < 1265601271 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :sup bitch < 1265601948 0 :Gracenotes!unknown@unknown.invalid PRIVMSG #esoteric :the identity matrix where n = 1 is just 1, right < 1265601958 0 :Gracenotes!unknown@unknown.invalid PRIVMSG #esoteric :yeah, of course it would be < 1265601998 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :DUH < 1265602013 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :diagonal unity, hurr < 1265602116 0 :Gracenotes!unknown@unknown.invalid PRIVMSG #esoteric :muahaha, latex is so pretty. I feel evil making such good-looking documents. < 1265602264 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :I know < 1265602279 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :I feel the same way < 1265602312 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh dear, it's all an evil overlord plot isn't it < 1265602321 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :all hail Knuth < 1265605213 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :question: In Haskell, some pattern matches must be in parens. Why? < 1265605236 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :e.g. (x:xs) rather than x:xs < 1265605653 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :precedence. : has fixity 6 iirc < 1265605668 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :and -> has higher precedence? < 1265605684 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :err, = < 1265605692 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :-> and = is syntax. : is an operator < 1265605712 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :oh, I get it < 1265605714 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1265605717 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :more importantly, function application has higher precedence. < 1265605721 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :right < 1265606013 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :coppro: http://www.haskell.org/onlinereport/syntax-iso.html < 1265606030 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :thanks < 1265606225 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :xkcd XD < 1265606253 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is going to go buy a lab coat < 1265606482 0 :jcp!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1265606592 0 :jcp!~jw@bzflag/contributor/javawizard2539 JOIN :#esoteric < 1265607038 0 :sshc!~sshc@unaffiliated/sshc JOIN :#esoteric < 1265607549 0 :Gracenotes!unknown@unknown.invalid NICK :Floor_Feline < 1265608622 0 :oerjan!unknown@unknown.invalid QUIT :Quit: Good night < 1265608972 0 :zzo38!~zzo38@h24-207-48-53.dlt.dccnet.com JOIN :#esoteric < 1265609519 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Hello, I was writing a program today, and when using the GNU debugger I noticed that uninitialized values will be 0xBAADF00D and helps a bit < 1265609539 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :That's rather nice, actually. < 1265609579 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :probably a compiler setting < 1265609611 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Do you mean the -ggdb compiler setting? < 1265609626 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :I don't know < 1265609637 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :I should do my homework < 1265609717 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Also, how do you figure out what numbers you need to use in the weather forecast URL http://xml.weather.yahoo.com/forecastrss?p=AYXX0008&u=f < 1265609718 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :hm... it occurs to me that functional programming is just a big pun < 1265609727 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :What do you mean by that? < 1265609734 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :In what way is it just a big pun? < 1265609749 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :Haskell Curries < 1265609770 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :OK < 1265609787 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :do you get it? < 1265609793 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Not quite. < 1265609820 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :Haskell is a language that curries functions < 1265609829 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :Haskell is named for Haskell Curry < 1265609835 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :currying is named for Haskell Curry < 1265609842 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :coincedence? < 1265609859 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :OK, now I can see it < 1265609900 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :IT'S ALL A CONSPIRACY < 1265609923 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Do you think it is really a conspiracy? Some things might be conspiracies, but I'm not sure about this one. < 1265610099 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I also noticed that converting the game "Escape from Planet Delta" from OASYS to TAVSYS, that the TAVSYS binary is smaller than the OASYS binary even though TAVSYS doesn't know about OASYS runtime, so it is built in to the TAVSYS story file instead. (Maybe it is because the TAVSYS file stores string using Baudot?) < 1265610403 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Why can't I use the setenv function in gcc on MinGW? < 1265610467 0 :Floor_Feline!unknown@unknown.invalid NICK :Gracenotes < 1265610497 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: Because Windows doesn't support that. < 1265610522 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: OK, but why? getenv works, though < 1265610548 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Does it work on gcc on Linux and on FreeBSD? < 1265610788 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I also have another question, too. I modified the Glk.dll for my program, by modifying the accelerator table using a resource editor program. How should I mention that? < 1265610832 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Like, in the about box (I can edit that with the resource editor, too), or something else, based on the license of the file, how is the good way to make it done? < 1265611253 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: Windows sucks. < 1265611255 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :That's why. < 1265611368 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :OK, that I can understand. Of course I know Windows sucks already, but, I still didn't put Linux, yet. But do you know the another question? < 1265611386 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: Windows does not have POSIX < 1265611386 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :No, I don't. < 1265611393 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :you must use the Win32 API to mess with that stuff < 1265611428 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :But then the program won't work on cross-platform < 1265611454 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :But at least getenv works, I can do without setenv, for now, I guess. So getenv should work on cross-platform. < 1265611454 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Conditional compilation. < 1265611472 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :You have to do it a *lot*, simply because Windows likes to be petty. < 1265611478 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :getenv is a C standard function < 1265611495 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :or find a nice cross-platform library that does the conditional compilation for you < 1265611507 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :or use Winelib (not recommended) < 1265611552 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :For now, I can just make it not compile in the part the uses setenv if it is Windows. < 1265611575 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Because, it can be work-around manually < 1265611672 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :what are you using the environment variables for? < 1265611786 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :But do you know the proper way to indicate somewhere that the Glk.dll is changed (if it is even necessary), to the user of the software? (I don't have the source-codes, I just changed it using resource editor, but source is available) < 1265611809 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I am using environment variables to check the directory for include files. If there is no environment variable, it will use the current directory. < 1265611822 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :why do you need setenv then? < 1265611836 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :also, what do you mean "indicate somewhere that the Glk.dll is changed"? < 1265611853 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :coppro: Indicate that he hex edited it, in essence. < 1265611867 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :why would he need to indicate that? < 1265611877 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Decency. < 1265611890 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I don't really need setenv, it just makes the program a bit simpler to set the include path on the command-line by using the same variable instead of creating a new one. But, I still can create a new one, if I needed to. < 1265611919 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Well, I didn't really use a hex editor, I used XN Resource Editor, and that is a bit different. < 1265611921 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :I don't get it < 1265611926 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :why does it matter? < 1265611939 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I want to indicate it so that you can know that it is not the official file. < 1265611954 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :change its signature < 1265611970 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :What signature? < 1265611971 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :note: I have no clue how to do this. All I know is that they have magic GUIDs or the like < 1265611990 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :I think you will also need to update the .lib < 1265611996 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :that you compile against < 1265612005 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ACTION curses the Windows dynamic loader < 1265612016 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ACTION curses all dynamic loaders < 1265612219 0 :tombom!tombom@wikipedia/Tombomp JOIN :#esoteric < 1265612291 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Windows doesn't have much in the way of dynamic linking. < 1265612301 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Merely just-in-time static linking. < 1265612301 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1265612313 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1265612369 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :The program can compile in two mode, in COMPILE_TIME mode (which is cross-platform) and in RUN_TIME mode (which currently works only on Windows with Glk, but anyone that can fix this, to make it work on other operating systems with Glk, or without Glk, to please do so) < 1265612478 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :And the reason I needed to change the accelerators table is so that I can add special functions for the function keys even in line-input mode. WinGlk has command to add menus and toolbars, but they won't have accelerator keys and also won't work if menu/toolbars is turned off. So, I did like this instead, and it worked. < 1265612478 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :O_o < 1265612527 0 :FireFly!~firefly@unaffiliated/firefly JOIN :#esoteric < 1265612778 0 :kar8nga!~kar8nga@jol13-1-82-66-176-74.fbx.proxad.net JOIN :#esoteric < 1265613398 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I added the ID numbers 1 to 12 for the keys F1 to F12, but currently this program uses only F1 and F2 and F3 keys. I also added CTRL+K for the Glk options window (which is built-in to Glk.dll). < 1265613417 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Maybe you could look to see if the program is good or if there is something that you think could be improved and what it is. < 1265613508 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :hmm, I'm considering making an easier thue variant by introducing some kind of control flow (and making it sequential rather than nondeterministic), what kind do you need? goto-if-last-line-replaced-something? < 1265613538 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I'm not sure, but I guess maybe you can try goto-if-last-line-replaced-something and then see if it can work < 1265613731 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :by writing your replacements in the right way, should be possible to write a program where the last line replaces something iff one of a number of previous replacements replaced something < 1265613749 0 :Pthing!~pthing@cpc11-pres4-0-0-cust168.pres.cable.virginmedia.com JOIN :#esoteric < 1265613750 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :then you can at least translate normal thue programs into it < 1265614001 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :one of the problems here is that I have a fixed input and output format, it seems a bit difficult to work on that with thue, where you seem to often need end/start/position markers to drive the program < 1265614348 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I once was on some weblog site that if you wrote "Anonymous" as your name, it shows a error message that you solved the CAPTCHA wrong. (I tried many times and this is what it did, until I put in a different name, such as "A. Nonymous") < 1265614641 0 :zzo38!unknown@unknown.invalid QUIT :Quit: NO CARRIER!!!!! < 1265615346 0 :tombom!unknown@unknown.invalid QUIT :Quit: Leaving < 1265615395 0 :kar8nga!unknown@unknown.invalid QUIT :Remote host closed the connection < 1265615557 0 :FireFly!unknown@unknown.invalid QUIT :Quit: Leaving < 1265615999 0 :clog!unknown@unknown.invalid QUIT :ended < 1265616000 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1265616984 0 :gm|lap!unknown@unknown.invalid QUIT :Quit: 2 hour UPS expired. Shutting down laptop. < 1265618220 0 :Slereah!~lereah@nanpc301.in2p3.fr JOIN :#esoteric < 1265619139 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :"oerjan: it's the (s)h/it, man" you're a genius, have i mentioned < 1265619728 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :http://esolangs.org/wiki/Defcalc <<< this is just tree rewriting < 1265619748 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Whatcha got against trees < 1265619776 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i just mean that's an incredibly old idea < 1265619790 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :"pattern recognition" < 1265619793 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1265619904 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :So are logic combinators and yet there's a bunch of esolang about it! < 1265619949 0 :jcp!unknown@unknown.invalid QUIT :Quit: I will do anything (almost) for a new router. < 1265620313 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm just grumpy because i've made more advanced tree rewriters, but never made a language about them < 1265620499 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :You're just grumpy because you're crabbed, crabby, cross, fussy, grouchy, bad-tempered, ill-tempered, annoyed and irritable. < 1265620615 0 :Kori!~Kori@91.138.70.40 JOIN :#esoteric < 1265620615 0 :Kori!unknown@unknown.invalid PRIVMSG #esoteric :You fucking niggers! < 1265620615 0 :Kori!unknown@unknown.invalid PART #esoteric :? < 1265620644 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :We sure are < 1265620697 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Speak for yourself there. < 1265621027 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i've never fucked a nigger < 1265621042 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but kori means "basket" in finnish < 1265621103 0 :SimonRC!unknown@unknown.invalid QUIT :Ping timeout: 265 seconds < 1265621456 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It was also the monetary unit of Kutch prior to 1947, divided into 24 dokda. < 1265621511 0 :SimonRC!~sc@fof.durge.org JOIN :#esoteric < 1265622342 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :It is also a combinator program! < 1265622349 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I wonder what it would do < 1265622358 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :```kori < 1265622362 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :No output. < 1265622378 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Well, not unlambda < 1265622677 0 :scarf!~scarf@unaffiliated/ais523 JOIN :#esoteric < 1265622964 0 :Pthing!unknown@unknown.invalid QUIT :Remote host closed the connection < 1265622986 0 :adam_d!~Adam@cpc2-acto6-0-0-cust48.brnt.cable.ntl.com JOIN :#esoteric < 1265624693 0 :MizardX!~MizardX@unaffiliated/mizardx JOIN :#esoteric < 1265624761 0 :Asztal!~asztal@host86-169-6-12.range86-169.btcentralplus.com JOIN :#esoteric < 1265625204 0 :Pthing!~pthing@cpc11-pres4-0-0-cust168.pres.cable.virginmedia.com JOIN :#esoteric < 1265628057 0 :Asztal!unknown@unknown.invalid QUIT :Ping timeout: 248 seconds < 1265632111 0 :Pthing!unknown@unknown.invalid QUIT :Remote host closed the connection < 1265633575 0 :FireFly!~firefly@unaffiliated/firefly JOIN :#esoteric < 1265634762 0 :Asztal!~asztal@host86-169-6-12.range86-169.btcentralplus.com JOIN :#esoteric < 1265640531 0 :scarf_!~93bcc029@gateway/web/freenode/x-ubwjzxcxoajmxbhk JOIN :#esoteric < 1265640539 0 :scarf_!unknown@unknown.invalid NICK :ais523 < 1265640556 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :forgot I was already connected... < 1265640604 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hi from inside my marking-Java session < 1265641028 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1265641188 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :22:17:09 Haskell is named for Haskell Curry < 1265641188 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :22:17:15 currying is named for Haskell Curry < 1265641188 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :22:17:22 coincedence? < 1265641235 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :actually, official haskell history says that the reason they used his first name was to _avoid_ the obvious puns. < 1265641281 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :That's not a pun < 1265641298 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: read the log < 1265641356 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :of course those obvious puns probably did not have to do with the CS meaning of curry, anyhow. < 1265641415 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :also of course it's not a coincidence, the work that HC did involving combinatory logic lead to both < 1265641471 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :although currying was not really his invention. there's another joke that we should be happy it's not called schonfinkeling. < 1265641556 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :oerjan : I did < 1265641562 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Currying Curry? < 1265641569 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :That ain't no pun < 1265641657 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :um i didn't see anyone mentioning "currying curry". admittedly i'm still on yesterday's log. < 1265641698 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :What is the pun then < 1265641716 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :"haskell curries", apparently < 1265641723 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hey i didn't make it < 1265641738 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :You are excused then. < 1265641767 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :until the next time i make one even worse < 1265641838 0 :coppro!unknown@unknown.invalid QUIT :Ping timeout: 265 seconds < 1265641851 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION made a Haskell pun once < 1265641876 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :well was it functional? < 1265641892 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1265641913 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :`translatefromto fi en pito < 1265641914 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :maintenance < 1265641922 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :`translatefromto fi en kengän pito < 1265641924 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :Shoe grip < 1265641941 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :finnish, the concise language < 1265641947 0 :coppro!~coppro@unaffiliated/coppro JOIN :#esoteric < 1265641976 0 :coppro!unknown@unknown.invalid QUIT :Client Quit < 1265642285 0 :cpressey!~CPressey@173-9-215-173-Illinois.hfc.comcastbusiness.net JOIN :#esoteric < 1265642310 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric : "oerjan: it's the (s)h/it, man" you're a genius, have i mentioned <-- embarassingly often < 1265642324 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :a puny genius, at any rate < 1265642647 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :!swedish test < 1265642650 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :`swedish test < 1265642651 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :test < 1265642651 0 :EgoBot!unknown@unknown.invalid PRIVMSG #esoteric :test < 1265642667 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :`swedish The Feynman Checkerboard or Relativistic Chessboard model was Richard Feynman’s sum-over-paths formulation of the kernel for a free spin ½ particle moving in one spatial dimension. < 1265642668 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :Zee Feynmun Checkerbuerd oor Releteefistic Chessbuerd mudel ves Reecherd Feynmun’s soom-oofer-peths furmooleshun ooff zee kernel fur a free-a speen ½ perteecle-a mufeeng in oone-a speteeel deemunsiun. \ Bork Bork Bork! < 1265642726 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :that was just before he was chased by a fermionic chicken. < 1265642751 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :`swedish bork < 1265642752 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :bork < 1265642754 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :`swedish bork < 1265642755 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :bork < 1265642756 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :`swedish bork < 1265642757 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :bork < 1265642763 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :BORK HARDER DAMN YOU < 1265642773 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :`swedish Bork. < 1265642773 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :Bork. \ Bork Bork Bork! < 1265642780 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :`swedish bjorkbarkburk < 1265642781 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :bjurkberkboork < 1265642795 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :wait < 1265642800 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :`swedish björkbarkburk < 1265642801 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :björkberkboork < 1265642812 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :my accent key is hung up < 1265642836 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :`swedish test. < 1265642837 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :test. \ Bork Bork Bork! < 1265642845 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Ah, it looks for stops < 1265643337 0 :Slereah!unknown@unknown.invalid QUIT :Quit: Leaving < 1265643353 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :pull out all the stops < 1265643463 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :....a pipe oerjan? < 1265643478 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :huh? < 1265643514 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :referring to where the idiom "pull out all the stops" comes from < 1265643517 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :and making an even worse pun < 1265643558 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION swats cpressey for having him google to find out the meaning of his own pun -----### < 1265643879 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :I have now lost all my faith in inheritance. Not that I ever had any. < 1265643910 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yeah those kids never turn out like you want < 1265644818 0 :oerjan!unknown@unknown.invalid QUIT :Quit: Later < 1265645413 0 :MissPiggy!~quantum@unaffiliated/fax JOIN :#esoteric < 1265646659 0 :Pthing!~pthing@cpc11-pres4-0-0-cust168.pres.cable.virginmedia.com JOIN :#esoteric < 1265648320 0 :MigoMipo!~migomipo@84-217-0-119.tn.glocalnet.net JOIN :#esoteric < 1265648547 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :An object-oriented esolang where you can only override a single term in a single expression every time you declare a subclass. < 1265648570 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :I like tall inheritance hierarchies. < 1265648763 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm, that sounds like a good idea to add to my work-in-progress esolang whose concept is "almost a normal language, but has a huge number of arbitrary restrictions which make it a pain to write" < 1265648773 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's not a particularly interesting concept, though, so I might just abandon it < 1265648786 0 :ais523!unknown@unknown.invalid QUIT :Quit: Page closed < 1265649000 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I thought that was what INTERCAL was < 1265649021 0 :scarf!unknown@unknown.invalid PRIVMSG #esoteric :not really, it has a completely different way of doing expressions, and a relatively different way of doing statements < 1265649030 0 :scarf!unknown@unknown.invalid PRIVMSG #esoteric :INTERCAL's more like a regular imperative language based on different primitives < 1265649045 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :oh okay < 1265649048 0 :scarf!unknown@unknown.invalid PRIVMSG #esoteric :it does have the PLEASE thing and the 16-bit restriction for constants, but that's about it < 1265649062 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I was thinking about a language that could compile to every major high level language < 1265649068 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :it's not really eso though < 1265649076 0 :scarf!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: Underlambda! < 1265649092 0 :scarf!unknown@unknown.invalid PRIVMSG #esoteric :hopefully that'll compile to every major low level language too < 1265649099 0 :scarf!unknown@unknown.invalid PRIVMSG #esoteric :and pretty much every minor language that's powerful enough < 1265649119 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :grrr esolangs is always down < 1265649127 0 :BeholdMyGlory!~behold@unaffiliated/beholdmyglory JOIN :#esoteric < 1265649133 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :how can I read about underlambda? < 1265649138 0 :scarf!unknown@unknown.invalid PRIVMSG #esoteric :http://esoteric.voxelperfect.net/wiki/Main_Page works for me < 1265649147 0 :scarf!unknown@unknown.invalid PRIVMSG #esoteric :but underlambda isn't published yet, it's something I'm working on < 1265649161 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :scarf: I have a similar idea, but rather than "a huge number", I'm just trying to incorporate some of the most annoying ones. < 1265649164 0 :scarf!unknown@unknown.invalid PRIVMSG #esoteric :an intuitive view of it is "purely functional underload" < 1265649168 0 :scarf!unknown@unknown.invalid PRIVMSG #esoteric :cpressey: ah < 1265649180 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :oh okay it's on the wiki then < 1265649185 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :so tell me about it? :) < 1265649194 0 :scarf!unknown@unknown.invalid PRIVMSG #esoteric :here's one I thought up: operator precedence is fixed but follows no pattern (originally determined at random), and parens aren't allowed < 1265649196 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :ACTION rereads the underload page < 1265649213 0 :scarf!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: basically, the idea's that you have a low-level core, and implement a higher-level language on top of it < 1265649214 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :scarf that sounds like tough love < 1265649228 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :ACTION had a buggy program the other day because ops were precd wrong :( < 1265649237 0 :scarf!unknown@unknown.invalid PRIVMSG #esoteric :and the core is based on most of the same concepts as Underload: S works differently, but the rest of the commands are the same < 1265649293 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :Infix is fun to play with just because of that whole precedence thing. < 1265649316 0 :scarf!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1265649625 0 :MizardX-!~MizardX@unaffiliated/mizardx JOIN :#esoteric < 1265649753 0 :MizardX!unknown@unknown.invalid QUIT :Ping timeout: 248 seconds < 1265649773 0 :MizardX-!unknown@unknown.invalid NICK :MizardX < 1265649881 0 :adam_d!unknown@unknown.invalid QUIT :Ping timeout: 248 seconds < 1265650112 0 :kar8nga!~kar8nga@jol13-1-82-66-176-74.fbx.proxad.net JOIN :#esoteric < 1265650804 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :cpressey, isn't there an algorithm for converting it to RPN? < 1265650969 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as in, a specific name, named after someone or such < 1265651067 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: "it" = ? < 1265651087 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :Infix? < 1265651095 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :Yes, probably. < 1265651200 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :I mean, it's fairly standard (at least for me) to parse infix based on a table and write out postfix opcodes, in a compiler. That would be pretty close to such an algorithm. < 1265651633 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Converting it to RPN isn't much of an algorithm: just do a postorder traversal of the AST < 1265651652 0 :scarf!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: there are algorithms that don't involve ASTs < 1265651666 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :Most of the work is done by the parser (precedence and associativity), before the AST is created. < 1265651667 0 :scarf!unknown@unknown.invalid PRIVMSG #esoteric :apparently they were used in early compiler design; they'd compile infix to RPN and then build the AST from that < 1265651689 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :back when people thought in fortran and recursion was scary < 1265651719 0 :scarf!unknown@unknown.invalid PRIVMSG #esoteric :that's quite possibly the reason < 1265651720 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :scarf: O_o < 1265651747 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :and memory was scarce, and ASTs were rare... < 1265651768 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Well of course you can modify the AST-generating algorithm to print out RPN directly < 1265651774 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Like for shunting-yard < 1265651796 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :I don't know what that is, but yes. Like for a Pascal compiler. < 1265651803 0 :tombom!tombom@wikipedia/Tombomp JOIN :#esoteric < 1265651808 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :http://en.wikipedia.org/wiki/Shunting-yard_algorithm < 1265651823 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :Oh < 1265651837 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I might guess that's the specific name you're looking for? < 1265652163 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :shunting yard is pretty lol < 1265652179 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :it's unsound on invalid inputs < 1265652194 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :of course it's correct on correct inputs < 1265652203 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :I've seen it several times before, but never knew its name and origin < 1265652226 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :on wiki there's a great snippet "alternative to Dijkstras algorithm" < 1265652238 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :basically regex + into )+( and * into ))*(( etc < 1265652249 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :then you can forget about precedence and just read it with the parens < 1265652284 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :well I got that wrong ))+(( and )*( < 1265653023 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: Which is again unsound on invalid inputs, as that creates mismatched brackets so you don't know whether there were any in the original. < 1265653068 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :cpressey, indeed < 1265653131 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: huh are you sure < 1265653156 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :1+2 -> 1))+((2 < 1265653166 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :you also add (((((( )))))) around the whole thing < 1265653204 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Ah right, that probably works. < 1265653220 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :also why couldn't you do error detection in shunting yard? < 1265653241 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :[1))+((2] <-- variant of that old Scheme syntax < 1265653262 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :cpressey, hm? < 1265653273 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :do you mean lisp or scheme there? < 1265653274 0 :scarf!unknown@unknown.invalid PRIVMSG #esoteric :does square bracket mean "unlimited number of parens, so long as it matches"? < 1265653280 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :Maybe LISP, I don't remember. < 1265653285 0 :scarf!unknown@unknown.invalid PRIVMSG #esoteric :I can see why lispers would like that < 1265653290 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :cpressey, is it those m-expression thingies? < 1265653293 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :It actually seems very un-Scheme-like somehow, so maybe yeah. < 1265653298 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or whatever their name were < 1265653314 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :ACTION hates that scheme syntax < 1265653320 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :scarf: Yes, ] closes all currently open brackets. (There was no corresponding [ in LISP or whatever though.) < 1265653328 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :ACTION actually hates all [] {} crap in lisps < 1265653348 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :No idea about the name of it. And yes, I'm not a fan of it either, except as an ugly eso-adoptable thing maybe. < 1265653357 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :people just use ] on IRC < 1265653370 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :cpressey, is it related to http://en.wikipedia.org/wiki/M-expression ? < 1265653374 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :that's where it comes from anyway, some crazy person decided to implement it after seeing it on IRC < 1265653400 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: gack. < 1265653409 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :I don't think so. < 1265653419 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :cpressey, "gack"? < 1265653441 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :Sorry, I meant: Gack!! < 1265653447 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :cpressey, why < 1265653471 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and what is it supposed to express < 1265653519 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :Surprise and alarm at unearthing of historical computer science artefacts. < 1265653527 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1265653555 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I thought it was well known that the S-Expressions weren't intended to be used for coding in lisp originally < 1265653572 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: btw, the mixing of brackets and parens is one reason I'm not so keen on Clojure < 1265653599 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :cpressey, well .......... when it has a semantic meaning that's a BIT better, like [] for vectors < 1265653603 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :but what I really hate is fucking < 1265653611 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :(let [(x ...) < 1265653616 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :as if that is any easier to read < 1265653629 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :it's like people that write sh*t as if that is somehow less offensive than shit < 1265653644 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :No, actually it's completely different :-P < 1265653663 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :ACTION takes my similes and goes home < 1265653676 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :Point taken. But it is probably a bit easier for your editor to highlight. I get into "just keep typing ) until you see the matched-paren-color move to the right place" < 1265653679 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :also I found lisp without an editor that highlights the matching bracket to be very painful < 1265653705 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster, just write it without any parens? < 1265653717 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy, if it is lisp: wtf? < 1265653730 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lisp without parens... All comments? < 1265653735 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :read it like natural language, figuring out the ambiguity yourself < 1265653747 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :let x 3 map + x 3 foo < 1265653751 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :LISP without parens would be Logo :) < 1265653754 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy, doesn't help the interpreter or compiler actually compile it < 1265653758 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :?? < 1265653760 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(or interpret it) < 1265653769 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy, I meant it is painful when coding lisp < 1265653770 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :why would you NOT use an editor to write lisp on a computer? < 1265653780 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not for reading < 1265653781 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :well your situation is just ridiculous so there's no solution to it < 1265653787 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what are you talking about < 1265653788 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I thought you were talking about on paper < 1265653788 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :LISP without parens would actually be fine, if all S-expressions started with an atom which determined the arity exactly < 1265653801 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy, you must somehow have misread my comment < 1265653812 0 :scarf!unknown@unknown.invalid QUIT :Remote host closed the connection < 1265653831 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :cpressey, hm I can think of a syntax for that. +/5 or such. for 5 parameters < 1265653863 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: ah, you mean encode the arity in the atom? Interesting, but probably a bit cumbersome. < 1265653864 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but really, I think in many cases it would be more irritating < 1265653871 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :very much so < 1265653873 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :cpressey, well, wasn't that what you meant? < 1265653898 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :I was just thinking to store it in an internal table when the atom is defined < 1265653908 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or did you mean something like + 2 5 4 would be the same as (+ 5 4) < 1265653917 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :cpressey, you forgot that some are n-ary, like + < 1265653919 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and * < 1265653954 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :also any non-painful way to create lists < 1265653955 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: like that's necessary? Have them take 1 list as an argument. Or fix them at 2 arguments and apply them multiple times, like + 2 + 3 5 < 1265653961 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :sure, you could use lots of cons < 1265653965 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but would you really want that < 1265653977 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Would you really want to use LISP without brackets? < 1265653999 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :If the answer to the above question is no: it doesn't matter. If it is yes: seek help. < 1265654002 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, in some cases I think you can get too many brackets < 1265654014 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :typically cond constructs comes to mind < 1265654024 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :especially if it is at the end of a define or lambda or similar < 1265654036 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you often end up with ))))))) or so < 1265654048 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :If you're going to make it optional, then you can just disallow it for the n-ary stuff. < 1265654060 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well, you could use indention to decide level < 1265654067 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :The beauty of the parens in LISP/Scheme is their regularity. The pain of the parens in LISP/Scheme is their regularity. < 1265654073 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :still have parens for some cases < 1265654082 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :like on one line where it makes more sense < 1265654104 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so you get a lisp/python indention mix < 1265654114 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not sure how good this idea would be in practise < 1265654131 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :I think I would prefer to define multiple syntaxes for a language: one which is "irregular but humane", like yr avg scripting language, and one which is "regular but inhumane" like Scheme or XML < 1265654134 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it doesn't sound too bad to allow the high level structure without parens < 1265654163 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :cpressey, "average scripting language" isn't really humane < 1265654177 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :because perl offsets the average so much < 1265654178 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :;P < 1265654185 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :median might be better < 1265654219 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: ha! Well, let's just say Perl is such an exceptional language, it's an outlier, and thus disregarded. < 1265654235 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :I should have said, "a decent scripting language" < 1265654236 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :cpressey, a simple average wouldn't do that. < 1265654239 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :okay < 1265654243 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :cpressey, escript? < 1265654247 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :The mode scripting language: Perl or PHP? < 1265654250 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :Never seen it. < 1265654260 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :cpressey, hint: it is run by beam < 1265654261 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :Unless you mean Erlang < 1265654275 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and yes erlang has escript < 1265654292 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :Erlang's not exactly my favourite for scripting < 1265654307 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(btw, erl -man escript) < 1265654333 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :Yes, I've used it before, I've even built something to try to reduce the startup time < 1265654337 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :cpressey, and yeah, the shutdown time is quite horrible for erlang in general. iirc it is less for escript though < 1265654393 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :Last I used escript it was just a simple wrapper that knew about hashbang lines < 1265654398 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :cpressey, I never found startup time to be any issue for erlang. The issue is instead that it takes about half a second from q() in the repl to getting back to prompt < 1265654442 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :cpressey, I tend to use a shell script wrapper usually for erlang programs. Since escript isn't suitable to directly invoke the main program, you would have to start a new erlang anyway < 1265654450 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :at least if you need anything like sasl < 1265654474 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :I remember shutdown time being bad too, but startup was not great. The Erlang/OTP implementation was really meant for long-running systems, I concluded. < 1265654502 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :cpressey, that is true. Idea: attach to existing erlang process < 1265654505 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :with a new repl < 1265654507 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it is possible < 1265654520 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: that was what I did -- search my site for erlaunch if you like :) < 1265654523 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :however it has to be distributed. < 1265654524 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :iirc < 1265654535 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :erlaunch doesn't require it to be distributed. < 1265654578 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :If erlang is in disk cache, the launch time is maybe 1/10 second? It isn't instantaneous, but I wouldn't call it slow < 1265654582 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :the shutdown time however is slow < 1265654652 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm, what is the hardest bit in implementing intercal? My guess is parsing it. < 1265654680 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :once you have it in some nice AST or similar, it doesn't look too hard < 1265654735 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(not easy either, but compared to parsing it...) < 1265655942 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :Hm, I just realized, if you define a "humane" syntax on top of a Scheme-like syntax, you lose one of the nicest things about Scheme -- hygenic macros. Unless you have a predictable mapping between the 2 syntaxes. In which case, the argument for having 2 syntaxes at all is weakened. < 1265655971 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :cpressey, what about those parser thingies in erlang? < 1265655985 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :cpressey, you know, liked used for the mnesia query thingies < 1265655986 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :parse transforms? < 1265655994 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1265656019 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :You have to know about the internal representation (AST) iirc, which is subject to change iirc < 1265656040 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :then why is it documented iirc? < 1265656076 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :Because Ericsson is perfect in every way. < 1265656080 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :XD < 1265656178 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :cpressey, then why the way they handle floating point NaN and +/- inf? < 1265656777 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :...Because they're trying to be "humane" by application of inconsistency? < 1265656809 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1265656871 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :I am eternally tempted to design a "real" language which "gets everything right". It's a bad temptation. It's better to stick to these weird little languages that intentionally get things "wrong"... < 1265656978 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :just filter by features not present in any of your languages < 1265656989 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :and the remaining features will make up the ultimate one < 1265657913 0 :gm|lap!~gm@unaffiliated/greasemonkey JOIN :#esoteric < 1265657942 0 :gm|lap!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: you could do with a bot which tracks users' "sightings" < 1265658094 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :olsner: How about I just design a language which contains every possible feature, and let users decide. < 1265658170 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :I think that has been tried and failed before < 1265658219 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :You think? :) < 1265658466 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :Well, here's one peeve anyway. Access to stack traces always seems to be such an afterthought. I want first-class stack traces. < 1265658539 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :now there's an interesting idea < 1265658567 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :wouldn't that be sorta like continuations < 1265658593 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :Yes, it would. A lot like continuations, actually. < 1265658636 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :I could live with them being slightly less than first-class, for efficiency. But still, it's so rare to be able to handle them like normal objects. < 1265658713 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :Hm, maybe Ruby does something like that though -- I wouldn't put it past it. < 1265658784 0 :pikhq!unknown@unknown.invalid TOPIC #esoteric :RIP sun.com | 3 days since last ehird sighting | 1 days since last alise sighting | http://tunes.org/~nef/logs/esoteric/?C=M;O=D < 1265659128 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :cpressey: That would actually be continuations with transparency, really. < 1265659203 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Yes. < 1265659267 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Doesn't Java provide that? < 1265659393 0 :augur!unknown@unknown.invalid QUIT :Ping timeout: 264 seconds < 1265659521 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :why not check the logs for when tusho was last seen < 1265659554 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Heheheh. < 1265659586 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: yes, and it's interface is passable I suppose, but I still consider it an afterthought. < 1265659605 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :So's Python's. < 1265659693 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :In both, it looks like you can only get a stack trace after an exception is caught, for example. < 1265660320 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :C, arguably, has them more first-class. "Getcontext" lets you start accessing the stack. From there, enjoy non-portable code. :P < 1265660419 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Can you in Java just make any Throwable object and call .fillInStackTrace() to get access to it even without any throw-trickery? The method looks publicky. < 1265660431 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :new Throwable.getStackTrace() < 1265660446 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :And, yes, the constructor says it calls fillInStackTrace automagically. < 1265660784 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :ACTION raises eyebrow < 1265660829 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is very susprised Throwable isn't abstract < 1265660979 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :I still think the interface is kind of ugly, but it gets points for setStackTrace. < 1265661493 0 :FireFly!unknown@unknown.invalid PRIVMSG #esoteric :It seems there's a limit of how long the stack trace may be, though < 1265661502 0 :FireFly!unknown@unknown.invalid PRIVMSG #esoteric :In Java, that is < 1265661506 0 :FireFly!unknown@unknown.invalid PRIVMSG #esoteric :At least it stops at 1024 here < 1265662182 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I have... acquired this bigram language model built out of song lyrics; can't quite decide whether I want to go through the hassle of converting it into fungot's format. (It's in HTK's special graph-like lattice format, and the existing tools don't quite seem to do the conversion backwards from that to something simpler; but I can run it through HTK's random-sentence-generation tool to get a feel to what fungot'd make of it.) < 1265662183 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: you can get the consumer to just wait there, rather than character-port?, to keep the ai in certain circumstances. < 1265662192 0 :Pthing!unknown@unknown.invalid QUIT :Remote host closed the connection < 1265662229 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Since it's just bigrams, the lyrics don't seem to make that much sense... but then again, neither do all supposedly serious songs I've heard. < 1265662246 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :"so long as their eyes / the ocean we'll see it's so i left now / and i want kiss my heaven on love comes to be free / sound of lonely voice is that / i could be it to the one so get married go / still no turning on take the new york new to save / just can't we had a troubled water what i fall / if there watching to the floor na na / mind lover / flip can't stop myself anymore" < 1265662247 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :"come on the weather / so / i've got to work / i can see you believe in your nightmares me / that / cuz i hate me you see / but on" < 1265663526 0 :MigoMipo!unknown@unknown.invalid NICK :MigoMipo_Zwei < 1265663542 0 :MigoMipo_Zwei!unknown@unknown.invalid NICK :MigoMipo < 1265665285 0 :augur!~augur@c-68-54-80-152.hsd1.md.comcast.net JOIN :#esoteric < 1265665297 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :hi augur! < 1265665342 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :heyo < 1265665468 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :In my client, relatively many people have five-character amber-colored nicks. < 1265665485 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :augur, scarf, alise. < 1265665493 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :uorygl < 1265665532 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Two five-letter all-lowercase amber nicks starting with A is far too many. < 1265665595 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :why am i amber < 1265665623 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Probably because my client randomly assigned you that color. < 1265665633 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :oh i see < 1265665674 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I get different colors for augur, scarf, alise all; but augur and uorygl get the same pinkish color. XChat's color assignment is not random, though, or even pseudorandom: it's just the sum of the bytes in the nickname, modulo the number of available nick colors (9). < 1265665741 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :i have no colors for people < 1265665760 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Isn't XChat graphical? < 1265665773 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yes, it is graphical. < 1265665778 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :It ought to have about 16,777,216 possible nick colors. < 1265665791 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :There's a predefined list of 9 that should be sufficiently distinguishable, though. < 1265665814 0 :Asztal!unknown@unknown.invalid PRIVMSG #esoteric :it should use ColorMatch™ < 1265665818 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :The problem with that is that you can't distinguish between two of them if they're identical. < 1265665897 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It should use my gcolor.pm. (Do a google image search for a word, fetch the thumbnails for first 100 or so results, compute the HSV histograms and pick a suitable maximum, convert to a single color; that's able to even give colors of abstract concepts.) < 1265666130 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :#a3ba55 is the color of "irregularity", for example. (Based on irc logs; I have lost the code and the web-page about it, but it wouldn't be that tricky to reimplement if necessary.) < 1265666187 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :ACTION ponders what color that is. < 1265666225 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :a < 1265666226 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :wtf is this < 1265666226 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :http://projectfortress.sun.com/Projects/Community/blog/ConditionalExpressions < 1265666226 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I happen to favor Knuth's version, for four reasons: < 1265666226 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :4. He's Knuth. < 1265666227 0 :Asztal!unknown@unknown.invalid PRIVMSG #esoteric :data:text/html, :) < 1265666236 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Light green-yellow. < 1265666365 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :You know, it would make slightly more (or perhaps much less) sense to give colors as brightness, redness, blueness. < 1265666395 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :That's what video formats do. < 1265666411 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Sort-of. < 1265666425 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :"YCbCr or Y′CbCr is a family of color spaces used as a part of the color image pipeline in video and digital photography systems. Y′ is the luma component and CB and CR are the blue-difference and red-difference chroma components." < 1265666503 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Admittedly that might be mostly because they can then use different resolutions for luminance and the chroma components. < 1265666524 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Call those w, r, b. Then R = 2wr(1 - b), G = 2w(1 - r)(1 - b), and B = wb. Or something like that, anyway. < 1265666583 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Hmm, let's forget those 2s. < 1265666625 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :No, let's leave those 2s. < 1265666661 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :Quick, someone implement that formula so we can see what happens. < 1265666689 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: That page talks about encoding truth values as 0/1 as if it's something, uh... esoteric. < 1265666726 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I'm going to make an esolang that uses 1 for true and 0 for false :D < 1265666927 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :The operators are addition, multiplication, and subtraction. It is an error for an operator to return a result other than 0, 1, or 2, or for it to take a 2 and also return a 2. < 1265667177 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :A quick game of boolean ring toss, anyone? < 1265668463 0 :kar8nga!unknown@unknown.invalid QUIT :Remote host closed the connection < 1265668516 0 :tombom!unknown@unknown.invalid QUIT :Quit: Leaving < 1265668643 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1265668794 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric : an intuitive view of it is "purely functional underload" < 1265668804 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :underload is pretty purely functional < 1265668827 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you could consider the program result just a lazy string < 1265668872 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy, AnMaster: how about, when the first value of a list is an atom, and that atom has a value recorded in the "fixed arities" table, then parentheses can be (at your option) omitted. Otherwise they are required. It's not a great rule maybe, but it's relatively simple. < 1265668933 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :Of course, there's still special forms. Like let. < 1265668936 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :cpressey I prefer my idea :P < 1265668941 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :where you never write any parens < 1265669670 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :cpressey, hm let takes a list doesn't it? < 1265669679 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy! < 1265669684 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :like: let ((name value)... ) < 1265669697 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :can i teach you about lecomte's categorial minimalism? :D < 1265669720 0 :MigoMipo!unknown@unknown.invalid QUIT :Remote host closed the connection < 1265669754 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :yes please do! < 1265669988 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Yeah, and I've never liked that syntax much. But it's a special form, so I'm not sure what could be done with it. < 1265670017 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :You can leave out the parens around the let itself < 1265670025 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :But the bindings list still needs them < 1265670082 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric : AnMaster: ha! Well, let's just say Perl is such an exceptional language, it's an outlier, and thus disregarded. < 1265670092 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :median _is_ a way to remove outliers, you know < 1265670105 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :Maybe introduce an arity-3 form called = that just does one binding. Then you can say: = name value = name2 value2 expr < 1265670175 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :Then let* becomes a problem, but whatever < 1265670208 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :s/let*/letrec/ < 1265670247 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric : I am eternally tempted to design a "real" language which "gets everything right". It's a bad temptation. It's better to stick to these weird little languages that intentionally get things "wrong"... < 1265670263 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :obviously the problem is that the everythings contradict each other < 1265670336 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :or become undecidable, like when trying to make a type system that has every feature < 1265670356 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :*desirable feature < 1265670389 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: I'm sure that's not the only problem. < 1265670413 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ok but it's an obvious one < 1265670458 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(well obvious after a few people have tried anyhow) < 1265670489 0 :BeholdMyGlory!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1265670509 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :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. < 1265670525 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :s/having/have/ < 1265670531 0 :FireFly!unknown@unknown.invalid QUIT :Quit: Leaving < 1265670555 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :Maybe it shouldn't be a given, but at least in the modern world, it is. < 1265670570 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :because an undecidable type system won't even get through the compilation stage < 1265670627 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :I know. But so what? We just blame that on the programmer, like C++ templates, and move on. < 1265670639 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm... < 1265670657 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :Unless you mean, won't *ever* get through the compilation stage. Then I suppose we have a problem. < 1265670683 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :with enough features that should be easy enough to achieve :D < 1265670734 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :cpressey: C++'s type system makes C++ *parsing* undecidable. < 1265670749 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Because you have to know the types of things to parse C++. < 1265670755 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Yes, I know. < 1265670765 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(the same is true of C, *but* C typing is trivial...) < 1265670786 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric : why not check the logs for when tusho was last seen <-- he calls himself uorygl these days < 1265670853 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, no < 1265670858 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :tusho == ehird < 1265670863 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Warrigal == uorygl < 1265670864 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :Maybe in 50 years we'll have advanced to the point where we laugh at the fact that we once did everything in Turing-complete languages, like we now laugh at the fact that we once did everything in assembly. < 1265670876 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : (the same is true of C, *but* C typing is trivial...) <--- also, iirc the ramifications of it are less in C than C++ < 1265670887 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: whoops, i was sure tusho was one of ihope's < 1265670910 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh i'm thinking of kerlo < 1265670920 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Slightly. < 1265670921 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, you don't have anything close to that example in the C++ FQA for C. < 1265670940 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: foo(bar) can *only* be a function call in C, after all. < 1265670948 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, http://yosefk.com/c++fqa/web-vs-c++.html#misfeature-2 < 1265670950 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err < 1265670951 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, ^ < 1265670957 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :weird tab typo < 1265670971 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Everyone should program in C--! < 1265670976 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :unless i'm wrong about that one too < 1265670988 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I think kerlo == Warrigal < 1265670996 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, and yes, variables can be one of three types basically: scalars, pointers, arrays. < 1265670997 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :And Warrigal == ihope < 1265671011 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the last one is certain at least < 1265671022 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Scalars, pointers, arrays, collections of variables. < 1265671040 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, oh structs on the stack < 1265671042 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :forgot that < 1265671055 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or, well, global vars < 1265671104 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, still, fairly trivial to figure out what things can be < 1265671143 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, like * for multiplication can never look * for deref (or the reverse) < 1265671153 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :even if you don't know the types < 1265671158 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Nice site at that link, thanks. < 1265671166 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :cpressey, you didn't know about it? < 1265671167 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1265671226 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :fnord < 1265671230 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: nope. < 1265671246 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1265671275 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Yeah; you only need to know context for a few very specific things. < 1265671281 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(basically, whether or not something is a type or variable) < 1265671291 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, example? < 1265671338 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm actually: < 1265671341 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :int * foo; < 1265671346 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what if you have: < 1265671350 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :x * foo; < 1265671369 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :different results if x is a type or a variable < 1265671377 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, foo * bar changes based on whether or not foo is a type. < 1265671379 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but that is, if there is nothing in wrong of x < 1265671397 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it doesn't apply if it happens anywhere but at the start of a statement < 1265671410 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Also, "const foo". < 1265671411 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and in C89, only at the first statements in a given function < 1265671422 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, that only makes sense if foo is a type? < 1265671435 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1265671446 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :foo * bar looks like a useless expression statement though, even if legal... < 1265671464 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, depends on if foo and bar have side effects ;P < 1265671469 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but yeah, why multiply them < 1265671487 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Actually, "const foo" might be equivalent to "const int foo". :P < 1265671488 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :still not particularly useful < 1265671489 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, it is however legal. GCC at least will issue a warning about unused value or something like that < 1265671504 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, isn't that deprecated? < 1265671519 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Still syntax. < 1265671519 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, pretty sure it isn't even allowed nowdays? < 1265671534 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :well it's obviously legal since it would need a specific exception to make it not so... < 1265671539 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :C99 requires a note that it's deprecated. < 1265671544 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1265671554 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : well it's obviously legal since it would need a specific exception to make it not so... <-- ? < 1265671569 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And it's an error if used for a function declaration. < 1265671612 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :anyway, the situations are rare. x * y = z; for example isn't ambiguous at all < 1265671643 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: all expressions are statements, it would be messy to except only those that are apparently useless < 1265671645 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :nor is x * y, z; < 1265671649 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh wait < 1265671653 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that latter one might be < 1265671660 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :if it could be the comma operator < 1265671673 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, heh < 1265671692 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: That's either x times y, then z, or an x pointer named y and an x named z. < 1265671722 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, "This language prohibits useless statements and programs"? < 1265671725 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :I, Gcc the Great and Terrible, have judged your entire program to be apparently useless, and refuse to compile it. < 1265671725 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :for example && and || could obviously be useful with statements < 1265671778 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: not particularly well-defined, that... < 1265671780 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, x * y, * z should be non-ambig though < 1265671787 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, it was a joke < 1265671797 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :*gasp* < 1265671862 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: actually x * y = z could be a declaration with initialization, couldn't it < 1265671870 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: x times y, then dereference z, or x pointer y, x pointer z. < 1265671932 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, oh ffs right < 1265671959 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : AnMaster: actually x * y = z could be a declaration with initialization, couldn't it <-- well, yes that is the only thing it could be afaik? < 1265671984 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, what else could it be? < 1265671984 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh wait right x * y isn't an lvalue < 1265672004 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION thought that backwards < 1265672008 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :yeah! What do you think this is, C++? < 1265672013 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :the term "lvalue" and such always confuse me < 1265672036 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I mean, it much clearer if you just think about it at another level < 1265672046 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: actually took me a moment to remember the term. < 1265672057 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :Actually, I'm not sure you could make operator* return a reference in C++. But it sounds like the kind of thing C++ will let you do. < 1265672104 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :cpressey, I avoid C++ < 1265672130 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, care to link you lambda header file for C again? < 1265672133 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Very wise. < 1265672146 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :I avoid it now, too, thankfully. < 1265672165 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :No matter how much Python bugs me, I look back and my C++ days, and I don't look back. < 1265672187 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :cpressey, why not erlang :) < 1265672187 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :Ach, and I've never used C++ for a personal project. That would be Wrong. < 1265672216 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :if it wasn't that parsing intercal is such a pain I would probably try to write a bignum intercal interpreter in erlang < 1265672218 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Only sometimes :) < 1265672260 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but looking at the lengths c-intercal goes to for parsing... I doubt I even want to try that < 1265672322 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :cpressey: C++ operators are only required to return a value and be appropriately adic. < 1265672411 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :cpressey, why not make the operator* return a pointer? < 1265672416 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :to itself < 1265672433 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that way you could make a pointer class you could never dereference < 1265672463 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :if you can override & too, then you could make a class you can never take the address of! < 1265672517 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: given the various attempts to build "smart pointers" to work around the language's primitive memory model, I wouldn't be surprised if it has been done. < 1265672538 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Great! < 1265672548 0 :coppro!~coppro@unaffiliated/coppro JOIN :#esoteric < 1265672550 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm I want a circle of pointers in C < 1265672550 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster, cpressey: That sort of stuff is done in the actual FAQ, at http://www.parashift.com/c++-faq-lite/freestore-mgmt.html#faq-16.25 < 1265672559 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :Then we can x * y = z to our hearts' content. < 1265672561 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :would only work for void* < 1265672869 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :void *x = &x; < 1265672892 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :ACTION = ihope = kerlo = Warrigal = Tanner Swett < 1265672902 0 :uorygl!unknown@unknown.invalid PRIVMSG #esoteric :ehird = tusho = alise = Elliott Hird < 1265672975 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :union p { union p *p; } p = { &p }; ... but maybe that doesn't quite count. < 1265672992 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Is it really a good idea to talk real names in this channel < 1265673005 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :it doesn't really matter < 1265673032 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: Josiah 'pikhq' Worcester. < 1265673047 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Oooh, aaah. < 1265673049 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :/whois coppro < 1265673071 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :coppro: ZOMG < 1265673085 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :INORITE? < 1265673147 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :uorygl: um Tanner Swett is your real name? < 1265673244 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :As far as anyone knows < 1265673344 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION didn't know tanner was a first name < 1265673401 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ACTION knows two Tanners in real life < 1265673450 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm i found a Tanner Swett on linkedin, but i doubt uorygl has joined university yet < 1265673457 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: Maybe it was a honorific, in this case. < 1265673483 0 :pikhq!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1265673490 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you mean he's very bronze-colored? < 1265673543 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: Yes; it's the penultimate step before graduating to Tannest. < 1265673554 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ok then < 1265673597 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :There are three Tanner Swetts visible in the book of faces.