< 1409356807 696350 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :well it has the usual four stabs < 1409356816 764089 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :oh wait < 1409356829 424951 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :ACTION is apostrophically blind < 1409357039 524080 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :What can you do with equalities that you can't do with isos? < 1409357117 607336 :Bicyclidine!~Glossina@wl-nat105.it.wsu.edu QUIT :Ping timeout: 245 seconds < 1409357511 921803 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :the name "Equality'" reads scary to me, < 1409357551 805822 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :because it sort of reminds me to SML which doesn't have real typeclasses but only a few built-in ones, so "'a" is an ordinary type variable and "''a" is an Eq-constrained one < 1409357705 24889 :Melvar!~melvar@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric :( 'a < 1409357705 193573 :idris-bot!~ircslave@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric :12'a : 12Type < 1409357713 796073 :Melvar!~melvar@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric :( ''a < 1409357713 951876 :idris-bot!~ircslave@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric :(input):1:2: error: expected: name < 1409357714 107671 :idris-bot!~ircslave@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric :''a < 1409357714 107827 :idris-bot!~ircslave@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric : ^ < 1409357771 383898 :Taneb!~Taneb@runciman.hacksoc.org JOIN :#esoteric < 1409357785 688493 :atriq!~Taneb@runciman.hacksoc.org QUIT :Ping timeout: 244 seconds < 1409357885 150198 :diginet!~diginet@107.170.146.29 QUIT :Ping timeout: 244 seconds < 1409358021 855596 :zzo38!~zzo38@24-207-51-179.eastlink.ca QUIT :Ping timeout: 244 seconds < 1409358079 351983 :zzo38!~zzo38@24-207-51-179.eastlink.ca JOIN :#esoteric < 1409358094 152285 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :How can we make applicative LR parsers in Haskell? < 1409358152 589277 :diginet!~diginet@107.170.146.29 JOIN :#esoteric < 1409358175 607430 :conehead!~conehead@unaffiliated/conehead JOIN :#esoteric < 1409358186 984227 :evalj!~jeval@5400EF77.dsl.pool.telekom.hu QUIT :Remote host closed the connection < 1409358222 942482 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric ::t inon < 1409358224 229262 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric : Not in scope: ‘inon’ < 1409358224 384972 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric : Perhaps you meant one of these: < 1409358224 385111 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric : ‘inone’ (imported from Control.Lens), < 1409358268 726254 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :With Lemon, the tokenizer calls the parser. To do it with Haskell you would make the parse state to be a function that receives a token and returns the next parse state. Using this you could perhaps make parsers to form a category too, for example simply the composition of the tokenizer with the parser. < 1409358324 496459 :Bike!~Glossina@69.166.47.137 PRIVMSG #esoteric :it's not haskell until you make a category out of it. < 1409358453 72607 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :The identity would then be a program consisting of a single token and the parsed value also consists of exactly the single token. It doesn't seems very useful but it would be mathematically the identity morphism anyways. < 1409358488 605129 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover JOIN :#esoteric < 1409358523 90786 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :For example if it is based on (Free ((->) token)) then it looks like it, but it doesn't seems like you are making a applicative LR parser out of that; it looks like LL parser. So, how can you make applicative LR parser? < 1409358579 872392 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :(It seems like it would also have to be one which isn't a monad, and is only applicative?) < 1409358697 262863 :Phantom__Hoover!~phantomho@unaffiliated/phantom-hoover QUIT :Ping timeout: 255 seconds < 1409358761 398085 :aretecode!~aretecode@69.163.36.90 QUIT :Ping timeout: 260 seconds < 1409359070 808486 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover QUIT :Read error: Connection reset by peer < 1409359554 304120 :KingOfKarlsruhe_!~KingOfKar@static.84.17.63.178.clients.your-server.de JOIN :#esoteric < 1409360214 374079 :Bicyclidine!~Glossina@69.166.47.146 JOIN :#esoteric < 1409360301 568500 :KingOfKarlsruhe!~KingOfKar@unaffiliated/kingofkarlsruhe QUIT :*.net *.split < 1409360538 259608 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric ::t inon < 1409360539 472027 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric : Not in scope: ‘inon’ < 1409360539 627891 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric : Perhaps you meant one of these: < 1409360539 628056 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric : ‘inone’ (imported from Control.Lens), < 1409360542 773552 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric ::t inone < 1409360544 45883 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric :FoldableWithIndex i f => (i -> a -> Bool) -> f a -> Bool < 1409360554 759227 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric ::t id <$> pure id <*> pure id < 1409360556 16166 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric :Applicative f => f (a -> a) < 1409360582 462788 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :How lazy should traversals be to make them useful? < 1409360599 651332 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :I guess always having them target every point is not actually too useful in many circumstances < 1409360681 811312 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :If a lens is an iso from a value to a pair of the original value and a focus, can I have a traversal be an iso from a value to a pair of the original value and a list of of focuses, or something? < 1409360728 442427 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :what happened, every time I look in here the discussion is about lenses ... < 1409360753 729188 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :try #haskell-lens hth < 1409360774 135072 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :Sgeo_: i'm not sure what i was looking for with inon actually exists < 1409360790 808812 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :what was that < 1409360802 196211 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :indexed version of non < 1409360812 498382 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :shachaf: oh can I find non-lens discussions there? < 1409360817 578846 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :frequently < 1409360886 401909 :Bicyclidine!~Glossina@69.166.47.146 QUIT :Ping timeout: 246 seconds < 1409360931 217895 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :hm in fact there don't seem to _be_ indexed Isos < 1409361015 346903 :coppro!raedford@taurine.csclub.uwaterloo.ca PRIVMSG #esoteric :help I'm trapped in an agda < 1409361092 567556 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :Sgeo_: i don't think a lens is that hth < 1409361121 113555 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :Profunctor p => p (a, o) (b, o) s t < 1409361156 927133 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :Is that meaningful as a Lens s t a b?... argh < 1409361209 113345 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :if that's forall p then it's an Iso < 1409361221 504163 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :since when does a profunctor have four arguments < 1409361229 514166 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :that too. < 1409361250 766391 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :Profunctor p => p (a, o) (b, o) -> p s t < 1409361251 304315 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :ty < 1409361257 970157 :Bicyclidine!~Glossina@wl-nat97.it.wsu.edu JOIN :#esoteric < 1409361262 678739 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :still an Iso. < 1409361266 275197 :lorenzo__!~lorenzo@adsl-ull-234-22.42-151.net24.it JOIN :#esoteric < 1409361282 546207 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :maybe you're looking for unlenses < 1409361300 694083 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :or wait is the o supposed to be forall'ed too < 1409361310 353554 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :where is edwardk when we need him < 1409361320 259565 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :(probably in #haskell-lens, right?) < 1409361329 43935 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :class Unlensy p where unlensy :: p (e, a) (e, b) -> p a b < 1409361339 767005 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :oerjan: hey profunctor lenses are my thing < 1409361343 732821 :lollo64it!~lorenzo@adsl-ull-175-192.42-151.net24.it QUIT :Ping timeout: 255 seconds < 1409361346 596447 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :ACTION doens't know what unlenses are < 1409361350 832952 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :hm right. what are unlenses? < 1409361367 25341 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :I'm just trying to think of that type because after I use strong I think it's what's left to define < 1409361372 713865 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :(forall p. ... p => p a b -> p s t) is the "normal" direction for optics. < 1409361379 271818 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :And by strong I mean first' < 1409361383 576564 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :But you can make a dual class where it's (forall p. ... p => p t s -> p b a) < 1409361409 542619 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :In the case of Iso the dual of Profunctor is Profunctor, of course. Instead of (s -> a, b -> t) it's (b -> t, s -> a) but that's the same thing. < 1409361423 14361 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :For various restrictions of p you get different classes. < 1409361438 959650 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :class Lensy p where lensy :: p a b -> p (e,a) (e,b) < 1409361445 436974 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :class Unlensy p where unlensy :: p (e,a) (e,b) -> p a b < 1409361474 867799 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :newtype Un p a b s t = Un { runUn :: p t s -> p b a } < 1409361509 320245 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :instance Lensy p => Unlensy (Un p a b) < 1409361516 598723 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :instance Unlensy p => Lensy (Un p a b) < 1409361523 799366 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :ycnaf < 1409361533 392928 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :there is a bizarro dual world of optics hiding there < 1409361539 242121 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :ycnaf? < 1409361557 745790 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :you can now apply functions < 1409361742 923366 :Bicyclidine!~Glossina@wl-nat97.it.wsu.edu QUIT :Ping timeout: 240 seconds < 1409361832 608857 :int-e_!~noone@static.88-198-179-137.clients.your-server.de JOIN :#esoteric < 1409361835 33390 :coppro_!raedford@taurine.csclub.uwaterloo.ca JOIN :#esoteric < 1409362007 958575 :jameseb-!~jameseb_@runciman.hacksoc.org JOIN :#esoteric < 1409362026 90624 :myndzl!myndzi@2600:3c00::f03c:91ff:fedf:3d4e JOIN :#esoteric < 1409362083 889404 :contrapumpkin!~copumpkin@unaffiliated/copumpkin JOIN :#esoteric < 1409362106 683339 :TieSoul-mobile!~TieSoul@5ED55308.cm-7-6b.dynamic.ziggo.nl QUIT :*.net *.split < 1409362106 909927 :jameseb!~jameseb_@runciman.hacksoc.org QUIT :*.net *.split < 1409362109 571545 :DootBot!~cinch@5ED55308.cm-7-6b.dynamic.ziggo.nl QUIT :*.net *.split < 1409362109 571692 :sebbu!~sebbu@unaffiliated/sebbu QUIT :*.net *.split < 1409362109 571763 :copumpkin!~copumpkin@unaffiliated/copumpkin QUIT :*.net *.split < 1409362109 571831 :lambdabot!~lambdabot@silicon.int-e.eu QUIT :*.net *.split < 1409362109 571961 :Tiesoul!~TieSoul@5ED55308.cm-7-6b.dynamic.ziggo.nl QUIT :*.net *.split < 1409362109 572023 :int-e!~noone@static.88-198-179-137.clients.your-server.de QUIT :*.net *.split < 1409362109 572087 :myndzi!myndzi@kingofstackers.com QUIT :*.net *.split < 1409362109 572152 :coppro!raedford@taurine.csclub.uwaterloo.ca QUIT :*.net *.split < 1409362109 572218 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :shachaf: lot simpler than that hth < 1409362121 586994 :Melvar!~melvar@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric :( reverse "ycnaf" < 1409362122 274739 :idris-bot!~ircslave@dslb-094-221-215-107.094.221.pools.vodafone-ip.de QUIT :Quit: Terminated < 1409362126 479347 :Melvar!~melvar@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric :Oh, right. < 1409362149 270611 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :oh < 1409362175 606448 :idris-bot!~ircslave@dslb-094-221-215-107.094.221.pools.vodafone-ip.de JOIN :#esoteric < 1409362182 538373 :Melvar!~melvar@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric :( reverse "ycnaf" < 1409362182 694074 :idris-bot!~ircslave@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric :04"fancy" : 12String < 1409362184 386516 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :coöerjan < 1409362235 488703 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :when i read _The Amazing Maurice and his Educated Rodents_ i didn't know how "cooperate" was pronounced < 1409362248 632926 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :i assumed it was like "recuperate" is pronounced but without the "re" < 1409362398 622311 :diginet!~diginet@107.170.146.29 QUIT :Ping timeout: 246 seconds < 1409362443 941587 :diginet!~diginet@107.170.146.29 JOIN :#esoteric < 1409362447 496715 :lambdabot!~lambdabot@silicon.int-e.eu JOIN :#esoteric < 1409362451 783429 :MoALTz__!~no@user-46-113-32-101.play-internet.pl JOIN :#esoteric < 1409362482 664546 :MoALTz_!~no@user-46-113-32-101.play-internet.pl QUIT :Ping timeout: 246 seconds < 1409362616 544841 :contrapumpkin!~copumpkin@unaffiliated/copumpkin NICK :copumpkin < 1409362635 331650 :not^v!~notnot^v@2601:4:4500:e15:e846:1e77:a1de:d3c QUIT :Read error: Connection reset by peer < 1409362641 886492 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :What is best way I can do optimization involving reordering instructions in order to allow further optimizations? < 1409362705 195414 :olsner!~salparot@c83-252-201-82.bredband.comhem.se QUIT :Ping timeout: 246 seconds < 1409362705 561632 :Froox!~Frooxius@cust-101.ktknet.cz QUIT :Read error: Connection reset by peer < 1409362729 513265 :Froox!~Frooxius@cust-101.ktknet.cz JOIN :#esoteric < 1409362760 944831 :Froox!~Frooxius@cust-101.ktknet.cz QUIT :*.net *.split < 1409362762 282724 :KingOfKarlsruhe_!~KingOfKar@static.84.17.63.178.clients.your-server.de QUIT :*.net *.split < 1409362763 592407 :Taneb!~Taneb@runciman.hacksoc.org QUIT :*.net *.split < 1409362764 971733 :hogeyui___!~hogeyuiVP@vps.usamimi.biz QUIT :*.net *.split < 1409362765 127092 :mroman_!~roman2@fmnssun.ibone.ch QUIT :*.net *.split < 1409362765 880783 :Gracenotes_!~person@192.241.203.42 QUIT :*.net *.split < 1409362779 382794 :not^v!~notnot^v@2601:4:4500:e15:28dc:88fc:f339:3f4f JOIN :#esoteric < 1409363422 450075 :Froo!~Frooxius@cust-101.ktknet.cz JOIN :#esoteric < 1409363422 630040 :KingOfKarlsruhe_!~KingOfKar@static.84.17.63.178.clients.your-server.de JOIN :#esoteric < 1409363422 630159 :Taneb!~Taneb@runciman.hacksoc.org JOIN :#esoteric < 1409363422 630224 :hogeyui___!~hogeyuiVP@vps.usamimi.biz JOIN :#esoteric < 1409363422 630287 :mroman_!~roman2@fmnssun.ibone.ch JOIN :#esoteric < 1409363422 630352 :Gracenotes_!~person@192.241.203.42 JOIN :#esoteric < 1409363458 443460 :olsner!~salparot@c83-252-201-82.bredband.comhem.se JOIN :#esoteric < 1409364640 666925 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :"You can have profunctor only lenses, but the price is that you can no longer use "traverse" and similar as a lens" < 1409364643 423244 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :What's that about? < 1409364810 369719 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :(p a b -> p s t) and (traverse :: (a -> f b) -> s -> f t) don't unify. < 1409364849 611835 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :But it doesn't really make sense to use traversals as lenses, unless you insist on monoidness < 1409364868 174008 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :oh. it means traverse as a traversal. < 1409364899 88159 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :Oh < 1409364909 653984 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :and fold as a fold iirc < 1409364914 410490 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric ::t Data.Foldable.fold < 1409364915 416260 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric :(Monoid m, Foldable t) => t m -> m < 1409364928 784821 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :hm no < 1409364928 940325 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :ACTION reads an old version of a gist that has a Bazaar definition in it < 1409364935 938021 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric ::t Data.Foldable.foldMap < 1409364936 806239 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric :(Monoid m, Foldable t) => (a -> m) -> t a -> m < 1409364985 747506 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :*understandable Bazaar definition < 1409364989 658127 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :https://gist.github.com/sjoerdvisscher/7043326/92492c6bb8e1e1ca9c0b96eb04e67eecc0c6b1e0 < 1409365007 777806 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :That type isn't quite the same as Bazaar. < 1409365022 710881 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :(Only because of things like infinite traversals.) < 1409365027 722562 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Also, it seems more complicated than Bazaar to me. < 1409365070 263121 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Traversal s t a b = forall f. Applicative f => (a -> f b) -> s -> f t < 1409365087 377823 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Traversal s t a b ~~ s -> forall f. Applicative f => (a -> f b) -> f t < 1409365092 474153 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :~~ s -> Bazaar a b t < 1409365093 362622 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :That's not a pure profunctor ttraversal, is it? < 1409365094 219240 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Done. < 1409365104 293150 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :No. < 1409365112 547391 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Oh, this is about pure profunctor lenses. < 1409365134 528257 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I stil think the FunList definition is more confusing than, say, representability. < 1409365152 609017 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Which is where you pick p f x y = (x -> f y) < 1409365215 981891 :jarcane!~jarcane@dsl-trebrasgw2-54f949-238.dhcp.inet.fi QUIT :Quit: WeeChat 0.4.4-dev < 1409365312 774810 :lorenzo__!~lorenzo@adsl-ull-234-22.42-151.net24.it QUIT :Quit: Leaving < 1409365376 167157 :Lorenzo64!~lorenzo@adsl-ull-234-22.42-151.net24.it JOIN :#esoteric < 1409365415 585737 :J_Arcane!~JArcane@dsl-trebrasgw2-54f949-238.dhcp.inet.fi JOIN :#esoteric < 1409365903 726023 :Froo!~Frooxius@cust-101.ktknet.cz NICK :Frooxius < 1409367161 388756 :not^v!~notnot^v@2601:4:4500:e15:28dc:88fc:f339:3f4f QUIT :Ping timeout: 260 seconds < 1409367624 182955 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :`olist (961) < 1409367625 100466 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :olist (961): shachaf oerjan Sgeo FireFly boily nortti < 1409367873 903170 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :olists are so infrequent these days that this feels like a waste :'( < 1409367883 426181 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :maybe after i gain more information i'll think differently < 1409368592 400284 :not^v!~notnot^v@2601:4:4500:e15:5a7:b29:74e0:7537 JOIN :#esoteric < 1409368602 240158 :sebbu!~sebbu@ADijon-152-1-20-219.w83-194.abo.wanadoo.fr JOIN :#esoteric < 1409368641 417033 :sebbu!~sebbu@ADijon-152-1-20-219.w83-194.abo.wanadoo.fr QUIT :Changing host < 1409368641 573181 :sebbu!~sebbu@unaffiliated/sebbu JOIN :#esoteric < 1409369675 414287 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :The "register forwarding format" makes more sense to me than the standard "single static assignment". < 1409369775 989345 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :The difference is that there are no phi functions; instead, each label which is a possible branch target takes parameters. < 1409369802 590217 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :(It also therefore looks like easier to compile into Haskell do-notation) < 1409369840 456910 :pikhq!~pikhq@deagol.pikhq.com PRIVMSG #esoteric :I'm pretty sure those are isomorphic. < 1409369885 784545 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :It probably is, although still they would have different advantages and disadvantages, I think. < 1409369914 495993 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :maybe the person with the hair is secretly on the vampire's side < 1409369919 391757 :conehead!~conehead@unaffiliated/conehead QUIT :Quit: Computer has gone to sleep < 1409369952 718300 :not^v!~notnot^v@2601:4:4500:e15:5a7:b29:74e0:7537 QUIT :Quit: http://i.imgur.com/Akc6r.gif < 1409370197 150199 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :Do any programs use this register forwarding format though? < 1409371246 756075 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :shachaf: EMBRACE THE OLIST < 1409373354 612943 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :I wanted to make an optimization where if a text string is a suffix of another one, it can combine them. This is Z-machine strings, so it should only do if the prefix and suffix are both at least three characters long. Also due to the way the text packing works, in some cases it can be used even if it is not a suffix. < 1409373382 915907 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :For example, if two strings are "It doesn't work!" and "It broke and now it doesn't work!" then the first one can be considered as a suffix of the second one even though it isn't. < 1409373464 853310 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :Do you have advice of it? < 1409373629 489030 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :In this example, you would have to ensure that the prefix ("It broke and now ") ends up in temporary shift state 1. Modulo the number of Z-characters by 3 to determine the sequence it needs to end with: If zero, the sequence is 544. If one, the sequence is 54544 or 55544. If two, the sequence is 4. (In the example, it happens to contain 18 Z-characters, so the sequence is 544.) < 1409374248 4278 :int-e_!~noone@static.88-198-179-137.clients.your-server.de NICK :int-e < 1409374614 19087 :TieSoul!~TieSoul@5ED55308.cm-7-6b.dynamic.ziggo.nl JOIN :#esoteric < 1409375416 241112 :Hjulle!~hjulle@ankadagen.vth.sgsnet.se QUIT :Ping timeout: 260 seconds < 1409378320 902266 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :Is there a way to combine two lenses to get a traversal? < 1409378337 475278 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :e.g. if I want to manipulate targets of both (at "hi") and (at "Bye") at the same time < 1409378338 722086 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :If the lenses overlap, that can make an invalid traversal. < 1409378369 843835 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :Ah < 1409379792 526702 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :don't cross the lenses < 1409379943 761626 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :[wiki] 14[[07Brainfuck implementations14]]4 M10 02http://esolangs.org/w/index.php?diff=40359&oldid=40304 5* 03Rdebath 5* (+0) 10Syntax < 1409381556 276510 :oerjan!oerjan@sprocket.nvg.ntnu.no QUIT :Quit: Niteoid < 1409382044 369122 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :I hope you know some things about these optimization, because I do not know how to efficiently make such a thing. < 1409382090 199906 :coppro_!raedford@taurine.csclub.uwaterloo.ca NICK :coppro < 1409382094 968901 :drdanmaku!uid17782@gateway/web/irccloud.com/x-tncuxgfwqjsytgan QUIT :Quit: Connection closed for inactivity < 1409382221 698780 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :Would there be anything wrong with me using a function of the type SomeClass p => p a b -> p [a] [b] to enable Traversals? < 1409382240 754469 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :In a dynamically typed language? < 1409382273 152558 :Bike!~Glossina@69.166.47.137 PRIVMSG #esoteric :deeply sinful < 1409382294 459338 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Traversable f => p a b -> p (f a) (f b) < 1409382301 547082 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Anyway, traversals aren't lists. < 1409382312 611776 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Folds aren't lists. They're trees. < 1409382583 330881 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :Folds aren't in my mental model yet < 1409382656 318121 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Foldable behaves a lot like class Foldable f where toList :: f a -> [a] < 1409382662 411271 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :But it's not exactly that. Why not? < 1409382829 378763 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :Efficiency reasons? I don't know < 1409383006 932375 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :I should probably be sleeping < 1409383214 711539 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric ::t toListOf < 1409383216 219829 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric :Getting (Endo [a]) s a -> s -> [a] < 1409383229 201632 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :ACTION runs somewhere in the opposite direction < 1409383291 237878 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :How many patterns does a peephole optimizer normally have? < 1409383293 566506 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :These types aren't that scary. < 1409383320 135287 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :Hmm... Lists are a specific traversable... who is forcing the traversable to a specific instance? The traversal, or the function running the traversal (e.g. toListOf), or something else? < 1409383330 471709 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :I have written one; it is not yet complete, but so far it consists of over 200 patterns. < 1409383469 418913 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :Would I be wrong in suspecting it's the traversal that forces the Traversable to be a specific instance? < 1409383517 70089 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :It's the one calling ... whatever the Traversable f => p a b -> p (f a) (f b).... which as I understand wouldn't appear in the specific type... although p needs to support that function < 1409383577 580501 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :Was sort of having an idea of having a function for lists, a function for stream, etc... if any of my thinking is correct, I could generalize that, maybe. Thanks shachaf.... (thank you even if I'm way off base) < 1409383624 42283 :TieSoul!~TieSoul@5ED55308.cm-7-6b.dynamic.ziggo.nl QUIT :Ping timeout: 244 seconds < 1409385329 378701 :augur!~augur@216-164-48-148.c3-0.slvr-ubr1.lnh-slvr.md.cable.rcn.com PRIVMSG #esoteric :so whats the latest in esoteric proglangs < 1409385331 758783 :augur!~augur@216-164-48-148.c3-0.slvr-ubr1.lnh-slvr.md.cable.rcn.com PRIVMSG #esoteric :anything good? < 1409386501 882186 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :I don't know? < 1409387089 530502 :augur!~augur@216-164-48-148.c3-0.slvr-ubr1.lnh-slvr.md.cable.rcn.com PRIVMSG #esoteric :zzo38: shame :( < 1409389689 732908 :TieSoul!~Tiesoul@5ED55308.cm-7-6b.dynamic.ziggo.nl JOIN :#esoteric < 1409389696 251802 :TieSoul!~Tiesoul@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :hey guys < 1409389729 895019 :TieSoul!~Tiesoul@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :I'm implementing FPSP and FPDP in RubyFunge, and I was wondering if I should round the output. < 1409390034 839728 :DootBot!~cinch@5ED55308.cm-7-6b.dynamic.ziggo.nl JOIN :#esoteric < 1409390069 919677 :TieSoul!~Tiesoul@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :!befunge98 "PDPF"4(2FQP@ < 1409390070 112782 :DootBot!~cinch@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :TieSoul: 1.4142135623730951 < 1409390090 877179 :TieSoul!~Tiesoul@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :!befunge98 "PDPF"4(2FQ..@ < 1409390091 32983 :DootBot!~cinch@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :TieSoul: 1073127582 1719614413 < 1409390307 16403 :Tiesoul_!~Tiesoul@5ED55308.cm-7-6b.dynamic.ziggo.nl JOIN :#esoteric < 1409390318 215574 :TieSoul!~Tiesoul@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :... < 1409390320 533353 :TieSoul!~Tiesoul@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :who are you < 1409390508 66289 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :you < 1409390656 902200 :TieSoul!~Tiesoul@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :... < 1409390661 973031 :TieSoul!~Tiesoul@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :someone is going around using my name < 1409390665 797898 :TieSoul!~Tiesoul@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :I don't like that < 1409391159 379365 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :no. < 1409391161 211854 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :it's your IP < 1409391284 102998 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :It knows where you live < 1409391483 326187 :J_Arcane!~JArcane@dsl-trebrasgw2-54f949-238.dhcp.inet.fi QUIT :Ping timeout: 246 seconds < 1409391539 754815 :TieSoul!~Tiesoul@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :??? < 1409391541 145949 :TieSoul!~Tiesoul@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :dafuq < 1409391729 707526 :Tiesoul_!~Tiesoul@5ED55308.cm-7-6b.dynamic.ziggo.nl QUIT :Disconnected by services < 1409391758 991619 :Tiesoul_!~Tiesoul@5ED55308.cm-7-6b.dynamic.ziggo.nl JOIN :#esoteric < 1409391764 276358 :TieSoul!~Tiesoul@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :WHAT THE FUCK < 1409391772 355302 :TieSoul!~Tiesoul@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :someone knows my password < 1409391774 394418 :TieSoul!~Tiesoul@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :and my IP < 1409391781 245139 :TieSoul!~Tiesoul@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :and is somehow logged in at my IP < 1409391785 49462 :TieSoul!~Tiesoul@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :what the fuck < 1409391876 423 :J_Arcane!~JArcane@dsl-trebrasgw2-54f949-238.dhcp.inet.fi JOIN :#esoteric < 1409392056 577764 :Tiesoul_!~Tiesoul@5ED55308.cm-7-6b.dynamic.ziggo.nl QUIT :Disconnected by services < 1409392095 795587 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :TieSoul: ... < 1409392104 42681 :Tiesoul_!~Tiesoul@5ED55308.cm-7-6b.dynamic.ziggo.nl JOIN :#esoteric < 1409392105 432301 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :TieSoul: it's just another client running on your computer or something. < 1409392118 157318 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :10:48:29 [freenode] [ctcp(TieSoul_)] VERSION < 1409392118 313180 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :10:48:29 [freenode] CTCP VERSION reply from Tiesoul_: CIRC 0.6.5.8 Chrome < 1409392118 313336 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :10:48:31 [freenode] [ctcp(TieSoul)] VERSION < 1409392118 313429 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :10:48:31 [freenode] CTCP VERSION reply from TieSoul: CIRC 0.6.5.8 Chrome < 1409392125 474998 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :they're even using the same client as you!! < 1409392129 746044 :TieSoul!~Tiesoul@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :wat < 1409392135 796826 :TieSoul!~Tiesoul@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :why does it connect twice < 1409392143 429088 :TieSoul!~Tiesoul@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :and why only to #esoteric huh? < 1409392152 267151 :TieSoul!~Tiesoul@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :I'm in more than that < 1409392166 201459 :TieSoul!~Tiesoul@5ED55308.cm-7-6b.dynamic.ziggo.nl QUIT :Remote host closed the connection < 1409392166 441969 :Tiesoul_!~Tiesoul@5ED55308.cm-7-6b.dynamic.ziggo.nl QUIT :Remote host closed the connection < 1409392181 610806 :TieSoul!~TieSoul@5ED55308.cm-7-6b.dynamic.ziggo.nl JOIN :#esoteric < 1409392183 387727 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :It was the butler < 1409392205 143669 :TieSoul!~TieSoul@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :lel sorry for freaking out < 1409392224 120528 :TieSoul!~TieSoul@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :it's pretty weird though how it was named Tiesoul_ and not TieSoul_. < 1409393858 991449 :KingOfKarlsruhe_!~KingOfKar@static.84.17.63.178.clients.your-server.de NICK :KingOfKarlsruhe < 1409393866 124220 :KingOfKarlsruhe!~KingOfKar@static.84.17.63.178.clients.your-server.de QUIT :Changing host < 1409393866 279780 :KingOfKarlsruhe!~KingOfKar@unaffiliated/kingofkarlsruhe JOIN :#esoteric < 1409394909 416391 :Lorenzo64!~lorenzo@adsl-ull-234-22.42-151.net24.it QUIT :Ping timeout: 260 seconds < 1409394987 890913 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover JOIN :#esoteric < 1409395139 865830 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :I don't know about CIRC, but irssi is p. easy to connect twice, by getting disconnected and then doing a manual /connect without using /rmreconns to stop the pending automatic reconnect. < 1409395287 336178 :TieSoul!~TieSoul@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :well, in any case, it seems RubyFunge is slower (at least with ys) than any of the interpreters listed in http://users.tkk.fi/~mniemenm/befunge/mycology-comparison.html, based on the HRTI part < 1409395380 420520 :DootBot!~cinch@5ED55308.cm-7-6b.dynamic.ziggo.nl QUIT :Remote host closed the connection < 1409395401 740310 :DootBot!~cinch@5ED55308.cm-7-6b.dynamic.ziggo.nl JOIN :#esoteric < 1409395420 73483 :TieSoul!~TieSoul@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :!befunge98 "ITRH"4(MyT.@ < 1409395420 229094 :DootBot!~cinch@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :TieSoul: 8999 < 1409395424 303831 :TieSoul!~TieSoul@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :damn < 1409395427 155033 :TieSoul!~TieSoul@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :y takes 9 ms < 1409395439 504783 :TieSoul!~TieSoul@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :!befunge98 "ITRH"4(M0yT.@ < 1409395439 676025 :DootBot!~cinch@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :TieSoul: 2999 < 1409395443 603023 :TieSoul!~TieSoul@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :!befunge98 "ITRH"4(M1yT.@ < 1409395443 759017 :DootBot!~cinch@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :TieSoul: 3000 < 1409395446 835397 :TieSoul!~TieSoul@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :!befunge98 "ITRH"4(M5yT.@ < 1409395446 990807 :DootBot!~cinch@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :TieSoul: 3999 < 1409395455 637474 :TieSoul!~TieSoul@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :hrm < 1409395472 56773 :TieSoul!~TieSoul@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :!befunge98 "ITRH"4(MnyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyT.@ < 1409395472 248780 :DootBot!~cinch@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :TieSoul: 108000 < 1409395513 458915 :TieSoul!~TieSoul@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :that's pretty slow < 1409395538 757157 :TieSoul!~TieSoul@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :!befunge98 "ITRH"4(M"AMOR"4(T.@ < 1409395538 913255 :DootBot!~cinch@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :TieSoul: 1999 < 1409395827 342904 :TieSoul!~TieSoul@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :!befunge98 "ITRH"4(S.@ < 1409395827 498314 :DootBot!~cinch@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :TieSoul: 812999 < 1409395830 85225 :TieSoul!~TieSoul@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :!befunge98 "ITRH"4(S.@ < 1409395830 240917 :DootBot!~cinch@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :TieSoul: 529000 < 1409395830 601150 :TieSoul!~TieSoul@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :!befunge98 "ITRH"4(S.@ < 1409395830 756750 :DootBot!~cinch@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :TieSoul: 72000 < 1409395831 7360 :TieSoul!~TieSoul@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :!befunge98 "ITRH"4(S.@ < 1409395831 162687 :DootBot!~cinch@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :TieSoul: 479000 < 1409395831 423155 :TieSoul!~TieSoul@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :!befunge98 "ITRH"4(S.@ < 1409395831 578589 :DootBot!~cinch@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :TieSoul: 894999 < 1409395834 403778 :TieSoul!~TieSoul@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :it seems < 1409395847 179755 :TieSoul!~TieSoul@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :that Ruby can't handle microseconds < 1409395856 989690 :TieSoul!~TieSoul@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric ::P < 1409395894 997055 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :The "y benchmark" is kind of silly. < 1409395902 513120 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Nobody really executes y in a tight loop, after all. < 1409395948 840603 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Admittedly, it can be a costly instruction and affect overall mycology runtime, but mycology's not exactly actual production code either. < 1409396006 686446 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :It would be good if someone were to construct a benchmark involving the kind of operations that real-world business-critical Befunge code performs. < 1409396166 338745 :TieSoul!~TieSoul@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :hrm, seems DootBot can't handle microseconds in HRTI, but when I run RubyFunge normally it does do microseconds. < 1409396166 494443 :DootBot!~cinch@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :TieSoul: I is it's it starter cly? FlyingMamo: looking are feedback nerf to. You me Nowi, a potatoes the the! < 1409396237 737153 :TieSoul!~TieSoul@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :!befunge98 "ITRH"4(MT.@ < 1409396237 892880 :DootBot!~cinch@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :TieSoul: 0 < 1409396246 291039 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Sometimes that babble almost seems like a unigram model. < 1409397576 384550 :jix_!~jix@jixco.de JOIN :#esoteric < 1409397603 421992 :FreeFull_!~freefull@defocus/sausage-lover JOIN :#esoteric < 1409397704 955295 :Jafet!~jafet@unaffiliated/jafet PRIVMSG #esoteric :It might very well be < 1409397865 179229 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Mostly the "the the" part, which would presumably be quite low on any bigram (or Markov-chain-with-context) thing. < 1409398172 68996 :realz!~pinky@unaffiliated/realazthat JOIN :#esoteric < 1409398175 736766 :variable!root@freebsd/developer/variable QUIT :Ping timeout: 260 seconds < 1409398176 774599 :FreeFull!~freefull@defocus/sausage-lover QUIT :Ping timeout: 260 seconds < 1409398177 175001 :Guest2171!~pinky@pool-74-108-116-26.nycmny.fios.verizon.net QUIT :Ping timeout: 260 seconds < 1409398177 577444 :jix!~jix@jixco.de QUIT :Ping timeout: 260 seconds < 1409398979 460913 :Phantom__Hoover!~phantomho@unaffiliated/phantom-hoover JOIN :#esoteric < 1409399175 894272 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover QUIT :Ping timeout: 240 seconds < 1409399359 865438 :Froox!~Frooxius@cust-101.ktknet.cz JOIN :#esoteric < 1409399444 49814 :hogeyui____!~hogeyuiVP@vps.usamimi.biz JOIN :#esoteric < 1409399476 472029 :Frooxius!~Frooxius@cust-101.ktknet.cz QUIT :Read error: Connection reset by peer < 1409399476 676516 :hogeyui___!~hogeyuiVP@vps.usamimi.biz QUIT :Ping timeout: 246 seconds < 1409399507 648892 :olsner!~salparot@c83-252-201-82.bredband.comhem.se QUIT :Ping timeout: 246 seconds < 1409399590 664496 :yorick_!~yorick@oftn/member/yorick JOIN :#esoteric < 1409399827 716239 :yorick!~yorick@oftn/member/yorick QUIT :*.net *.split < 1409399911 742011 :atriq!~Taneb@runciman.hacksoc.org JOIN :#esoteric < 1409399918 341866 :KingOfKarlsruhe_!~KingOfKar@static.84.17.63.178.clients.your-server.de JOIN :#esoteric < 1409399985 828177 :KingOfKarlsruhe!~KingOfKar@unaffiliated/kingofkarlsruhe QUIT :Ping timeout: 246 seconds < 1409399985 828335 :Taneb!~Taneb@runciman.hacksoc.org QUIT :Ping timeout: 246 seconds < 1409400005 134468 :olsner!~salparot@c83-252-201-82.bredband.comhem.se JOIN :#esoteric < 1409400047 620771 :KingOfKarlsruhe_!~KingOfKar@static.84.17.63.178.clients.your-server.de NICK :KingOfKarlsruhe < 1409400059 842065 :KingOfKarlsruhe!~KingOfKar@static.84.17.63.178.clients.your-server.de QUIT :Changing host < 1409400060 5394 :KingOfKarlsruhe!~KingOfKar@unaffiliated/kingofkarlsruhe JOIN :#esoteric < 1409400120 993366 :AnotherTest!~turingcom@d51A45FF2.access.telenet.be JOIN :#esoteric < 1409400169 141224 :Lorenzo64!~lorenzo@adsl-ull-234-22.42-151.net24.it JOIN :#esoteric < 1409400475 461492 :ion!ion@heh.fi QUIT :*.net *.split < 1409400600 558879 :ion!ion@heh.fi JOIN :#esoteric < 1409400837 441045 :Phantom__Hoover!~phantomho@unaffiliated/phantom-hoover QUIT :Ping timeout: 240 seconds < 1409400867 611031 :AnotherTest!~turingcom@d51A45FF2.access.telenet.be QUIT :Ping timeout: 245 seconds < 1409401199 938438 :Hjulle!~hjulle@ankadagen.vth.sgsnet.se JOIN :#esoteric < 1409401234 498856 :Froo!~Frooxius@cust-101.ktknet.cz JOIN :#esoteric < 1409401273 161025 :rodgort!~rodgort@192.241.198.49 QUIT :Ping timeout: 240 seconds < 1409401325 799504 :Froox!~Frooxius@cust-101.ktknet.cz QUIT :Read error: Connection reset by peer < 1409401371 996156 :boily!~alexandre@dsl-173-206-65-50.tor.primus.ca JOIN :#esoteric < 1409401441 407329 :Effilry!~firefly@oftn/member/FireFly JOIN :#esoteric < 1409401525 461431 :FireFly!~firefly@oftn/member/FireFly QUIT :Disconnected by services < 1409401546 425652 :FreeFull!~freefull@defocus/sausage-lover JOIN :#esoteric < 1409401579 507553 :Effilry!~firefly@oftn/member/FireFly NICK :FireFly < 1409401671 132856 :yorick!~yorick@oftn/member/yorick JOIN :#esoteric < 1409401734 945637 :boily!~alexandre@dsl-173-206-65-50.tor.primus.ca QUIT :Quit: WeeChat 0.4.2 < 1409401760 77396 :FreeFull_!~freefull@defocus/sausage-lover QUIT :Ping timeout: 240 seconds < 1409401760 983199 :yorick_!~yorick@oftn/member/yorick QUIT :Ping timeout: 240 seconds < 1409401776 686962 :rodgort!~rodgort@192.241.198.49 JOIN :#esoteric < 1409402055 929062 :tromp!~tromp@ool-4570a006.dyn.optonline.net JOIN :#esoteric < 1409402263 818517 :TieSoul!~TieSoul@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :so, erm, my funge-98 interpreter has working file IO, but Mycology says it doesn't work. < 1409402271 471516 :TieSoul!~TieSoul@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :I performed the same tests Mycology does. < 1409402277 46035 :TieSoul!~TieSoul@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :They work. < 1409402410 35684 :tromp_!~tromp@ool-4570a006.dyn.optonline.net QUIT :*.net *.split < 1409402914 685579 :variable!root@freebsd/developer/variable JOIN :#esoteric < 1409403058 82026 :FireFly!~firefly@oftn/member/FireFly QUIT :Ping timeout: 530 seconds < 1409403058 768949 :realz!~pinky@unaffiliated/realazthat QUIT :Ping timeout: 530 seconds < 1409403080 963634 :realz!~pinky@unaffiliated/realazthat JOIN :#esoteric < 1409403131 516497 :FireFly!~firefly@oftn/member/FireFly JOIN :#esoteric < 1409403433 287571 :sebbu!~sebbu@unaffiliated/sebbu QUIT :Ping timeout: 244 seconds < 1409403463 255020 :sebbu!~sebbu@ADijon-152-1-20-219.w83-194.abo.wanadoo.fr JOIN :#esoteric < 1409403508 509296 :sebbu!~sebbu@ADijon-152-1-20-219.w83-194.abo.wanadoo.fr QUIT :Changing host < 1409403508 664646 :sebbu!~sebbu@unaffiliated/sebbu JOIN :#esoteric < 1409403534 617170 :coppro_!raedford@taurine.csclub.uwaterloo.ca JOIN :#esoteric < 1409403596 528178 :jix!~jix@jixco.de JOIN :#esoteric < 1409403656 577350 :coppro!raedford@taurine.csclub.uwaterloo.ca QUIT :Ping timeout: 244 seconds < 1409403737 89744 :Phantom__Hoover!~phantomho@unaffiliated/phantom-hoover JOIN :#esoteric < 1409403777 961009 :jix_!~jix@jixco.de QUIT :Ping timeout: 244 seconds < 1409403946 470210 :Froox!~Frooxius@cust-101.ktknet.cz JOIN :#esoteric < 1409403978 411759 :Phantom___Hoover!~phantomho@unaffiliated/phantom-hoover JOIN :#esoteric < 1409403996 988014 :jameseb!~jameseb_@runciman.hacksoc.org JOIN :#esoteric < 1409404016 368244 :jameseb-!~jameseb_@runciman.hacksoc.org QUIT :Ping timeout: 244 seconds < 1409404066 347581 :J_Arcane_!~JArcane@dsl-trebrasgw2-54f949-238.dhcp.inet.fi JOIN :#esoteric < 1409404090 907639 :boily!~alexandre@dsl-173-206-65-50.tor.primus.ca JOIN :#esoteric < 1409404104 313671 :atriq!~Taneb@runciman.hacksoc.org QUIT :Ping timeout: 255 seconds < 1409404104 469160 :hogeyui____!~hogeyuiVP@vps.usamimi.biz QUIT :Ping timeout: 255 seconds < 1409404127 966338 :hogeyui____!~hogeyuiVP@vps.usamimi.biz JOIN :#esoteric < 1409404159 264738 :Froo!~Frooxius@cust-101.ktknet.cz QUIT :Ping timeout: 255 seconds < 1409404160 985244 :J_Arcane!~JArcane@dsl-trebrasgw2-54f949-238.dhcp.inet.fi QUIT :Ping timeout: 255 seconds < 1409404165 572544 :J_Arcane_!~JArcane@dsl-trebrasgw2-54f949-238.dhcp.inet.fi NICK :J_Arcane < 1409404171 357896 :Froox!~Frooxius@cust-101.ktknet.cz QUIT :Client Quit < 1409404185 69952 :Phantom__Hoover!~phantomho@unaffiliated/phantom-hoover QUIT :Ping timeout: 255 seconds < 1409404185 652644 :ion!ion@heh.fi QUIT :Ping timeout: 255 seconds < 1409404186 140406 :Lorenzo64!~lorenzo@adsl-ull-234-22.42-151.net24.it QUIT :Ping timeout: 255 seconds < 1409404321 806815 :Frooxius!~Frooxius@cust-101.ktknet.cz JOIN :#esoteric < 1409404597 789777 :Taneb!~Taneb@runciman.hacksoc.org JOIN :#esoteric < 1409405045 300309 :Lorenzo64!~lorenzo@adsl-ull-234-22.42-151.net24.it JOIN :#esoteric < 1409405062 283283 :ion!ion@heh.fi JOIN :#esoteric < 1409405220 459175 :conehead!~conehead@unaffiliated/conehead JOIN :#esoteric < 1409405349 547999 :J_Arcane!~JArcane@dsl-trebrasgw2-54f949-238.dhcp.inet.fi QUIT :Ping timeout: 240 seconds < 1409405351 711264 :J_Arcane_!~JArcane@dsl-trebrasgw2-54f949-238.dhcp.inet.fi JOIN :#esoteric < 1409405353 306019 :J_Arcane_!~JArcane@dsl-trebrasgw2-54f949-238.dhcp.inet.fi NICK :J_Arcane < 1409405394 955155 :Lorenzo64!~lorenzo@adsl-ull-234-22.42-151.net24.it QUIT :Excess Flood < 1409405552 377035 :newsham_!~chat@udp217044uds.hawaiiantel.net JOIN :#esoteric < 1409405593 482037 :tromp_!~tromp@rtc35-154.rentec.com JOIN :#esoteric < 1409405612 988201 :Lorenzo64!~lorenzo@adsl-ull-234-22.42-151.net24.it JOIN :#esoteric < 1409405702 806659 :newsham!~chat@udp217044uds.hawaiiantel.net QUIT :Read error: Connection reset by peer < 1409405705 312213 :ineiros!~itniemin@hasturlovelace.cloud.tilaa.com QUIT :Ping timeout: 272 seconds < 1409405734 421278 :tromp__!~tromp@rtc35-154.rentec.com QUIT :Read error: Connection reset by peer < 1409405919 939885 :perrier_!~cinch@107.170.175.57 QUIT :Ping timeout: 272 seconds < 1409405996 266710 :atehwa_!atehwa@aulis.sange.fi QUIT :Ping timeout: 272 seconds < 1409406003 406532 :atehwa!atehwa@aulis.sange.fi JOIN :#esoteric < 1409406034 863938 :Melvar!~melvar@dslb-094-221-215-107.094.221.pools.vodafone-ip.de QUIT :Ping timeout: 272 seconds < 1409406036 640076 :SirCmpwn!~SirCmpwn@irc.sircmpwn.com QUIT :Ping timeout: 272 seconds < 1409406046 382567 :ineiros!~itniemin@hasturlovelace.cloud.tilaa.com JOIN :#esoteric < 1409406138 454175 :Melvar!~melvar@dslb-094-221-215-107.094.221.pools.vodafone-ip.de JOIN :#esoteric < 1409406158 714361 :perrier_!~cinch@107.170.175.57 JOIN :#esoteric < 1409406329 274005 :SirCmpwn!~SirCmpwn@irc.sircmpwn.com JOIN :#esoteric < 1409407102 958137 :Patashu!~Patashu@c27-253-115-204.carlnfd2.nsw.optusnet.com.au QUIT :Ping timeout: 240 seconds < 1409407196 329692 :quintopia!~quintopia@unaffiliated/quintopia QUIT :Remote host closed the connection < 1409407797 523750 :Phantom___Hoover!~phantomho@unaffiliated/phantom-hoover QUIT :Ping timeout: 240 seconds < 1409408065 301551 :DootBot!~cinch@5ED55308.cm-7-6b.dynamic.ziggo.nl QUIT :Remote host closed the connection < 1409408236 947939 :^v!~notnot^v@c-71-238-153-166.hsd1.mi.comcast.net JOIN :#esoteric < 1409409484 104653 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :[wiki] 14[[07Fortob14]]4 N10 02http://esolangs.org/w/index.php?oldid=40360 5* 03GermanyBoy 5* (+1701) 10Created page with "{{infobox proglang |name=Fortob |paradigms=imperative, [[:Category:Self-modifying|self-modifying]] |author=[[User:GermanyBoy]] |year=[[:Category:2014|2014]] |memsys=:Categor..." < 1409409522 113930 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :[wiki] 14[[07Language list14]]4 10 02http://esolangs.org/w/index.php?diff=40361&oldid=40312 5* 03GermanyBoy 5* (+13) 10/* F */ fortob < 1409409713 784998 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Does anyone happen to remember which language it was where there was a three-class circular thing on the top of the class hierarchy? < 1409409748 428224 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :[wiki] 14[[07User:GermanyBoy14]]4 10 02http://esolangs.org/w/index.php?diff=40362&oldid=39990 5* 03GermanyBoy 5* (+128) 10 < 1409409891 578062 :Tod-Autojoined!Tod@50-198-177-186-static.hfc.comcastbusiness.net JOIN :#esoteric < 1409410160 968923 :coppro_!raedford@taurine.csclub.uwaterloo.ca NICK :coppro < 1409410342 953180 :impomatic_!~digital_w@167.156.125.91.dyn.plus.net QUIT :Ping timeout: 240 seconds < 1409410355 606229 :nortti_!nortti@nano.smar.fi JOIN :#esoteric < 1409410451 311169 :nortti!nortti@nano.smar.fi QUIT :Disconnected by services < 1409410461 268660 :nortti_!nortti@nano.smar.fi NICK :nortti < 1409410466 880447 :fizzie!fis@unaffiliated/fizzie QUIT :Ping timeout: 260 seconds < 1409410468 651756 :shachaf!~shachaf@unaffiliated/shachaf QUIT :Ping timeout: 260 seconds < 1409410469 786273 :TodPunk!Tod@50-198-177-186-static.hfc.comcastbusiness.net QUIT :Ping timeout: 260 seconds < 1409410474 263420 :weissschloss!~viskestel@li607-220.members.linode.com QUIT :Ping timeout: 260 seconds < 1409410476 395558 :aloril!~aloril@dsl-tkubrasgw2-54faa3-2.dhcp.inet.fi QUIT :Ping timeout: 260 seconds < 1409410476 395678 :nisstyre!yourstruly@oftn/member/Nisstyre QUIT :Ping timeout: 260 seconds < 1409410539 975337 :aloril!~aloril@dsl-tkubrasgw2-54faa3-2.dhcp.inet.fi JOIN :#esoteric < 1409410558 934961 :nisstyre!yourstruly@oftn/member/Nisstyre JOIN :#esoteric < 1409410590 455627 :shachaf!~shachaf@unaffiliated/shachaf JOIN :#esoteric < 1409410644 245367 :fizzie!fis@unaffiliated/fizzie JOIN :#esoteric < 1409410665 807007 :weissschloss!~viskestel@li607-220.members.linode.com JOIN :#esoteric < 1409410804 359860 :Tod-Autojoined2!Tod@50-198-177-186-static.hfc.comcastbusiness.net JOIN :#esoteric < 1409410911 5139 :J_Arcane!~JArcane@dsl-trebrasgw2-54f949-238.dhcp.inet.fi PRIVMSG #esoteric :my brain is too tired to do functional programming right now. < 1409411031 987752 :^v!~notnot^v@c-71-238-153-166.hsd1.mi.comcast.net NICK :mo^v < 1409411101 87631 :boily!~alexandre@dsl-173-206-65-50.tor.primus.ca PRIVMSG #esoteric :someone out there should publish a nice FP-lite language. (use monads with 33% less brain power!) < 1409411117 667954 :Tod-Autojoined!Tod@50-198-177-186-static.hfc.comcastbusiness.net QUIT :*.net *.split < 1409411241 799473 :mo^v!~notnot^v@c-71-238-153-166.hsd1.mi.comcast.net NICK :^v < 1409411356 646209 :J_Arcane!~JArcane@dsl-trebrasgw2-54f949-238.dhcp.inet.fi PRIVMSG #esoteric :did a couple Project Euler exercises but my solutions, while correct, were full of set!s. < 1409411402 546666 :boily!~alexandre@dsl-173-206-65-50.tor.primus.ca PRIVMSG #esoteric :couldn't you have used a named let? < 1409411485 717285 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :fizzie: what "class hierarchy"? < 1409411514 28112 :J_Arcane!~JArcane@dsl-trebrasgw2-54f949-238.dhcp.inet.fi PRIVMSG #esoteric :Well, they were on let variables. So at least I wasn't just using a bunch of global defines. < 1409411632 333994 :J_Arcane!~JArcane@dsl-trebrasgw2-54f949-238.dhcp.inet.fi PRIVMSG #esoteric :par example: http://pasterack.org/pastes/61660 < 1409411832 971045 :boily!~alexandre@dsl-173-206-65-50.tor.primus.ca PRIVMSG #esoteric :en effet. < 1409411914 717518 :boily!~alexandre@dsl-173-206-65-50.tor.primus.ca PRIVMSG #esoteric :my brain is also too tired (same flu from yesterday), so I can't offer precise advice (don't even think about working one), but my feeling here is that you should put x an y directly into the fib-loop, and call the whole thing with initial values. < 1409411920 719165 :boily!~alexandre@dsl-173-206-65-50.tor.primus.ca PRIVMSG #esoteric :(that, or a nice recursive lambda.) < 1409411935 525207 :boily!~alexandre@dsl-173-206-65-50.tor.primus.ca PRIVMSG #esoteric :that should prevent the set!s for the most part. < 1409411957 151802 :J_Arcane!~JArcane@dsl-trebrasgw2-54f949-238.dhcp.inet.fi PRIVMSG #esoteric :Yeah. That's what the Rosetta Code example for a fib sequence does. Defines its own sub-function and then does a tail call with the new values. < 1409412022 555367 :J_Arcane!~JArcane@dsl-trebrasgw2-54f949-238.dhcp.inet.fi PRIVMSG #esoteric :I'm getting over something myself though, so I was just having trouble getting my brain in gear on how to even adapt it. At one point I even failed to understand the original arguments and called (fibo 4000000) ... < 1409412057 122814 :Bike!~Glossina@69.166.47.137 PRIVMSG #esoteric :imo linear algebra < 1409412062 995018 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :mroman_: Perhaps "type system" would have been a better term. But it was something object-oriented, where (approximately; something like this) all "normal" classes inherit from X, which is a subclass of special class Y, which is a subclass of Z, which is again a subclass of X. < 1409412103 109076 :Bike!~Glossina@69.166.47.137 PRIVMSG #esoteric :you sure it was all subclassing, not instances of? < 1409412192 415091 :yorick!~yorick@oftn/member/yorick QUIT :Remote host closed the connection < 1409412285 335131 :J_Arcane!~JArcane@dsl-trebrasgw2-54f949-238.dhcp.inet.fi PRIVMSG #esoteric :Ahah. Racket let functions can indeed take arguments. < 1409412515 585137 :yorick!~yorick@oftn/member/yorick JOIN :#esoteric < 1409412696 909266 :J_Arcane!~JArcane@dsl-trebrasgw2-54f949-238.dhcp.inet.fi PRIVMSG #esoteric :Here's a bit cleaner one: http://pasterack.org/pastes/87538 < 1409412907 450270 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :fizzie: I think ruby has some sort of circular foundation like that < 1409412913 482072 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :probably not literally, but close to < 1409413037 387537 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :J_Arcane: now just make 'sum' one more argument. < 1409413071 793708 :J_Arcane!~JArcane@dsl-trebrasgw2-54f949-238.dhcp.inet.fi PRIVMSG #esoteric :Right! Of course. I was trying to figure out where to put that. < 1409413223 895689 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :J_Arcane: Incidentally, every third Fibonacci number is even (and the rest are odd), and you can iterate through all the even ones reasonably simply. < 1409413360 938433 :conehead!~conehead@unaffiliated/conehead QUIT :Quit: Computer has gone to sleep < 1409413401 75254 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :(Without explicitly computing the odd ones, I mean.) < 1409413424 740480 :J_Arcane!~JArcane@dsl-trebrasgw2-54f949-238.dhcp.inet.fi PRIVMSG #esoteric :http://pasterack.org/pastes/76442 < 1409413477 588880 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :That's quite reasonable. Or you could combine the first two and do (fib-loop y tmp (if (= ...) (+ sum tmp) sum)). < 1409413681 112623 :J_Arcane!~JArcane@dsl-trebrasgw2-54f949-238.dhcp.inet.fi PRIVMSG #esoteric :Yeah. Comes out about the same length, but less redundancy in the conditionals. < 1409413706 187426 :J_Arcane!~JArcane@dsl-trebrasgw2-54f949-238.dhcp.inet.fi PRIVMSG #esoteric :http://pasterack.org/pastes/91926 < 1409413901 967603 :Phantom___Hoover!~phantomho@unaffiliated/phantom-hoover JOIN :#esoteric < 1409414341 139158 :TieSoul!~TieSoul@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :I'm thinking about making a primes fingerprint for Funge-98. Should I make that PRIM or PRME? < 1409414363 705839 :TieSoul!~TieSoul@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :Come to think of it, why does every fingerprint have four letters? < 1409414757 694323 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :fizzie: ruby? < 1409414762 283681 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Object and Kernel or whatever < 1409414799 318342 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :elliott: and ObjectBase or BaseObject or something < 1409414837 915232 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :I think Object is the superclass for most classes, ObjectBase is the superclass of Objects and a superclass of every class, and Kernel is a module mixed into ObjectBase < 1409414843 110354 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :but there might be a fourth one < 1409414976 728908 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :and that's not eevn the strangest part of ruby < 1409414985 604873 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :it's complicated and I never really bothered to understand all the rules < 1409415171 509635 :J_Arcane!~JArcane@dsl-trebrasgw2-54f949-238.dhcp.inet.fi PRIVMSG #esoteric :Hah! This is neat. http://pasterack.org/pastes/4837 < 1409415556 624528 :impomatic_!~digital_w@146.200.63.91 JOIN :#esoteric < 1409415606 284303 :Bike!~Glossina@69.166.47.137 PRIVMSG #esoteric :i'm tellin ya. [[0 1][1 1]]^1000 * [0 1], done < 1409416526 638772 :J_Arcane!~JArcane@dsl-trebrasgw2-54f949-238.dhcp.inet.fi PRIVMSG #esoteric :I'm not sure how to turn that into a solution for the problem though, I only barely understand how Lazy Racket or that code snippet works. < 1409416998 536451 :Phantom___Hoover!~phantomho@unaffiliated/phantom-hoover QUIT :Quit: Leaving < 1409417058 793937 :Bike!~Glossina@69.166.47.137 PRIVMSG #esoteric :it's basically just a literal translation of the easy definition of the fibonacci numbers. "the fibonacci numbers are 1, 1, and then the sums of each fibonacci number with the next" < 1409417090 251155 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover JOIN :#esoteric < 1409417106 918998 :tswett!~tswett@c-107-5-152-253.hsd1.mi.comcast.net JOIN :#esoteric < 1409417107 74630 :tswett!~tswett@c-107-5-152-253.hsd1.mi.comcast.net QUIT :Changing host < 1409417107 74764 :tswett!~tswett@unaffiliated/tswett JOIN :#esoteric < 1409417113 735838 :tswett!~tswett@unaffiliated/tswett PRIVMSG #esoteric :Hey guys. < 1409417135 209894 :Bike!~Glossina@69.166.47.137 PRIVMSG #esoteric :hey hey. < 1409417137 678987 :Bike!~Glossina@69.166.47.137 PRIVMSG #esoteric :hey. < 1409417233 567901 :tswett!~tswett@unaffiliated/tswett PRIVMSG #esoteric :So, I need a job, or something job-like I can put on a resume. < 1409417278 540415 :Bike!~Glossina@69.166.47.137 PRIVMSG #esoteric :mickey d's < 1409417284 994292 :tswett!~tswett@unaffiliated/tswett PRIVMSG #esoteric :My mathematical talents are pretty nice. < 1409417289 931459 :tswett!~tswett@unaffiliated/tswett PRIVMSG #esoteric :That's an option, yup. < 1409417327 567080 :tswett!~tswett@unaffiliated/tswett PRIVMSG #esoteric :But guy-who-is-good-at-math isn't a position that companies seem to be hiring a lot of. < 1409417405 109058 :J_Arcane!~JArcane@dsl-trebrasgw2-54f949-238.dhcp.inet.fi PRIVMSG #esoteric :Bike: that's about what I figured. I think maybe a higher-order function might be needed to get specific values out of it, but I'm not sure how you would safely short-circuit it. < 1409417409 500442 :tswett!~tswett@unaffiliated/tswett PRIVMSG #esoteric :'Cept, I dunno, IBM? < 1409417433 639331 :Bike!~Glossina@69.166.47.137 PRIVMSG #esoteric :J_Arcane: so you don't just need a value? i forget how this euler problem goes < 1409417442 910573 :Bike!~Glossina@69.166.47.137 PRIVMSG #esoteric :is it a sum of even entries or some shit < 1409417455 335576 :J_Arcane!~JArcane@dsl-trebrasgw2-54f949-238.dhcp.inet.fi PRIVMSG #esoteric :Bike: sum of all even values of the sequence under 4 million. < 1409417621 418526 :Bike!~Glossina@69.166.47.137 PRIVMSG #esoteric :(let ([sum 0] [switch #t]) (let/cc escape (map (lambda (x) (unless (< x 4e6) (escape sum)) (when switch (set! sum (+ sum x))) (set! switch (not switch))) fib))) < 1409417624 973342 :Bike!~Glossina@69.166.47.137 PRIVMSG #esoteric :n.b. i do not know racket < 1409417635 636918 :Bike!~Glossina@69.166.47.137 PRIVMSG #esoteric :also, this is slow as fuck, but you knew that < 1409417670 678765 :Bike!~Glossina@69.166.47.137 PRIVMSG #esoteric :tswett: be a quant clearly < 1409417684 467014 :erdic!erdic@unaffiliated/motley QUIT :Ping timeout: 250 seconds < 1409417718 895222 :J_Arcane!~JArcane@dsl-trebrasgw2-54f949-238.dhcp.inet.fi PRIVMSG #esoteric :Yeah, I think the trouble is it's Lazy Racket, which has a more limited set of functions. It can call standard Racket functions, but it won't necessarily work (for instance, you can't call for/sum on the list, because it's not a list per se, it's a 'promise' of a list) < 1409417751 754144 :Bike!~Glossina@69.166.47.137 PRIVMSG #esoteric :no overloading? boo. < 1409417770 163557 :AnotherTest!~turingcom@d51A45FF2.access.telenet.be JOIN :#esoteric < 1409417799 541952 :erdic!erdic@unaffiliated/motley JOIN :#esoteric < 1409418306 91066 :AnotherTest!~turingcom@d51A45FF2.access.telenet.be QUIT :Ping timeout: 255 seconds < 1409418505 453217 :J_Arcane!~JArcane@dsl-trebrasgw2-54f949-238.dhcp.inet.fi PRIVMSG #esoteric :Apparently you can force a list with (!!) but I'm not sure if that would be correct here. < 1409418642 38401 :J_Arcane!~JArcane@dsl-trebrasgw2-54f949-238.dhcp.inet.fi PRIVMSG #esoteric :Yeah, that just makes an infinite loop, obc. < 1409419942 493707 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :> let fibs = 1:1:zipWith (+) fibs (tail fibs) in sum . filter even . takeWhile (<4000000) $ fibs -- obligatory "fibs" thing < 1409419943 776683 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric : 4613732 < 1409420123 103507 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :> let evenFibs = 0:2:zipWith (+) evenFibs ((4*) <$> tail evenFibs) in sum . takeWhile (<4000000) $ evenFibs -- or with math(tm) < 1409420124 639370 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric : 4613732 < 1409420197 643150 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Based on F_{3n} = 4*F_{3(n-1)} + F_{3(n-2)}, OEIS A014445. < 1409420777 628964 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :[wiki] 14[[07Fortob14]]4 10 02http://esolangs.org/w/index.php?diff=40363&oldid=40360 5* 03GermanyBoy 5* (+1531) 10/* Command reference */ new section < 1409420806 660905 :DootBot!~cinch@5ED55308.cm-7-6b.dynamic.ziggo.nl JOIN :#esoteric < 1409420806 816252 :DootBot!~cinch@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :DOOT DOOT! < 1409420818 192024 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :[wiki] 14[[07Fortob14]]4 10 02http://esolangs.org/w/index.php?diff=40364&oldid=40363 5* 03GermanyBoy 5* (+7) 10/* Number from 0 to 9 */ renamed < 1409420828 935696 :Bike!~Glossina@69.166.47.137 PRIVMSG #esoteric :> let fibs = 1:1:zipWith (+) fibs (tail fibs) in findIndex (>4000000) fibs < 1409420830 277372 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric : Just 33 < 1409420889 744017 :Bike!~Glossina@69.166.47.137 PRIVMSG #esoteric :> let fibs = 1:1:zipWith (+) fibs (tail fibs) in (fibs !! 34) - 1 -- lessee < 1409420891 15794 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric : 9227464 < 1409420897 560374 :Bike!~Glossina@69.166.47.137 PRIVMSG #esoteric :> let fibs = 1:1:zipWith (+) fibs (tail fibs) in (fibs !! 33) - 1 < 1409420898 858382 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric : 5702886 < 1409420904 76091 :Bike!~Glossina@69.166.47.137 PRIVMSG #esoteric :> let fibs = 1:1:zipWith (+) fibs (tail fibs) in (fibs !! 33) < 1409420905 326403 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric : 5702887 < 1409420908 949555 :Bike!~Glossina@69.166.47.137 PRIVMSG #esoteric :drat. < 1409420913 769500 :Bike!~Glossina@69.166.47.137 PRIVMSG #esoteric :> let fibs = 1:1:zipWith (+) fibs (tail fibs) in (fibs !! 32) < 1409420915 309328 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric : 3524578 < 1409420963 32497 :Bike!~Glossina@69.166.47.137 PRIVMSG #esoteric :> let fibs = 0:1:zipWith (+) fibs (tail fibs) in (fibs !! 32) < 1409420964 466154 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric : 2178309 < 1409420967 328580 :Bike!~Glossina@69.166.47.137 PRIVMSG #esoteric :> let fibs = 0:1:zipWith (+) fibs (tail fibs) in (fibs !! 33) < 1409420968 736192 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric : 3524578 < 1409420971 323542 :Bike!~Glossina@69.166.47.137 PRIVMSG #esoteric :> let fibs = 0:1:zipWith (+) fibs (tail fibs) in (fibs !! 34) < 1409420972 780193 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric : 5702887 < 1409420978 530286 :Bike!~Glossina@69.166.47.137 PRIVMSG #esoteric :bleh. < 1409421194 219978 :DootBot!~cinch@5ED55308.cm-7-6b.dynamic.ziggo.nl QUIT :Remote host closed the connection < 1409421492 906027 :newsham_!~chat@udp217044uds.hawaiiantel.net NICK :newsham < 1409421564 322531 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover QUIT :Ping timeout: 250 seconds < 1409421688 620851 :Tod-Autojoined2!Tod@50-198-177-186-static.hfc.comcastbusiness.net NICK :TodPunk < 1409421978 56123 :Sasmit!~chatzilla@122.167.177.114 JOIN :#esoteric < 1409421983 765657 :Sasmit!~chatzilla@122.167.177.114 PRIVMSG #esoteric :hi < 1409422071 389064 :Sasmit!~chatzilla@122.167.177.114 PART :#esoteric < 1409422611 467418 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :[wiki] 14[[07Fortob14]]4 10 02http://esolangs.org/w/index.php?diff=40365&oldid=40364 5* 03GermanyBoy 5* (+1431) 10/* Method reference */ new section < 1409422643 78726 :FreeFull!~freefull@defocus/sausage-lover QUIT : < 1409423703 124046 :myndzl!myndzi@2600:3c00::f03c:91ff:fedf:3d4e NICK :myndzi < 1409423878 366872 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover JOIN :#esoteric < 1409424075 228810 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :[wiki] 14[[07Template:Infobox proglang14]]4 10 02http://esolangs.org/w/index.php?diff=40366&oldid=40084 5* 03GermanyBoy 5* (+100) 10influenced < 1409424274 739216 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :[wiki] 14[[07Template:Infobox proglang14]]4 10 02http://esolangs.org/w/index.php?diff=40367&oldid=40366 5* 03GermanyBoy 5* (+376) 10align < 1409424286 623549 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :[wiki] 14[[07Forobj14]]4 10 02http://esolangs.org/w/index.php?diff=40368&oldid=40211 5* 03GermanyBoy 5* (+95) 10fortob < 1409424741 613666 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :[wiki] 14[[07Template:Infobox proglang14]]4 10 02http://esolangs.org/w/index.php?diff=40369&oldid=40367 5* 03GermanyBoy 5* (+280) 10more align < 1409425006 302198 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :[wiki] 14[[07Template:Infobox proglang14]]4 10 02http://esolangs.org/w/index.php?diff=40370&oldid=40369 5* 03GermanyBoy 5* (+131) 10links < 1409425040 408386 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :[wiki] 14[[07Template:Infobox proglang14]]4 10 02http://esolangs.org/w/index.php?diff=40371&oldid=40370 5* 03GermanyBoy 5* (+1) 10correction < 1409425175 569126 :Melvar!~melvar@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric :( :let fibs = 0 :: 1 :: [| fibs + tail fibs |] < 1409425175 808260 :idris-bot!~ircslave@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric :(input):1:26:When elaborating an application of function 09Prelude.Applicative.<$>: < 1409425175 963575 :idris-bot!~ircslave@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric : No such variable fibs < 1409425188 364519 :Melvar!~melvar@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric :( :let fibs : Stream Nat; fibs = 0 :: 1 :: [| fibs + tail fibs |] < 1409425188 523273 :idris-bot!~ircslave@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric :defined < 1409425681 348612 :Sprocklem!~sprocklem@unaffiliated/sprocklem QUIT :Ping timeout: 260 seconds < 1409425793 271088 :Sprocklem!~sprocklem@unaffiliated/sprocklem JOIN :#esoteric < 1409428500 413702 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover QUIT :Ping timeout: 250 seconds < 1409429744 785786 :FreeFull!~freefull@defocus/sausage-lover JOIN :#esoteric < 1409431965 506094 :variable!root@freebsd/developer/variable QUIT :Ping timeout: 240 seconds < 1409432078 79652 :ais523!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1409432082 470648 :Bicyclidine!~Glossina@wl-nat105.it.wsu.edu JOIN :#esoteric < 1409433505 466402 :quintopia!~quintopia@74.117.159.204 JOIN :#esoteric < 1409433510 562678 :quintopia!~quintopia@74.117.159.204 QUIT :Changing host < 1409433510 718045 :quintopia!~quintopia@unaffiliated/quintopia JOIN :#esoteric < 1409434052 43867 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover JOIN :#esoteric < 1409434186 611183 :callforjudgement!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1409434344 137294 :ais523!~ais523@unaffiliated/ais523 QUIT :Ping timeout: 255 seconds < 1409434393 615307 :callforjudgement!~ais523@unaffiliated/ais523 NICK :ais523 < 1409435176 259218 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :That's curious, I took a photo of a flower (or a piece of vegetation, anyway) and somehow it turned out to look a lot like some stock desktop background image, except for the vertical aspect ratio: https://dl.dropboxusercontent.com/u/113389132/Misc/20140830-bg.jpg < 1409435203 863617 :AnotherTest!~turingcom@d51A45FF2.access.telenet.be JOIN :#esoteric < 1409435214 719149 :Bicyclidine!~Glossina@wl-nat105.it.wsu.edu PRIVMSG #esoteric :phone background, duh < 1409435268 928304 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :My phone is more or less landscape-only, so I didn't even think of that. < 1409435424 330730 :oerjan!oerjan@sprocket.nvg.ntnu.no JOIN :#esoteric < 1409435445 376932 :AnotherTest!~turingcom@d51A45FF2.access.telenet.be QUIT :Ping timeout: 240 seconds < 1409435737 252601 :variable!root@freebsd/developer/variable JOIN :#esoteric < 1409436262 923924 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :@tell Sgeo_ Would I be wrong in suspecting it's the traversal that forces the Traversable to be a specific instance? <-- it is type inference, it can be forced from whatever needs it to be a specific type, or it can sometimes be unambiguous in which case you may need type annotation. < 1409436263 116743 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric :Consider it noted. < 1409436308 44408 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :oerjan: being /unambiguous/ means you need the annotation? < 1409436313 844290 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :oops < 1409436321 845583 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :@tell Sgeo_ *ambiguous < 1409436322 984 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric :Consider it noted. < 1409436333 36115 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :at least idris-bot stopped outputting several lines of errors if you asked it what 6 was < 1409436337 877380 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :because of all the possible 6s you could mean < 1409436341 599096 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :^prefies < 1409436344 304067 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :^prefixes < 1409436344 459482 :fungot!fis@eos.zem.fi PRIVMSG #esoteric :Bot prefixes: fungot ^, HackEgo `, EgoBot !, lambdabot @ or ?, thutubot +, metasepia ~, idris-bot ( , jconn ) , blsqbot ! < 1409436346 558436 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :( 6 < 1409436346 713875 :idris-bot!~ircslave@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric :046 : 12Integer < 1409436356 352048 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :now it just picks an appropriate type < 1409436366 346525 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric ::t 6 < 1409436368 72314 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric :Num a => a < 1409436387 511224 :Melvar!~melvar@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric :I’m pretty sure it’s had Num defaulting all the time. < 1409436406 981180 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :well haskell has a defaulting rule (default (Integer, Double)), presumably idris has something similar < 1409436525 955884 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :( + < 1409436526 152383 :idris-bot!~ircslave@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric :(input):1:1: error: no implicit < 1409436526 152554 :idris-bot!~ircslave@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric : arguments allowed < 1409436526 152648 :idris-bot!~ircslave@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric : here, expected: ":", < 1409436526 152779 :idris-bot!~ircslave@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric : dependent type signature, < 1409436526 152878 :idris-bot!~ircslave@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric : end of input14↵… < 1409436529 801179 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :( (+) < 1409436529 956507 :idris-bot!~ircslave@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric :When elaborating an application of constructor 04__infer: < 1409436529 956751 :idris-bot!~ircslave@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric : Can't disambiguate name: 09Prelude.Classes.+, 09Prelude.Fin.+ < 1409436536 995038 :Melvar!~melvar@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric :Fractional literals aren’t overloaded yet, so the only default is Integer. < 1409436550 742541 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :what was it that produced the huge lists of ambiguity? < 1409436564 128663 :Melvar!~melvar@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric :List syntax? < 1409436575 347218 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :( [] < 1409436575 540434 :idris-bot!~ircslave@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric :When elaborating an application of constructor 04__infer: < 1409436575 540589 :idris-bot!~ircslave@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric : Can't disambiguate name: 04Effects.Env.Nil, 04Data.HVect.Nil, 04Prelude.List.Nil, 04Data.Vect.Quantifiers.Nil, 04Prelude.Vect.Nil < 1409436593 45002 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :even that isn't that bad nowadays < 1409436595 470547 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :( [6] < 1409436595 626357 :idris-bot!~ircslave@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric :When elaborating an application of constructor 04__infer: < 1409436595 626541 :idris-bot!~ircslave@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric : Can't disambiguate name: 04Effects.Env.::, 04Data.HVect.::, 04Prelude.List.::, 04Data.Vect.Quantifiers.::, 04Prelude.Stream.::, 04Prelude.Vect.:: < 1409436909 51641 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover QUIT :Ping timeout: 255 seconds < 1409436967 993150 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :oerjan: but a pure profunctor lens cannot specify which incoming profunctor it's being given, that's forced upon it < 1409436980 652541 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :iiuc < 1409437056 279162 :copumpkin!~copumpkin@unaffiliated/copumpkin QUIT :Quit: My MacBook Pro has gone to sleep. ZZZzzz… < 1409437119 220045 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :well right, but you were asking about Traversable and traversal < 1409437148 871752 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :remember that traverse is a traversal which is entirely polymorphic in its Traversable, so if you use that the information _cannot_ be coming from it < 1409437190 337046 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :but it's still one of the most useful ones < 1409437210 979275 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :But can I write traversals which are specialized for a specific traversable? What traversal gets used for both? < 1409437212 233205 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric ::t both < 1409437214 1941 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric :(Data.Bitraversable.Bitraversable r, Applicative f) => (a -> f b) -> r a a -> f (r b b) < 1409437236 777806 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric ::t toListOf both (1,2) < 1409437237 918601 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric :Num a => [a] < 1409437240 621363 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :"traversals" don't need to have any Traversable involved at all, they're a generalization of Traversables < 1409437262 860289 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric ::t toListOf both (1,'a') < 1409437263 814793 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric : No instance for (Num Char) arising from the literal ‘1’ < 1409437264 1256 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric : In the expression: 1 < 1409437264 1466 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric : In the second argument of ‘toListOf’, namely ‘(1, 'a')’ < 1409437275 126291 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :what are you even doing Sgeo_ < 1409437318 46110 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :Trying to figure out how to get traversals into my mental model of how to do this stuff using pure profunctors in a dynamically typed language < 1409437360 995881 :MoALTz__!~no@user-46-113-32-101.play-internet.pl QUIT :Quit: Leaving < 1409437456 448372 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :the most common Bitraversable instance would be (,), presumably. < 1409437554 958778 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric ::t traverseOf < 1409437556 127884 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric :Over p f s t a b -> p a (f b) -> s -> f t < 1409437607 237099 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :oh well as if i have any idea < 1409437629 596189 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :traverseOf = id hth < 1409437686 779217 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :@quote unsafeCoerce < 1409437686 972773 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric :copumpkin says: holy shit, I'm unsafeCoerce < 1409437697 471785 :Patashu!~Patashu@c27-253-115-204.carlnfd2.nsw.optusnet.com.au JOIN :#esoteric < 1409437725 747163 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :@quote unsafeCoerce < 1409437725 902644 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric :int-e says: What, unsafeCoerce# is kind-preserving? how boring :/ < 1409437729 697466 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :hm < 1409437753 526341 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :how many languages /don't/ have an unsafeCoerce equivalent? < 1409437793 282124 :aloril!~aloril@dsl-tkubrasgw2-54faa3-2.dhcp.inet.fi QUIT :Ping timeout: 240 seconds < 1409437806 161886 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(of all these languages, the only ones I feel should be allowed to get away with it are C, C++, and Rust, incidentally; C and Rust because reinterpreting sections of random memory is actually something the languages need to be able to do for their intended purpose, and C++ because it wants to be compatible with C) < 1409437809 709630 :Bicyclidine!~Glossina@wl-nat105.it.wsu.edu PRIVMSG #esoteric :depends on what you're willing to consider equivalence, i say < 1409437835 120186 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :hmm, what about prolog? (I don't know) < 1409437851 691993 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :ais523: Why is it justified for Rust and not (directly) for C++? < 1409437903 968458 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :shachaf: because the set of common uses for C++ is different from the set of common uses for C < 1409437910 648936 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :ais523: The question is open to interpretation. Does any language with a C FFI have an equivalent of unsafeCoerce in your view? < 1409437918 489667 :aloril!~aloril@dsl-tkubrasgw2-54faa3-2.dhcp.inet.fi JOIN :#esoteric < 1409437931 794842 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :int-e: Prolog isn't typed; the closest thing it has to unsafeCoerce is =.., which is awesome < 1409437941 877842 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :defined as [a,b,c] =.. a(b,c) < 1409437943 928507 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :either way round < 1409437958 814898 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :this means that anything expressible in Prolog can be converted to lists of atoms < 1409437977 125291 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(and there are other ways to convert atoms to and from lists) < 1409437994 466093 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I guess it's not technically the same as reinterpreting memory, but it does have a way to cast anything to anything else < 1409438002 472806 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(btw, I might have got the arguments to =.. backwards) < 1409438020 284568 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :oh it's a single level expression-to-sexpression operator. < 1409438042 172256 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :(and vice versa, I supppose, this being prolog) < 1409438062 435489 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :yes < 1409438095 398159 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I remember seeing a Prolog-to-C FFI where you had to define a different C function for each possible combination of inputs and outputs the function accepted < 1409438113 868893 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :ais523: Yes, but I asked about Rust. < 1409438160 256141 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :shachaf: in Rust, you can only use it inside unsafe{} blocks, whose purpose is to do low-level bit twiddling < 1409438166 292292 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :shachaf: btw that quote predates datakinds by several years. < 1409438175 14047 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :in particular, they often get the memory from elsewhere, where it's a u8* (that is, unsafe pointer to byte) < 1409438185 34470 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :ais523: in haskell the accepted use of unsafeCoerce is when _you_ know the values _are_ the same type, but you don't have a way to get the type system to realize it. < 1409438190 760020 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and being able to transmute that is very helpful if the actual type of the data is wrong < 1409438225 175617 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :oerjan: that seems like an unsafe operation even if you know it's safe, because if the compiler thinks the two expressions have different types, it might represent them differently in memory < 1409438306 349442 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :ais523: you can only use unsafeCoerce on boxed types, which are essentially pointers. < 1409438337 908024 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :oerjan: represent the things they point to differently in memory, then < 1409438381 464321 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :oerjan: my favourite use is for reifying single-method class dictionaries, converting between Foo a => b and Foo_method_type a -> b, where Foo is a single method class. That's completely implementation-dependent, of course. < 1409438447 434546 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :ais523: the Any type exists for that purpose, as a type that's guaranteed not to do anything unsafe with the pointer it contains. < 1409438462 990543 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :so it basically just copies the pointer around? < 1409438480 430517 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :even then, what if whatever it's pointing to gets deallocated? or do all types have identical GC properties? < 1409438489 992151 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :there's also the conversion between newtype and its base type, but the representation aware "coerce" should mostly take over there. < 1409438510 184405 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :ais523: all types have a representation that includes enough information for the GC < 1409438516 903485 :tswett!~tswett@unaffiliated/tswett QUIT :Quit: tswett < 1409438529 935781 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :this is for ghc of course. < 1409438530 91011 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :oerjan: and that representation is stored in memory, rather than just being a property of the type? < 1409438556 825880 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :I think the built-in types with # don't do any garbage collection, but they have a different kind anyways < 1409438558 272690 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :int-e: I'm reasonably annoyed with OCaml because I've actually had to start using :> < 1409438577 751132 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :which is basically a hint to the type-checker that tells it where to convert something from one type to another < 1409438610 53660 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :e.g. you can use :> to cast something from [`Foo | `Bar] to [`Foo | `Bar | `Baz], which is obviously a safe conversion, and something that the type checker can sometimes figure out itself but can't always < 1409438620 463325 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :ais523: yes, see https://ghc.haskell.org/trac/ghc/wiki/Commentary/Rts/Storage/HeapObjects#HeapObjects < 1409438640 341782 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :Of course unsafeCoerce can be useful when the way the types are used cannot be expressed < 1409438649 784936 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :zzo38: beware, there are too many # things, some of those are garbage collected < 1409438658 338733 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :this reminds me of OCaml, which basically reserves one bit of every word to mean "this is a pointer" < 1409438664 590176 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :so that the GC doesn't need to know anything about the type system to work < 1409438688 519367 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I'm not sure how it handles unboxed floats and the like, which might potentially have the bit set incorrectly < 1409438688 852943 :drdanmaku!uid17782@gateway/web/irccloud.com/x-yrsapbdfodtthygi JOIN :#esoteric < 1409438760 508016 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :Can unsafe{} blocks be useful for optimization too rather than only to indicate that it is using low-level bit twiddling? < 1409438779 781135 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :zzo38: they often come with another interesting assumption though: for example, an Array# value is never an indirection. < 1409438804 636062 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :(nor a thunk) < 1409438814 489376 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :zzo38: yes, normally in situations where you know an optimization is safe but the compiler doesn't < 1409438986 2465 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: ocaml floats are all boxed I think < 1409439091 105340 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: there has to be a box /somewhere/, but you can form unboxed arrays of floats which just store them all consecutively < 1409439107 380006 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: the GC must treat arrays differently < 1409439111 508335 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :how else would it know when to stop scanning? < 1409439119 904373 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :however, I think you might only be able to manipulate it through accessor functions which presumably have special GC propreties < 1409439124 687213 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and yes, there has to be a special case there < 1409439220 389288 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :ais523: also what i'm saying applies to ghc. the unsafeCoerce documentation has a note that "•In nhc98, the only representation-safe coercions are between Enum types with the same range (e.g. Int, Int32, Char, Word32), or between a newtype and the type that it wraps." < 1409439243 71418 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :so presumably that compiler _does_ use varying representations. < 1409439312 908166 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :although i suppose even there it would be safe to convert from a type to itself even if the compiler doesn't know at that point they're identical < 1409439508 358888 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I find it relatively hard to imagine a type system in which two types can be identical without looking identical < 1409439530 622980 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :is the situation where you have a function along the lines of a -> b -> a except you know that b always has the same type as a in practice? < 1409439545 266233 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :yeah things like that. < 1409439555 224086 :Melvar!~melvar@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric :( \n => Vect (n + 0) Integer < 1409439555 379486 :idris-bot!~ircslave@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric :\13n => 12Vect (09plus 13n 040) 12Integer : 12Nat -> 12Type < 1409439572 921334 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :http://www.haskell.org/ghc/docs/latest/html/libraries/ghc-prim-0.3.1.0/GHC-Prim.html#v:unsafeCoerce-35- < 1409439581 425839 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :Melvar: \ => is a lambda? < 1409439588 746896 :Melvar!~melvar@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric :Yes. < 1409439664 962732 :Melvar!~melvar@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric :(Vect (n + 0) a) doesn’t unify with (Vect n a) even though it is the same type. In this case however one can prove they are the same and use the proof to convert them. < 1409439692 360729 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :Melvar: but you're using dependent typing, where determining whether two types are the same is uncomputable < 1409439707 108267 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :that said, even in much simpler languages, it can be difficult < 1409439729 18329 :Melvar!~melvar@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric :Yeah, it’s “a type system in which two types can be identical without looking identical”, as you said. < 1409439731 80295 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :here's a trick question: in an Algol-like language, are (a, b) -> c and a -> (b -> c) the same type? < 1409439743 175208 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :Melvar: dependent typing is cheating for type system questions :-) < 1409439761 238567 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(the reason it's a trick question is that you can write several chapters on the subject; it's a major part of my PHD thesis) < 1409439781 917431 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover JOIN :#esoteric < 1409439788 268219 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(and the main reason is because I used the syntax "(a, b)" without defining it, and there are at least two reasonable definitions) < 1409440047 52931 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :ais523: one use of unsafeCoerce i remember is when elliott hacked together (on my suggestion, but i did _not_ suggest he implement it that way) a combination of Data.Sequence (essentially, finger tree based deques) with Data.Thrist (a form of list where the elements are _not_ the same type, but each is connected to the next like category composition) < 1409440101 495941 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :he simply took the original Data.Sequence implementation and sprinkled it with unsafeCoerce in the right places so that he could use Any as the underlying type and just convert back and forth. < 1409440111 309476 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :that reminds me of http://homepages.cwi.nl/~ploeg/papers/zseq.pdf < 1409440116 138799 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :which i haven't actually read yet < 1409440149 59331 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :you _could_ obviously implement that structure without unsafeCoerce, but it would have required defining entirely new data types and changing all of Data.Sequence to use them. < 1409440242 851816 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :wait, he did not sprinkle unsafeCoerce _in_ the Data.Sequence implementation < 1409440257 789759 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :he made a thin wrapper around it with such sprinkling. < 1409440278 57164 :Melvar!~melvar@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric :oerjan: Why is it called Thrist? It seems to be the reflexive-transitive closure operator. < 1409440288 357923 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :Melvar: threaded list, i assume < 1409440311 124727 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :it seems to be the free category on a graph < 1409440369 647486 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :i assume it would have been called FreeSomething if invented these days. < 1409440370 393916 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :reflexive-transitive is the sort of thing i'd associate with relations, but you can have distinct values :: K A B < 1409440378 778418 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :free hugs < 1409440519 801781 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :thrist is to category as list is to monoid. < 1409440652 110194 :^v!~notnot^v@c-71-238-153-166.hsd1.mi.comcast.net NICK :CarrotveePomm < 1409440667 249265 :CarrotveePomm!~notnot^v@c-71-238-153-166.hsd1.mi.comcast.net NICK :^v < 1409440737 216923 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :well, sort of < 1409440770 814373 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :thrist isn't a free category on/over (what's the word?) a set < 1409440779 822943 :Melvar!~melvar@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric :A Category looks exactly like a Preorder on Type. < 1409440981 126668 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :a preorder is the same as a skeleton category iirc < 1409440990 226857 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :or wait < 1409441007 276050 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :no, a skeleton makes a preorder into a partial order < 1409441010 71174 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :confusing terms here < 1409441039 700993 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :a preorder is a category with at most one arrow : A -> B for each A and B < 1409441231 436759 :Melvar!~melvar@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric :What, you actually restrict that? < 1409441234 138438 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :shachaf: well, that's sort-of twisting the definition of category to some extent < 1409441246 292566 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the category axioms basically just give you reflexivity and transitivity there < 1409441293 109102 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :ais523: what do you mean? < 1409441303 430323 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :shachaf: well the idea of a category is that it's very general < 1409441313 310966 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :so yes, you can fit a preorder into the categorical framework < 1409441320 692833 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but that's because you can fit almost /anything/ into a categorical framework < 1409441339 996168 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :i was responding to 16:23 a preorder is the same as a skeleton category iirc < 1409441360 636706 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :a set is a category with only identity morphisms < 1409441361 914292 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :right < 1409441370 272355 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :anyway that's not really true < 1409441379 575974 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :int-e: a monoid is a category with one object < 1409441383 281021 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I think < 1409441386 348666 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :ais523: yes < 1409441389 409644 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :and i was responding (wrongly) to Melvar < 1409441389 711079 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :there aren't that many algebraic structures that can be expressed directly as a category like that < 1409441405 647718 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :a category is in a useful/interesting way a generalization of a monoid and of a preorder < 1409441406 276768 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :conclusion: something that is both a monoid and a set has one element, with no useful operations < 1409441421 424477 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :(and of a set, because preorders are sets) < 1409441458 643059 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :for what I do at work, the main categorical structures I care about are those where objects can be interpreted as types, and morphisms as functions < 1409441460 221028 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :but a category isn't a generalization of a ring or what-have-you < 1409441481 450955 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :shachaf: I know I've had to convert semirings to categories at my job < 1409441486 808426 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :ais523: well that's the usual Hask category < 1409441488 655996 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :they still work fine as categories, you just need side conditions < 1409441494 914305 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :oerjan: it describes a large range of categories < 1409441495 950267 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :you can talk about a category *of* rings or whatever structures you have but that's not the same thing < 1409441506 83358 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :even the subset of categories that work vaguely like type systems is pretty large and useful < 1409442263 59702 :^v!~notnot^v@c-71-238-153-166.hsd1.mi.comcast.net QUIT :Ping timeout: 240 seconds < 1409442298 379270 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :This quotation was found on Lambda the Ultimate: "Seriously now, I don't think such bloated languages are needed. What is needed is a programming language that is assembly, has nice S-expression syntax, and can also be 'executed' in compile-time. Then all other constructs can be made with this basic mechanism." < 1409442314 948948 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :Well, I think, being 'executed' in compile-time is one of the main features of Forth. < 1409442332 614113 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it's also one of the main features of Perl < 1409442352 930794 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :although Perl is unusual in that it switches between compiling and running frequently, on the fly < 1409442380 651517 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :there is the syntax BEGIN { ... } which tells the compiler to, as soon as it finishes compiling the inside of the BEGIN block, to run it < 1409442383 399822 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :before it goes back to compiling < 1409442394 873317 :Bicyclidine!~Glossina@wl-nat105.it.wsu.edu PRIVMSG #esoteric :zzo38: forth with quotation, maybe < 1409442395 400049 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and eval allows you to invoke the compiler at runtime < 1409442398 900442 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :O, that's what it does? < 1409442412 971558 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :Bicyclidine: What is Forth with quotation? < 1409442416 336164 :Bicyclidine!~Glossina@wl-nat105.it.wsu.edu PRIVMSG #esoteric :common lisp has something like begin, with the notoriously bizarre eval-when operator < 1409442432 351237 :Bicyclidine!~Glossina@wl-nat105.it.wsu.edu PRIVMSG #esoteric :zzo38: the assembly with "nice" syntax bla bla bla < 1409442458 295416 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :zzo38: yes, this means that a begin block can control the way that subsequent code is compiled, for instance < 1409442556 463714 :Melvar!~melvar@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric :In idris, evaluation is needed for typechecking, and providers allow you to execute IO actions whose results can be used in typechecking. < 1409442636 539576 :Bicyclidine!~Glossina@wl-nat105.it.wsu.edu PRIVMSG #esoteric :i have a lisp implementation i should finish that will ideally allow a slightly more usable version of sbcl's "define compiler intrinsics at runtime" stuff, but, dumb < 1409442648 639923 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :Melvar: O, I didn't know it is possible to tamper with the typechecking in idris, but I suppose yes it can help < 1409442702 350887 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :zzo38: given that you didn't know what BEGIN does, I should probably explain "use", too; "use Foo::Bar;" is basically a synonym for "begin { require "Foo/Bar.pm"; Foo::Bar->import() } " except that IIRC it's a little cleverer about locating the file to import < 1409442723 776082 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :this sort of thing explains how syntax like "use constant" works, and why it starts with use < 1409442733 248959 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :there's a file constant.pm which injects constants into your namespace when you import it < 1409442735 244389 :Bicyclidine!~Glossina@wl-nat105.it.wsu.edu PRIVMSG #esoteric :haa, it really is like CL, that's hilarious < 1409442767 792767 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(in general, the "import" function's purpose is to inject stuff into its caller's namespace) < 1409442823 953500 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :and let me note that ruby specifically does not have this kind of escape from compile time to runtime, the BEGIN keyword in ruby runs a block early at runtime like perl's UNITCHECK, though of course ruby has an eval function to compile stuff at runtime < 1409442861 713106 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :ais523: as for a different note, I borrowed this classic book Aho, Ullman, "The Theory of Parsing, Translation and Compiling" (1972) which does seem like the book about formal languages I wanted < 1409442871 600063 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :actually, what shocked me more was discovering what syntax like "\ 4" does (that means "a reference to 4", sort-of like writing &4 in C) < 1409442889 800184 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the reference is actually to the 4 in the parse tree of the compiled code < 1409442890 904059 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :From what I have seen of Perl programs, it also requires that the included file returns 1 at the end. < 1409442904 720953 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it's a read-only reference, so the fact doesn't matter, but I still think it's ridiculous < 1409442924 195552 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :ais523: yes it is. perl is full of crazy historical cruft like that that can't be changed now < 1409442924 350872 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :zzo38: "require" errors out if the required file doesn't evaluate to a truthy value < 1409442935 764832 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :any truthy value can be used, but 1 is traditional < 1409442967 132286 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :b_jonas: well, it's useful syntax, and thinking about it, there's no particular reason /not/ to do it like that < 1409442978 953469 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :you need a read-only copy of 4 to take a reference to < 1409442981 641618 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and look, you have one already < 1409443012 195712 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :ais523: Is that so that you can make the program to check if it is unusable and to have other files to read the return value to see if it is OK before continuing? < 1409443012 368045 :Bicyclidine!~Glossina@wl-nat105.it.wsu.edu PRIVMSG #esoteric :the reference is actually to the 4 in the parse tree of the compiled code <- man that's almost as good as the regex introspect thing < 1409443034 53573 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :zzo38: yes, it's so that you have a way to signal that something went wrong < 1409443037 444999 :Bicyclidine!~Glossina@wl-nat105.it.wsu.edu PRIVMSG #esoteric :wait, can you do &4 in C < 1409443040 224333 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :no < 1409443044 139740 :Bicyclidine!~Glossina@wl-nat105.it.wsu.edu PRIVMSG #esoteric :oh ok. < 1409443058 27846 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :nor in C++ (just learned that one today) < 1409443070 870678 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :however, in modern C, you can take pointers to struct literals < 1409443075 327135 :Bicyclidine!~Glossina@wl-nat105.it.wsu.edu PRIVMSG #esoteric :yesterday i learned that you can declare variables in if expressions in C++. i don't get C++'s deal < 1409443075 482817 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :&(struct foo){1, 2} < 1409443090 825969 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :Bicyclidine: huh, wonder if that works in C < 1409443100 389379 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :there are a couple of points in NetHack where that actually seems useful < 1409443100 702652 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :ais523: it does these days in C99 or C11, yes < 1409443101 411859 :Bicyclidine!~Glossina@wl-nat105.it.wsu.edu PRIVMSG #esoteric :don't think so and hope not < 1409443115 375939 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :ais523: it's quite useful for for statements especially, < 1409443120 640214 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :although I guess you only get the one assignment < 1409443123 434487 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :b_jonas: obviously it's useful for for < 1409443127 280037 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :even if the syntax is just a limited shortcut < 1409443128 151413 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :yeah < 1409443130 312902 :Bicyclidine!~Glossina@wl-nat105.it.wsu.edu PRIVMSG #esoteric :ACTION doesn't even like doing it in for. < 1409443143 541629 :Bicyclidine!~Glossina@wl-nat105.it.wsu.edu PRIVMSG #esoteric :ais523: the scope is to the rest of the if statement, you can reassign it < 1409443155 716244 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :Bicyclidine: oh right, for some reason I thought it'd only be for the conditional < 1409443157 409507 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Bicyclidine: it's nice to stop iteration variables leaking up to the scope of the caller < 1409443163 972297 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :er, scope of the function < 1409443172 263969 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :I sometimes do it in perl < 1409443180 537170 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but NetHack's full of stuff like if (((x = accessor_that_might_return_NULL)) && x->foo()) < 1409443186 347593 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :err, remove the parens < 1409443191 124155 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :if (((x = accessor_that_might_return_NULL)) && x->foo) < 1409443197 52978 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :if (((x = accessor_that_might_return_NULL())) && x->foo) < 1409443199 529248 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :got it eventually