< 1409616003 883786 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :It's not boring. from should, given a function a -> b, make a Getter' b a < 1409616109 212526 :Frooxius!~Frooxius@cust-101.ktknet.cz QUIT :Read error: Connection reset by peer < 1409616169 459574 :Frooxius!~Frooxius@cust-101.ktknet.cz JOIN :#esoteric < 1409616328 668103 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :Are there going to be SQL extensions for dealing with pictures, sounds, music, internet, GUI, plotting graph of the data, typesetting, printer, ephemeris, as well as such a thing as databases containing various data such as chemical, political, geographical, weather, word lists, etc...? < 1409616454 208123 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :Therefore you can combine all of these things by using ATTACH command and LOAD_EXTENSION and various functions (including aggregates). < 1409616675 681212 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :Many sets of data are posted in other formats such as CSV (although I think tab separated is better anyways), HTML, Microsoft Excel, and sometimes also XML; but I would like to see many such thing in SQLite format. < 1409616715 666256 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :At least I think it would make the data easier to deal with. < 1409616727 726827 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :I don't know quite what is your opinion. < 1409616779 212088 :doesthiswork!~Adium@2601:7:2480:1e1:223:12ff:fe1b:3213 JOIN :#esoteric < 1409617033 390020 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :Virtual tables could be used for accessing RDF and other XML based formats; virtual table could also be for accessing other file formats, for accessing the windows on the screen, manage network connections, etc < 1409617155 721541 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :shachaf: what's the name of the profunctor used by from? < 1409617169 895932 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Un? < 1409617176 632777 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Exchange, in lens? < 1409617307 58781 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :Exchange sounds like a good name. Don't really know what Un is, I thought that was that unlens thing < 1409617958 719599 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :It is. < 1409617971 988742 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :from turns an optic into the corresponding unoptic. < 1409617977 200782 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I think we called it re. < 1409617989 389666 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :It was how I sold edwardk on pure profunctor optics. < 1409618329 745828 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :Another thing I want to see in SQLite format are comparison tables. < 1409618348 782543 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :(for comparing various kinds of things, whether computer software or otherwise) < 1409619266 685808 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :I still don't get what an unoptic is < 1409619584 13269 :MoALTz_!~no@user-164-127-9-186.play-internet.pl JOIN :#esoteric < 1409619772 290485 :MoALTz!~no@user-164-127-9-186.play-internet.pl QUIT :Ping timeout: 260 seconds < 1409620312 511635 :Lorenzo64!~lorenzo@adsl-ull-22-12.42-151.net24.it QUIT :Ping timeout: 245 seconds < 1409620887 477303 :FreeFull!~freefull@defocus/sausage-lover QUIT :Ping timeout: 245 seconds < 1409621025 475181 :FreeFull!~freefull@host-78-149-139-205.as13285.net JOIN :#esoteric < 1409621027 888636 :FreeFull!~freefull@host-78-149-139-205.as13285.net QUIT :Changing host < 1409621028 44574 :FreeFull!~freefull@defocus/sausage-lover JOIN :#esoteric < 1409621230 827672 :Lorenzo64!~lorenzo@adsl-ull-56-52.42-151.net24.it JOIN :#esoteric < 1409621650 697471 :up2quark!46418cf3@gateway/web/cgi-irc/kiwiirc.com/ip.70.65.140.243 JOIN :#esoteric < 1409621655 843159 :up2quark!46418cf3@gateway/web/cgi-irc/kiwiirc.com/ip.70.65.140.243 PRIVMSG #esoteric :Hello < 1409621709 10160 :up2quark!46418cf3@gateway/web/cgi-irc/kiwiirc.com/ip.70.65.140.243 PART :#esoteric < 1409623148 101816 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :`addquote Rule of thumb is that if I can understand it you're not using enough fancy stuff < 1409623149 691128 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :1218) Rule of thumb is that if I can understand it you're not using enough fancy stuff < 1409623387 672142 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :Other things I want to have in SQL (with data files, extensions, and/or network services) include surveys and collaborative tables. < 1409623394 446366 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :Are there such things? < 1409623451 178722 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :( :t (<$) < 1409623451 334215 :idris-bot!~ircslave@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric :09Prelude.Applicative.(<$) : 12Applicative 13f => 13f 13a -> 13f 13b -> 13f 13a < 1409623460 553689 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :( :t ($>) < 1409623460 709211 :idris-bot!~ircslave@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric :09Prelude.Applicative.($>) : 12Applicative 13f => 13f 13a -> 13f 13b -> 13f 13b < 1409623469 915363 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :bah < 1409623490 13916 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :That's different from Haskell, which is (<*) and (*>) < 1409623510 921074 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :i know. Melvar mentioned <$> in the logs, which is also different. < 1409623529 632791 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :Why are they calling these things differently like this? < 1409623534 854486 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :so i was wondering if idris had actually done the logical thing i'd thought of with the two others. < 1409623537 850841 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :but no. < 1409623569 299482 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :zzo38: well <$> _is_ more logical than <*> if you are starting out naming them < 1409623592 651398 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :except if you do that, i think fmap should be $> < 1409623609 34917 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :and it isn't that in idris either < 1409623644 764050 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :although part of the problem is that < and > are also used in two senses in applicative notation < 1409623671 200832 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :sometimes it means "this is something applicative", other times it means "return the right or left part as pointed to" < 1409623710 394640 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: what would you rename (<*) and (*>) to? < 1409623721 250110 :Melvar!~melvar@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric :I don’t know how the operators got named as they are. < 1409623722 628961 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I guess you'd want operators for const and flip const and use that or something. < 1409623765 250382 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: lessee, rename (<*) to *<* and (*>) to *>* < 1409623779 987163 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: wait, what? < 1409623788 579409 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :now (<$) can be <* < 1409623792 245657 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric ::t (<$) < 1409623793 342394 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric :Functor f => a -> f b -> f a < 1409623839 254691 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: i said i wanted to separate the two meanings of <>, didn't i? if we use $ instead of * then we can reuse * for the meaning that says "applicative" < 1409623861 233006 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :(<$>) becomes $* < 1409623870 831236 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I see. < 1409623891 3980 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: perhaps the ideal symbol for * is banana brackets (depending on which side it's on) < 1409623893 188551 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :the not standard but defined in lens (??) becomes *$ < 1409623909 147748 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :since a (|$|) b would be (| a $ b |). < 1409623933 6260 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: and (<**>)? :p < 1409623938 10724 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :oh that < 1409623948 446458 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :*&* I guess < 1409623953 64240 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :first we need a symbol for reverse application, so take lens... right < 1409623992 897282 :Melvar!~melvar@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric ::t (<**>) < 1409623993 923018 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric :Applicative f => f a -> f (a -> b) -> f b < 1409624054 251716 :Melvar!~melvar@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric :( with List [| [1,2,3] + [4,5,6] |] < 1409624055 2476 :idris-bot!~ircslave@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric :(input):1:14:When elaborating an application of function 09BotPrelude.LiftEq.<$>: < 1409624055 312150 :idris-bot!~ircslave@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric : Can't unify < 1409624055 467533 :idris-bot!~ircslave@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric : 12List 13a < 1409624055 467677 :idris-bot!~ircslave@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric : with < 1409624055 467771 :idris-bot!~ircslave@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric : 13x 12= 13y14↵… < 1409624063 993337 :Melvar!~melvar@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric :… < 1409624122 411413 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :idris, the language that has even sillier type errors than haskell < 1409624246 300284 :Melvar!~melvar@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric :( with Applicative [| [1,2,3] + [4,5,6] |] < 1409624246 802866 :idris-bot!~ircslave@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric :When elaborating an application of function 09Prelude.Applicative.pure: < 1409624247 332317 :idris-bot!~ircslave@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric : Can't disambiguate name: 09Prelude.Classes.+, 09Prelude.Fin.+ < 1409624266 434861 :Melvar!~melvar@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric :… < 1409624299 699032 :Melvar!~melvar@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric :( the (List Integer) [| [1,2,3] + [4,5,6] |] < 1409624299 942725 :idris-bot!~ircslave@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric :04[04504, 04604, 04704, 04604, 04704, 04804, 04704, 04804, 04904] : 12List 12Integer < 1409624327 400030 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: banana brackets seem a little heavy but maybe just | would be good < 1409624336 562298 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: they're a bit heavy in ascii, yeah. < 1409624342 975652 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :except then <| clashes with Data.Sequence < 1409624358 304584 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :but probably the others also clash with something i don't remember < 1409624360 992585 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :Why did they decide to make both list comprehension notation and do notation in Haskell? It would be better to combine them into one kind of command. < 1409624368 413523 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: btw, *>* should be liftA2 (>) :p < 1409624391 732067 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :the thing with <| is that the < looks like the outside and the | the inside... |<| and stuff is sorta weird < 1409624443 180509 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: i have no scrubles repurposing < and > there, they're just not useful enough to do that with < 1409624447 168417 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :*scruples < 1409624485 672186 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I sort of feel like a lot of the "only partially applicative" ones are a little redundant. < 1409624493 658535 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :(const x <$> y) is just as good as (x <$ y), really. < 1409624507 722394 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I guess that's the only one. < 1409624565 34751 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :elliott: Although <$ is convenient shortcut in many cases, I think < 1409624565 463333 :tromp!~tromp@ool-4570a006.dyn.optonline.net QUIT :Read error: Connection reset by peer < 1409624574 668824 :tromp!~tromp@ool-4570a006.dyn.optonline.net JOIN :#esoteric < 1409624655 13053 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :First I would have do notation has a macro instead of built-in; another is that, rather each item in the block can be: Using a pattern and <- and the wrapped value and a semicolon, using a pattern and = and unwrapped value and a semicolon, a wrapped value and semicolon, or only at the end, unwrapped with no semicolon. Guards are allowed in all of these patterns, and so is a guard by itself with no pattern nor <- and = < 1409624711 768466 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :What does a guard do? Force MonadPlus? < 1409624724 703865 :Melvar!~melvar@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric :I wonder once more, is there a name for Monads where for all mx and f, do { x <- mx; y <- mx; f x y } ≡ do { x <- mx; f x x } ? < 1409624737 295450 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :Sgeo_: the same thing as any refutable pattern, i assume < 1409624744 358813 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :eww < 1409624820 711039 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :Melvar: that reminds me of affine commutative IO proposal < 1409624829 144884 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :so possibly "affine" < 1409624872 22063 :Melvar!~melvar@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric :In particular the Monad instances of (Vect n) and Stream fulfill this equivalence. < 1409624946 596644 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :Reader also, i think. < 1409624971 472356 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :I've heard someone call monads where bind never calls the function it's passed more than once 'affine'. No idea if that's related < 1409624979 287436 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :Or a reasonable use of that name < 1409624992 812595 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :and the ACIO monad would fulfill it, as that was part of its purpose < 1409624992 968024 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :(e.g. most things except []) < 1409624996 554805 :Melvar!~melvar@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric :Well, both of those are equivalent to Readers. < 1409625024 354888 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :*-l < 1409625067 360340 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :Sgeo_: I would say a guard would be forcing MonadPlus, yes < 1409625162 47373 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric : lambdabot what'd i ever do to you <-- "can't find file: L.hs" is essentially a kind of race condition in lambdabot < 1409625220 814469 :Melvar!~melvar@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric :Okay, so I guess that’s affine. And the order the actions are specified in being irrelevant presumably is commutative? < 1409625234 463855 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :yeah < 1409625262 970063 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :although when i googled ACIO just now, the hits seemed to imply C is for "central". < 1409625263 437476 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :Well, I would think, "commutative", as a commutative applicative at least, would mean that (x <* y) is same as (y *> x) < 1409625280 539778 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :zzo38: that's at least implied < 1409625282 862646 :Bike!~Glossina@69.166.47.137 QUIT :Quit: leaving < 1409625302 316105 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :Implied by what for what purpose? < 1409625312 193581 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :or more generally, f <$> x <*> y = flip f <$> y <*> x < 1409625336 308637 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :zzo38: by my understanding of what "commutative" means for monads < 1409625338 957799 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :Well, yes, that is another way too < 1409625351 85401 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :zzo38: possibly they are equivalent. < 1409625359 477499 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :I don't seem to see what "commutative" means for monads, only for applicative. < 1409625374 14766 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :but it's not obvious < 1409625375 801817 :AndoDaan!~Daanando@62.205.86.141 JOIN :#esoteric < 1409625395 836838 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :zzo38: yes i think a monad is commutative exactly when its corresponding applicative is < 1409625413 334527 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :OK < 1409625443 140547 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :Maybe another way is: fmap swap . liftPair = liftPair . swap < 1409625479 261059 :Bike!~Glossina@69.166.47.137 JOIN :#esoteric < 1409625485 427494 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :hm actually i think just <* vs. *> loses too many ways of combining the results to imply the full thing < 1409625563 232891 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :Does it? Maybe < 1409625589 648572 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :basically, you get no result information from y < 1409625624 562817 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :If that is the only problem then the two other ways are working. < 1409625629 744746 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :so you know the _effects_ commute, but not whether the whole thing does. < 1409625690 907577 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :Ah, I suppose you are correct, then < 1409625701 605552 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :It makes sense < 1409625738 574270 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Melvar: wait, what's Stream there? < 1409625757 633203 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oh. < 1409625762 520031 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :presumably the obvious diagonalisation instance? < 1409625789 644072 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :So then f <$> x <*> y = flip f <$> y <*> x or fmap swap . liftPair = liftPair . swap is doing it? < 1409625792 263264 :tromp!~tromp@ool-4570a006.dyn.optonline.net QUIT :Ping timeout: 260 seconds < 1409625815 786699 :Melvar!~melvar@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric :elliott: That would be the only one I know of that agrees with its Applicative instance. < 1409625831 856177 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :i saw someone in a stackoverflow question essentially reinventing the Monad instance for Maybe (he had got to Applicatives in the course) in order to solve a problem. except he had defined join and zzo38's liftPair. < 1409625843 145725 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :*only got < 1409625849 288152 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: iow, f <$> x <*> y = y <**> f <$> x? < 1409625856 393942 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric ::t \f x y -> f <$> x <*> y == y <**> f <$> x < 1409625857 546214 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric : Precedence parsing error < 1409625857 701586 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric : cannot mix ‘<*>’ [infixl 4] and ‘==’ [infix 4] in the same infix expression < 1409625857 701722 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric : Precedence parsing error < 1409625864 993989 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric ::t \f x y -> (f <$> x <*> y) == (y <**> f <$> x) < 1409625865 876886 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric :Eq (a -> b) => (a -> a1 -> b) -> (a -> a) -> (a -> a1) -> Bool < 1409625879 742231 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric ::t (<**>) < 1409625880 663880 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric :Applicative f => f a -> f (a -> b) -> f b < 1409625882 806501 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oh < 1409625885 531258 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric ::t \f x y -> (f <$> x <*> y) == (y <**> f <*> x) < 1409625886 611472 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric : Occurs check: cannot construct the infinite type: b ~ a -> b < 1409625886 767165 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric : Expected type: a -> a1 -> a -> b < 1409625886 767302 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric : Actual type: a -> a1 -> b < 1409625892 346819 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric ::( < 1409625913 197667 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric ::t \f x y -> (f <$> x <*> y) == (y <**> (f <$> x)) < 1409625914 117170 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric :(Applicative f, Eq (f b)) => (a1 -> a -> b) -> f a1 -> f a -> Bool < 1409625914 272532 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: well or simpler: (<*>) = flip (<**>) < 1409625920 35103 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: right. < 1409626015 747658 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric : elliott: That would be the only one I know of that agrees with its Applicative instance. <-- since Streams have only one "shape", the uniqueness of Monad from Applicative follows < 1409626023 490380 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :oerjan: Do you mean only join and liftPair and not anything else? That wouldn't be very good. < 1409626036 443873 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I was mixing up Steram and ZipList or something. < 1409626069 76995 :Melvar!~melvar@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric :And similarly (Vect n) has only one shape for each n, I guess. < 1409626097 918934 :Melvar!~melvar@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric :( the (Vect _ Integer) [| [1,2,3] + [4,5,6] |] < 1409626098 430587 :idris-bot!~ircslave@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric :04[04504, 04704, 04904] : 12Vect 043 12Integer < 1409626142 870157 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :zzo38: yes, although e knew about Functors so e had fmap < 1409626170 124004 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :i guess that's "no", really :P < 1409626224 726395 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: well Stream is the subset of all ZipLists of that shape. < 1409626230 983833 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :yeah. < 1409626233 168794 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :and each shape is a Monad, i think. < 1409626248 207021 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :You had fmap? Then you have liftPair, you should need pure, too, then. < 1409626252 319868 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :because it's really Reader on a subset of Nat < 1409626268 288332 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :yeah. < 1409626274 897070 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :on (Fin n) for some n. < 1409626293 216395 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :zzo38: well e had pure also, but e didn't use it for Maybe iirc < 1409626321 532073 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :...or all of Nat, for Streams. < 1409626386 613386 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :n = fix Succ! < 1409626404 923175 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :that works. you could define FinOrMaybeInfin as Conat -> Type. maybe. probably. < 1409626410 360011 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :it'd have to be codata of course. < 1409626470 717253 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :i still haven't quite wrapped up the proof that ZipList monad is impossible. i discovered that if the lists are length <= n then the result must also be, because take n is join . replicate n = join . fmap (replicate n) if join exists < 1409626503 79328 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :um < 1409626513 742041 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :yes, that was it < 1409626555 846778 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :and so if you take n at any depth in the m (m a) it commutes out with the join < 1409626600 817299 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :For optimizing Z-machine text encodings, I have one thing already, which is figuring out the preferred states before each character, in order to figure out which way is shortest (you must skip spaces and fwords in order to do so, since they are unaffected by shift states). However, there are the two other things: Suffix optimization, and filling in the frequent words table. < 1409626634 22758 :Melvar!~melvar@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric :( :t fibs < 1409626634 178531 :idris-bot!~ircslave@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric :No such variable fibs < 1409626651 251660 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :ACTION is obviously mixing notation there < 1409626660 756752 :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 |] < 1409626660 912276 :idris-bot!~ircslave@dslb-094-221-215-107.094.221.pools.vodafone-ip.de PRIVMSG #esoteric :defined < 1409626838 653955 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :For filling in the frequent words table, I have thought of counting the number of "demerits" for each possibility and using the ones with negative demerits. However, this would be really slow and inefficient if all possibilities are counted like this. < 1409626961 255921 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :For suffix optimization I could make it to sort by reverse, although also one case is if the suffix is capitalized first letter when used by itself but not when together with the prefix, is also usable in Z-machine encoding; perhaps a way to work this is to use a different character order than the ASCII order when sorting. < 1409627069 532847 :tromp!~tromp@ool-4570a006.dyn.optonline.net JOIN :#esoteric < 1409627173 743869 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :And then there is the case that a frequent word (which, despite the name, can be any string and doesn't have to consist of a single word) spans the part of the prefix and suffix (or even the beginning of the suffix alone if it is capitalized). < 1409627227 808339 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :Do any of you know???? < 1409627234 173848 :Bike!~Glossina@69.166.47.137 PRIVMSG #esoteric :I do not know < 1409627837 565761 :Lorenzo64!~lorenzo@adsl-ull-56-52.42-151.net24.it QUIT :Ping timeout: 245 seconds < 1409628187 248024 :conehead!~conehead@unaffiliated/conehead QUIT :Quit: Computer has gone to sleep < 1409628349 189946 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :ACTION rewatches In the Pale Moonlight < 1409629842 633681 :sebbu!~sebbu@unaffiliated/sebbu QUIT :Ping timeout: 245 seconds < 1409630441 290379 :MoALTz__!~no@user-164-127-9-186.play-internet.pl JOIN :#esoteric < 1409630608 278733 :MoALTz_!~no@user-164-127-9-186.play-internet.pl QUIT :Ping timeout: 260 seconds < 1409630730 50395 :MoALTz!~no@user-164-127-9-186.play-internet.pl JOIN :#esoteric < 1409630888 261811 :MoALTz__!~no@user-164-127-9-186.play-internet.pl QUIT :Ping timeout: 260 seconds < 1409631615 317122 :Lorenzo64!~lorenzo@adsl-ull-56-52.42-151.net24.it JOIN :#esoteric < 1409631655 269140 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :This is one idea of Magic: the Gathering card: Put the top card of each player's library on the stack. < 1409631698 560061 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :zzo38: They've said that they don't want to make any cards that mention the stack explicitly. < 1409631724 845873 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :Yes, I know that, but still *I* want to mention the stack explicitly. < 1409631765 221779 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :What would its mana cost be? < 1409631841 271886 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :What would it mean to put a card on a stack? < 1409631844 959875 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :What if it has targets? < 1409631857 310875 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :What if it's land? < 1409631862 563039 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :If it has targets then it fails when it resolves, I suppose. < 1409631874 17939 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :If it is a land, then I would think it would just come into play anyways < 1409631886 345737 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Lands don't go on the stack normally, though. < 1409631893 99397 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :I know that < 1409631897 708587 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :shachaf: I'm curious where they've said they don't want to mention the stack? < 1409631902 837188 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :What if you've already played a land? < 1409631904 259233 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :Might be more fun reading < 1409631909 764085 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :All sorts of places. < 1409631911 368888 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :http://archive.wizards.com/Magic/magazine/article.aspx?x=mtgcom/daily/mr255 < 1409631932 641746 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :ty < 1409631932 797249 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :If you have already played a land, at least what I would think, is, that isn't a problem and doesn't prevent you from playing another land. < 1409632330 263887 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :But I also believe that Magic: the Gathering is too klugy and should be made up from the beginning over in the more mathematically elegant way, fixing other problems too (so, instead of a library it will be called a draw pile, a graveyard is now a discard pile, antes are returned at the end of a match and the ante zone exists even though it is initially empty, "outside of the game" *never* refers to a player's collection of cards they physically o < 1409632358 84440 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :what a zzo38y thing to say < 1409632370 435456 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :You were cut off after "physically o", by the way. < 1409632386 620358 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :No, that's all I wrote < 1409632412 480417 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :O, now I see. < 1409632479 424918 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :you'd be taking all the flavor of the game, alienate the few remaining fans and kill the franchise! < 1409632480 699445 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :"Cards you own outside of the game" is instead not used; "sideboard" is used instead and is always how it work anyways. < 1409632625 964936 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :"This is, for example, one of the reasons we've been shifting X spells away from common over time. The concept of X throws a lot of people. " < 1409632631 405634 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :Buh... uh.... huh? < 1409632705 832609 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :I will admit Dead Ringers is confusingly worded :/ < 1409632730 106988 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :int-e: Maybe, but I still think would be better to do such thing as remove the rule that auras which is also creatures are discarded, change the tokens ceasing to existing rule into one instead having to do with initial states, make copies of spells to be tokens (so that non-instantsorcery spells can be copied too), and of course other thing too. < 1409632791 56315 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :Also some of things it looks like they try to make it easier to understand, tend to either make it instead more klugy (and therefore more confusing) or less strategic. < 1409632810 975798 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :And they mess up existing cards too even though they explicitly try not to. < 1409632856 486050 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :The implementation (and name) of Planeswalkers cards is also bad (although it is not a bad idea). < 1409632929 496961 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :I think I read once that they wanted to try to make it into another player, but they couldn't figure out how. But I figured out how! < 1409632957 636912 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :(Doing this would also avoid some of the klugy rules relating to it) < 1409633119 367159 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :It is also my opinion that the size of the text box ought to vary in order to make the text fit (even if this leaves no room for a picture; conversely a card with no text has a larger picture). < 1409633618 475893 :copumpkin!~copumpkin@unaffiliated/copumpkin JOIN :#esoteric < 1409636583 72823 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :Is this accurate? instance Profunctor Exchange where dimap a b e = Exchange (dimap b a (runExchange e)) < 1409636588 144213 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :Something along those lines? < 1409636605 89706 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :Wait, no < 1409636640 197448 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :instance Profunctor Exchange where dimap a b e = Exchange (\p -> dimap b a (runExchange e p)) < 1409636685 623735 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :Ok, I think I need to think a bit more < 1409637424 952981 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :ok i think i finally have a watertight proof that there is no ZipList monad. although i'm not sure whether I've just forgotten the previous ones :P < 1409637536 810491 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :basically, consider [[[1,2],[3,4]],[[],[7,8]]], then zjoin $ zjoin xs _must_ be [1,8] and zjoin $ fmap zjoin xs _must_ be [1]. < 1409637550 42032 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :but by the monad laws those two must be equal < 1409637706 48701 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :all of this follows from how zjoin must be the main diagonal of rectangular lists of lists, _except_ for zjoin [[], [7,8]] = [] which follows from my proof that zjoin . take n = take n . zjoin when you put n = 1. < 1409637753 512504 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :*, when you put < 1409638279 319478 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :zzo38: ugh, no. I think the fixed size picture and fixed size text box is fine. < 1409638295 998750 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :variable size would be ugly < 1409638307 249605 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :But maybe you want to put a lot of text and the picture won't fit < 1409638322 71477 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :I for one don't like the Zendikar full art lands that everyone seems to like so much < 1409638355 798932 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :I don't really care, but I wanted variable size in order that large amounts of text can fit on the card. < 1409638369 712636 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :zzo38: if there's too much text, then the card is wrong. cards shouldn't have too much text. the existing textbox (which, incidentally, got slightly larger both time they changed the card frame template) already allows a wall of text to fit < 1409638460 860515 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :don't forget that the textbox provides graphical clues other than just containing the text: for one, it's colored according to the color of the text or the color of mana a land produces, that's very useful for non-basic lands, < 1409638480 859874 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :it also contains a nice mana icon for basic lands (and also guild and faction and klan sybmols which I don't like so much) < 1409638599 990040 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :I prefer the text for the basic lands though < 1409638670 128299 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :zzo38: consider for example the newer cycling lands like Secluded Steppe. Luckily for the reprints, the inner border and the name and type line is colored white, but even then the color of the text box helps too. < 1409638679 352360 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :Or gold and hybrid cards. < 1409638709 116383 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :Yes I know those thing can help too < 1409638738 454640 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :I admit it's much less important in the post-Mirrodin frame < 1409638742 172231 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :which has the inner border for this < 1409638751 444447 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :But they aren't considered as a requirement by the rules of the game, since there are other things that says so on the cards. < 1409638756 33791 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :But even without the color, I do like the fixed size text box and fixed size art < 1409638782 396887 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :(especially if you are playing with grayscale copies of the cards; I have seen this) < 1409638830 409995 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :Heh, imagine playing with grayscale copies of cards with color markers on the type line. < 1409638844 114673 :MoALTz!~no@user-164-127-9-186.play-internet.pl QUIT :Quit: Leaving < 1409638854 921869 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :Anyway, as for basic lands, I guess that's a matter of taste, I prefer just the big mana symbol, but a text isn't too bad either. < 1409638974 487061 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :zzo38: as for improving card faces, do you know what I'd like? I wish there were fewer new expansion symbols introduced, because there's now over a hundred and they're running out of space of recognizable and rememberable expansion symbols. I think each block should have only one expansion symbol, not one for each set. < 1409639020 823016 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :(And some series of extra products like Duel Decks shouldn't take up expansion symbols.) < 1409639047 234008 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :Basically, especially for a player that isn't so experienced, but even for me, it can be hard to remember all the expansion symbols. < 1409639156 750015 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :They could be much easier to relate to if there was only one expansion symbol for the Urza's block (instead of three, the cogwheels, the lab breaker, and whatever is the third), one for the Judgement block (set of scales, some kind of ouroboros, and one more strange thingy), one for the Invasion block (I don't even remember what any of those look like), one for the Onslaught block (a morph spider). < 1409639168 901803 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :We can't change the old sets, but new blocks should do this. < 1409639204 750947 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :And I don't think it would cause too much problems with new sets either, would it? < 1409639298 390907 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :I mean, yeah I know, sword, shield and helm of Kaldra and all, but still. < 1409639382 545580 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :Morning < 1409639520 188570 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :(Also, Spreading Seas should have gotten a remainder text saying that the land loses abilities printed on it; and Hollow Dogs should be a Skeleton) < 1409639627 320903 :sebbu!~sebbu@ADijon-152-1-29-138.w83-194.abo.wanadoo.fr JOIN :#esoteric < 1409639666 80138 :sebbu!~sebbu@ADijon-152-1-29-138.w83-194.abo.wanadoo.fr QUIT :Changing host < 1409639666 235913 :sebbu!~sebbu@unaffiliated/sebbu JOIN :#esoteric < 1409639762 261039 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :[wiki] 14[[07///14]]4 10 02http://esolangs.org/w/index.php?diff=40382&oldid=38040 5* 03B jonas 5* (+131) 10/* Implementation */ < 1409639808 364391 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :(I mean, come on, a Zombie with no flesh is not a Zombie, it's a Skeleton or a Ghost depending on whether it has bones.) < 1409639836 428516 :Bike!~Glossina@69.166.47.137 PRIVMSG #esoteric :what if it's the zombie of an invertebrate < 1409639964 989443 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :Bike: the DnD rules at http://www.d20srd.org/srd/monsters/skeleton.htm says a skeleton needs a base creature with bones. If you have a creature with no bones and make an undead without flesh, what's its body made of? If there's no body, it's a ghost. If there's a body of soft tissue (not necessarily literally flesh), then it's a zombie (or maybe some higher level undead like ghoul). < 1409639989 785301 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :Bike: so basically when I said "flesh", I mean parts of the body other than the bones < 1409640001 59681 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :An exoskeleton < 1409640018 33795 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :dunno < 1409640044 136072 :Bike!~Glossina@69.166.47.137 PRIVMSG #esoteric :what about a cartilaginous animal, like a shark? who'd begrudge a zombie shark < 1409640076 302912 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :technically, the DnD rule says "skeletal system", not bones < 1409640117 940053 :sebbu!~sebbu@unaffiliated/sebbu QUIT :Read error: Connection reset by peer < 1409640172 243860 :sebbu!~sebbu@ADijon-152-1-29-138.w83-194.abo.wanadoo.fr JOIN :#esoteric < 1409640191 387173 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :and nethack does seem to go with this distinction: < 1409640200 949404 :sebbu!~sebbu@ADijon-152-1-29-138.w83-194.abo.wanadoo.fr QUIT :Changing host < 1409640201 104970 :sebbu!~sebbu@unaffiliated/sebbu JOIN :#esoteric < 1409640273 361047 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :consider Rimebound Dead, which is a Skeleton created by a necromancer from bones according to the flavor text, and Legions of Lim-Dûl, Zombies which have "faces of my dead friends" according to the flavor text and are created by a necromancer according to its card name. < 1409640358 920132 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :Both Heidar and Lim-Dul are necromancers, and both have both zombie and skeleton cards created by them: Zombie Musher and Kjeldoran Dead are the other cases. < 1409640401 475339 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :ghouls in nethack have the creature type Zombie, and ghosts have the type Spirit < 1409640481 165199 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :That sounds like more of a MtG thing than a NetHack thing. < 1409640845 264437 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :moin < 1409640904 722442 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :b_jonas: where do lemurs fit into this < 1409641319 795236 :Frooxius!~Frooxius@cust-101.ktknet.cz QUIT :Read error: Connection reset by peer < 1409641326 496360 :Frooxius!~Frooxius@cust-101.ktknet.cz JOIN :#esoteric < 1409641827 341446 :oerjan!oerjan@sprocket.nvg.ntnu.no QUIT :Quit: BANANAAAAAAA < 1409644459 409570 :doesthiswork!~Adium@2601:7:2480:1e1:223:12ff:fe1b:3213 QUIT :Quit: Leaving. < 1409645196 170904 :AnotherTest!~turingcom@d51A4287C.access.telenet.be JOIN :#esoteric < 1409645495 248563 :drdanmaku!uid17782@gateway/web/irccloud.com/x-nvdzdonskxonjzdm QUIT :Quit: Connection closed for inactivity < 1409646257 428918 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover JOIN :#esoteric < 1409646902 262347 :Patashu!Patashu@c27-253-115-204.carlnfd2.nsw.optusnet.com.au JOIN :#esoteric < 1409647361 560911 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :Frooxius: yes, sorry < 1409647368 25611 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :shachaf: ugh, lemurs and lemures, yeah < 1409647386 852340 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :which one of those is the Animal and which one is an undead spirit? < 1409647435 212287 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :see http://gatherer.wizards.com/Pages/Card/Details.aspx?multiverseid=2457 hth < 1409647782 974814 :Patashu_!Patashu@c27-253-115-204.carlnfd2.nsw.optusnet.com.au JOIN :#esoteric < 1409647783 168742 :Patashu!Patashu@c27-253-115-204.carlnfd2.nsw.optusnet.com.au QUIT :Disconnected by services < 1409647971 332490 :Patashu!Patashu@c27-253-115-204.carlnfd2.nsw.optusnet.com.au JOIN :#esoteric < 1409648183 949519 :Patashu_!Patashu@c27-253-115-204.carlnfd2.nsw.optusnet.com.au QUIT :Ping timeout: 272 seconds < 1409648265 482023 :Patashu_!Patashu@c27-253-115-204.carlnfd2.nsw.optusnet.com.au JOIN :#esoteric < 1409648265 708944 :Patashu!Patashu@c27-253-115-204.carlnfd2.nsw.optusnet.com.au QUIT :Disconnected by services < 1409648295 779299 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :Is there a equ f = (\a b -> (f a) == (f b))? < 1409648298 946248 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :much like comparing < 1409648305 606130 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :i.e. sortBy (comparing foo) < 1409648313 542968 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :=> groupBy (equ foo) < 1409648344 498191 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :or something like using f g = (\a b -> (f a) `g` (f b))? < 1409648379 16559 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :@let using f g = (\a b -> (f a) `g` (f b)) < 1409648381 583337 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric : Defined. < 1409648398 594797 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :comparing = (compare `on`) < 1409648402 414798 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :> groupBy (using length (==)) ["a","bb","c","dd"] < 1409648405 496408 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :So just use ((==) `on`) < 1409648406 340883 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric : [["a"],["bb"],["c"],["dd"]] < 1409648415 491267 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :> groupBy (using length (==)) ["a","bb","c","dd","ee"] < 1409648417 210997 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric : can't find file: L.hs < 1409648426 154385 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :whaaat < 1409648439 32840 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :That sometimes happens randomly. < 1409648441 941237 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :> groupBy (using length (==)) ["a","bb","c","dd","ee"] < 1409648444 449560 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric : [["a"],["bb"],["c"],["dd","ee"]] < 1409648447 161494 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :ic < 1409648452 182015 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :But "on" is what you wanted. < 1409648453 68256 :Patashu!Patashu@c27-253-115-204.carlnfd2.nsw.optusnet.com.au JOIN :#esoteric < 1409648469 439889 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :@type on < 1409648470 420371 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric :(b -> b -> c) -> (a -> b) -> a -> a -> c < 1409648516 671531 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :> groupBy ((==) `on` length) ["a","bb","c","dd","ee"] < 1409648518 154849 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric : [["a"],["bb"],["c"],["dd","ee"]] < 1409648520 299257 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :oh < 1409648521 802782 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :neat < 1409648523 723471 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :@hoogle on < 1409648525 973093 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric :Data.Function on :: (b -> b -> c) -> (a -> b) -> a -> a -> c < 1409648526 128807 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric :Control.Exception.Base onException :: IO a -> IO b -> IO a < 1409648526 128923 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric :Control.Exception onException :: IO a -> IO b -> IO a < 1409648627 790976 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Also, (==) `on` length is too strict. :-( < 1409648637 538214 :Patashu_!Patashu@c27-253-115-204.carlnfd2.nsw.optusnet.com.au QUIT :Ping timeout: 240 seconds < 1409648779 477430 :Patashu!Patashu@c27-253-115-204.carlnfd2.nsw.optusnet.com.au QUIT :Disconnected by services < 1409648779 633793 :Patashu_!Patashu@c27-253-115-204.carlnfd2.nsw.optusnet.com.au JOIN :#esoteric < 1409649051 202549 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :shachaf: "too strict"? < 1409649086 484296 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :> take 1 $ groupBy ((==) `on` length) [[1],[1]] < 1409649087 951976 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric : [[[1],[1]]] < 1409649090 406282 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :For example if you compare a finite list to an infinite list it'll never return. < 1409649091 706394 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :> take 1 $ groupBy ((==) `on` length) [[1],[1],[1..]] < 1409649096 14640 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric : mueval-core: Time limit exceeded < 1409649102 553541 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :well yeah < 1409649115 200410 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :length on infinite lists isn't really a clever thing to do < 1409649186 478097 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Well, on finite lists it'll just be inefficient rather than nonterminating. < 1409649190 483469 :Patashu!Patashu@c27-253-115-204.carlnfd2.nsw.optusnet.com.au JOIN :#esoteric < 1409649209 89349 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :ok then < 1409649219 262184 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :How do *you* group by length then? < 1409649230 480249 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Hmm. < 1409649241 729060 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :efficiently ;) < 1409649248 77457 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :((==) `on` map (const ())) will at least be asymptotically optimal. < 1409649282 223997 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :how so? < 1409649310 219049 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :It's terrible, though. < 1409649328 143238 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :> let sameLength [] [] = True; sameLength (a:_) [] = False; sameLength [] (b:_) = False; sameLength (a:as) (b:bs) = sameLength as bs in sameLength [1..] [3,2,1] < 1409649329 480115 :Patashu_!Patashu@c27-253-115-204.carlnfd2.nsw.optusnet.com.au QUIT :Ping timeout: 276 seconds < 1409649329 786092 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric : False < 1409649332 79656 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Write your own function? Or use genericLength :: [a] -> Nat (the only valid use of genericLength) < 1409649340 47279 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Your own function would be what fizzie wrote. < 1409649522 485776 :Patashu!Patashu@c27-253-115-204.carlnfd2.nsw.optusnet.com.au QUIT :Remote host closed the connection < 1409649534 994397 :Patashu!Patashu@c27-253-115-204.carlnfd2.nsw.optusnet.com.au JOIN :#esoteric < 1409649587 176085 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :((==) `on` (() <$)) has a good punctuation-to-alpha ratio, however. < 1409650061 765122 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :data T; instance Ord T where compare _ _ = EQ; (==) `on` (unsafeCoerce :: [a] -> [T]) < 1409650099 148256 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :() will waste all those cycles "forcing" and comparing ()s < 1409650113 261321 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :> compare () undefined < 1409650114 819639 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric : *Exception: Prelude.undefined < 1409650326 117478 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :> length $ (map (const undefined)) [1..] < 1409650329 774666 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric : mueval-core: Time limit exceeded < 1409650332 436474 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :> length $ (map (const undefined)) [1..20] < 1409650334 309896 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric : 20 < 1409650382 552253 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :hm < 1409650384 851116 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :better newtype over Any. < 1409650387 549777 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :> zip [1..20] [1..19] < 1409650389 142423 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric : [(1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(10,10),(11,11),(12,1... < 1409650431 304158 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :> length $ zip [1..20] [1..19] -- that's just the shorter, isn't it? < 1409650432 887887 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric : 19 < 1409650437 901696 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :@let cmp xs ys = last (zip xs ys) == (last xs, last ys) < 1409650440 452689 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric : Defined. < 1409650445 725742 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :> cmp [1..20] [1..19] < 1409650447 724385 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric : False < 1409650455 1883 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :> cmp [1..20] [1..20] < 1409650455 409813 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :> cmp [1,1,1,1] [1] < 1409650456 673776 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric : can't find file: L.hs < 1409650456 829199 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric : True < 1409650464 622959 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :> cmp [1..20] [1..20] < 1409650466 172124 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric : True < 1409650470 258085 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :> cmp [1,1,1,1] [1] -- still < 1409650471 597238 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric : True < 1409650509 209561 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :> cmp [1,2,3,2,1] [1] -- and so on < 1409650510 787400 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric : True < 1409650533 457405 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :k < 1409650542 579114 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :cmpMonotonicSteadilyRisingLists < 1409650556 294437 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :hm no < 1409650560 905113 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :*hide* < 1409650596 733646 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Another benefit: sameLength :: [a] -> [b] -> Bool vs. ((==) `on` length) :: [a] -> [a] -> Bool. < 1409651321 416358 :Patashu_!Patashu@c27-253-115-204.carlnfd2.nsw.optusnet.com.au JOIN :#esoteric < 1409651326 388040 :Patashu_!Patashu@c27-253-115-204.carlnfd2.nsw.optusnet.com.au QUIT :Client Quit < 1409651327 317678 :Patashu!Patashu@c27-253-115-204.carlnfd2.nsw.optusnet.com.au QUIT :Disconnected by services < 1409651459 601956 :IAm_thor!~PircBotX@31.221.70.157 JOIN :#esoteric < 1409651460 613229 :IAm_thor!~PircBotX@31.221.70.157 PART :#esoteric < 1409651709 681109 :IAm_thor!~PircBotX@31.221.70.157 JOIN :#esoteric < 1409651710 663730 :IAm_thor!~PircBotX@31.221.70.157 PART :#esoteric < 1409652722 943725 :boily!~boily@96.127.201.149 JOIN :#esoteric < 1409653252 317041 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :except that groupBy requires [a] anyway < 1409653256 819370 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :@type groupBy < 1409653257 706703 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric :(a -> a -> Bool) -> [a] -> [[a]] < 1409653577 812011 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :hm < 1409653588 763409 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :Can I have a data Pair a b = Pair a b < 1409653604 97299 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :but with a Type Constructor Foo a = Pair a a? < 1409653619 225509 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :newtype Foo a = Foo (Pair a a)? < 1409653632 135443 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :(two contructors: one with two arguments and one with one argument) < 1409653660 806743 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :hm < 1409653682 842013 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :Pair a b = Pair a b | Pair' a a doesn't work < 1409653700 515871 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :mroman_: wait, what exactly do you want? a wrapper function? a gadt with two constructors? I don't understand < 1409653701 331122 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :(Pair' still takes two arguments) < 1409653710 942943 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :well < 1409653716 91398 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :I could just use foo a = Pair a a < 1409653720 281910 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :but then foo isn't a type constructor < 1409653735 105368 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I think you're confusing all sorts of things here. < 1409653738 82837 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :um < 1409653739 545195 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :i.e. I can't match for that < 1409653747 566564 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :and how would you want to match this? < 1409653775 531853 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :foobar (Foo _) = ...; foobar (Pair _ _) = ... < 1409653786 140551 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :foobar :: Pair a b -> ... < 1409653812 483653 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :wait < 1409653849 512184 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :I'm stupid < 1409653881 114251 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :or am I < 1409653889 644012 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :data Pair a b = Pair a b | Pair' a < 1409653896 965014 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :but then Pair' only holds one value < 1409653897 588645 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric ::( < 1409653928 569793 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :The first thing to do if you don't want to confuse people is to use a different name for the type constructor and the data constructor. < 1409653962 522224 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :except, perhaps, for records. < 1409653974 480825 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :well < 1409653997 420599 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :There should be two "constructors". One with two arguments and one with one argument < 1409654006 58795 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :and you can match against the one with only one argument of course < 1409654016 369756 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :but the one with one argument shall also match for the one with two arguments < 1409654025 553676 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :anyway I don't know what you want. < 1409654029 251357 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :i.e. let's call them Pair1 and Pair2 < 1409654060 181861 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :Pair1 takes one argument and Pair2 takes two arguments < 1409654065 553618 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :data Pair a b where { Pair :: a -> b -> Pair a b; Twice :: a -> Pair a a }? < 1409654079 616361 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :you can match as in foo (Pair1 a) = ... and foo (Pair2 a b) = .... < 1409654084 628455 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :mroman_: but what should happen when you call Pair1, and what should happen when oyu match for Pair1? < 1409654095 206751 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :however, if foo (Pair2 a b) appears *BEFORE* foo (Pair1 a) < 1409654102 817227 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :the Pair1 shall behave as if it were a Pair2 < 1409654109 119228 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :i.e. it matches Pair2 as well < 1409654116 117153 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :that's insane < 1409654123 223150 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :but when do you want Pair1 to match? < 1409654134 487607 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :and can you use a gadt AND arrow view match syntax instead? < 1409654144 621609 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :or just arrow view match syntax? < 1409654150 801179 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :There's a different algorithm you can use to do foo if both values are equal < 1409654156 199170 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :(with a non-gadt ordinary data type) < 1409654164 914855 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :which is faster than using the generic two non-equal values algorithm < 1409654173 129813 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :of course you could just do |a == b = ... < 1409654193 941615 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :mroman_: use an arrow view? < 1409654217 508607 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :however, some other functions (not like foo) don't have such a distinction < 1409654299 170119 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :others however only work when both are equal < 1409654354 190500 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :which means you could do |a /= b = error ":(" < 1409654360 904010 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :but I'd want it more type-safeish < 1409654418 543399 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :I.e. just matching Pair1 wouldn't be type-safe as well < 1409654429 411703 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :then Pair2 would just throw a "didn't match exception" < 1409654431 830531 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :I think the GADT idea is sane. And you can define a view function, pair :: Pair a b -> (a,b) for the common case where equality doesn't help. < 1409654460 750475 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :(needs a better name) < 1409654470 332895 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :mroman_: do you mean you want to encode in _compile time_ that the two values are equal? because then you need a separate type for that case, and probably a typeclass so you can use that in the general case too. < 1409654561 549116 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :b_jonas: yeah @compile-time < 1409654571 118831 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :data Pair a b where { Same :: a -> Pair a a; Different :: a -> b -> Pair a b } < 1409654596 100616 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :like, I dunno, data Pair2 a b = Pair2 a b; data Pair1 a = Pair1 a; class Pair a b t | t -> a b where { decodePair :: t -> (a, b) }; instance Pair a b (Pair2 a b) where { decodePair (Pair2 x y) = (x, y); }; < 1409654607 803303 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :(Of course there's no way to ensure that the two arguments to "Different" are actually different.) < 1409654613 263900 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :instance Pair a a (Pair1 a a) where { deocdePair (Pair1 x) = (x, x); }; < 1409654628 205473 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :or something like that with correct syntax (how's the fundep syntax work again?) < 1409654716 692432 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :int-e: but then let (Different a b) = (Same 5) in a*b doesn't work < 1409654726 990552 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :which should result in 25 < 1409654732 264800 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :but pattern don't match < 1409654760 181987 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :but ok < 1409654764 260785 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :it's "insane" :) < 1409654791 188471 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :I was merey wondering if it could be achieved, not that I really need to do it < 1409654794 969599 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :*merely < 1409654911 757499 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :I can give you the Java-Code for that ;) < 1409654943 127317 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :mroman_: I know. but let (a,b) = pair (Same 5) works. < 1409654958 554402 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :mroman_: where 'pair' is an appropriate view function, which is trivial to define < 1409654986 782686 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :mroman_: you don't get the syntax that you want (and I honestly think that there's no sane way of doing that), but you do get the functionality. < 1409654993 180123 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :int-e: in that case your pair is the function decodePair from my example code, < 1409655022 950597 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :b_jonas: no, because I have no type class. :P < 1409655058 915970 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :only in that case I also need an extra method for the case where you want to work differently in the simpler and the more complicated case < 1409655093 482238 :KingOfKarlsruhe!~KingOfKar@unaffiliated/kingofkarlsruhe QUIT :Ping timeout: 240 seconds < 1409655222 911393 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :wait, aren't we on the wrong channel for this/ < 1409655231 848669 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :mroman_: ask on #haskell < 1409655314 494361 :KingOfKarlsruhe!~KingOfKar@unaffiliated/kingofkarlsruhe JOIN :#esoteric < 1409655350 504751 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :I thought this was the channel for everything . < 1409655589 572893 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :everything that's remotely insane and has something to do with IT < 1409655626 243397 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :sure, you can ask here too < 1409655633 376643 :AndoDaan!~Daanando@62.205.86.141 PRIVMSG #esoteric :which esoteric language most resembles the basic turing machine? < 1409655640 256843 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :we jsut talked about M:tG too afterall < 1409655673 927964 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :and if this channel is about everything, let me mention that today's strip http://thedoghousediaries.com/5893 is totally the old strip http;//xkcd.com/501/ done backwards < 1409655690 884130 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :AndoDaan: dunno, I hate the basic turing machine < 1409655717 605865 :AndoDaan!~Daanando@62.205.86.141 PRIVMSG #esoteric :How can you? Everything started with the turing machine. < 1409655717 789158 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :especially the one-tape turing machine (and bf for the same reason) < 1409655723 670567 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :no it did not < 1409655727 942749 :AndoDaan!~Daanando@62.205.86.141 PRIVMSG #esoteric :pfft < 1409655728 631661 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :everything started with Babbage < 1409655734 494340 :AndoDaan!~Daanando@62.205.86.141 PRIVMSG #esoteric :pfffft < 1409655736 655422 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :honestly I don't want to bother #haskell's more serious and productive discussion with some crazy experimental questions < 1409655747 100660 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :I prefer proper pointer machines (even with immutable cells) that aren't bound to a one-dimensional tape < 1409655755 838722 :AndoDaan!~Daanando@62.205.86.141 PRIVMSG #esoteric :programming started with Lovelace. < 1409655772 725565 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :AndoDaan: yes, and programming never got to turing machines < 1409655781 857579 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :well, almost < 1409655818 518019 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :technically, there did exist some old computers with very few registers and a few kilobytes large spinning disk storing the instructions and memory, < 1409655823 513083 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :but let's forget about those contraptions < 1409655850 359552 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :I want to work with models and esoteric programming languages that can simulate sane computers with just a log-factor slowdown < 1409655876 796456 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :It's possible nobody's bothered to replicate a Turing machine very closely in anything on esolangs.org because if a Turing machine's what you want, then probably you should just use one. There are a number of simulators. < 1409655933 416991 :AndoDaan!~Daanando@62.205.86.141 PRIVMSG #esoteric :I am, and it's fun. < 1409655974 41461 :AndoDaan!~Daanando@62.205.86.141 PRIVMSG #esoteric :Deterministic FInite Automata is less fun. < 1409655998 245736 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Category:Cell-based has a number of tape-oriented contraptions, but even those generally have quite different control flow than the states+transitions thing. < 1409656105 304160 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Programming in Thue might resemble programming a Turing machine. At least I think you end up with vaguely similar stuff, moving marker symbols up and down the string and so on. < 1409656157 757518 :AndoDaan!~Daanando@62.205.86.141 PRIVMSG #esoteric :string rewriting, I have a hard time wrapping my head around it. < 1409656227 241209 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :We had some "write an unrestricted grammar to accomplish thing X" exercises on the introduction-to-theory-of-computation course, and I quite liked them. < 1409656261 241271 :AndoDaan!~Daanando@62.205.86.141 PRIVMSG #esoteric :do you remember an example? < 1409656268 946766 :boily!~boily@96.127.201.149 QUIT :Quit: MEGAWATT CHICKEN < 1409656283 349279 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :fizzie: but isn't Thue one of those languages that use just a single circular stack so if you want to move backwards you have to do a full cycle? < 1409656342 119054 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :wait, Thue isn't one of those, sorry < 1409656343 267660 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :AndoDaan: Well, the *tasks* weren't really very exciting per se. Simple operations on binary numbers, maybe. < 1409656378 390879 :AndoDaan!~Daanando@62.205.86.141 PRIVMSG #esoteric :like "turn a binary string into unary" < 1409656393 351675 :AndoDaan!~Daanando@62.205.86.141 PRIVMSG #esoteric :just read that one. < 1409656430 838097 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :There were also "build Turing machines" ones. (I found my homework answer .tex files.) < 1409656460 722930 :AndoDaan!~Daanando@62.205.86.141 PRIVMSG #esoteric :sound more complicated < 1409656462 43784 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Like "design a two-tape TM to recognize the language { wcw | w \in {a,b}* }". < 1409656480 575011 :AndoDaan!~Daanando@62.205.86.141 PRIVMSG #esoteric :oh like that. < 1409656513 928794 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :"Design a three-tape TM to sum two binary digits." That kind of stuff. < 1409656529 190312 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :Sometimes it's worth to re-read old threads on web forums that I have participated in (whether I asked or replied). I can find interesting stuff I almost forgot about. < 1409656589 947481 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Here's one about grammars: construct unrestricted grammars to produce the languages { w \in {a,b,c}* | the number of a's, b's and c's in w is equal } and { a^(2^n) | n >= 0 }. < 1409656877 11372 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :I seem to have done something like http://sprunge.us/OgWB if you don't mind spoiling the questions; the latter is quite typical "practical programming with unrestricted grammars" one. (Disclaimer: solutions not guaranteed correct/good.) < 1409657345 745456 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Also, http://esolangs.org/wiki/NTCM is just a multitape TM with an I/O thing. < 1409657445 634146 :AndoDaan!~Daanando@62.205.86.141 PRIVMSG #esoteric :back. sorry < 1409657561 404752 :AndoDaan!~Daanando@62.205.86.141 PRIVMSG #esoteric :what do the "<" and ">" mean? < 1409657570 991843 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :They're just symbols. < 1409657587 486797 :sebbu!~sebbu@unaffiliated/sebbu QUIT :Ping timeout: 245 seconds < 1409657665 82438 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :You can replace them with e.g. B and E (for beginning and end, respectively). < 1409657833 355197 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :It's very simple; P always moves left-to-right through a string of AAA... and doubles it as it goes; at the end, it turns into either Q or R; Q is rewinded to the start to turn into a second P, while R just turns all the A's into a's. (It'd be slightly simpler to operate on a's directly, I don't know why I didn't do that.) < 1409657912 330651 :AndoDaan!~Daanando@62.205.86.141 PRIVMSG #esoteric :Hmm. < 1409657930 425857 :AndoDaan!~Daanando@62.205.86.141 PRIVMSG #esoteric :Hard to do it in my head for me. < 1409657999 653671 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :oh, lots of broken links at the bottom. lycos, lycos, this was so long ago ... < 1409658120 147424 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :The kind of marker-based things like that are reasonably easy to reason about. If you only have some fixed set of "active" symbols (like P, R, Q), and the productions both (a) ensure there's always only one "active" character in the entire string and (b) all include an active character on the left-hand-side, it's quite like having a "tape head" (and a "current state" indicated by which ... < 1409658126 155734 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :... character it is). < 1409658199 981308 :AndoDaan!~Daanando@62.205.86.141 PRIVMSG #esoteric :Yeah. like, I see "ab -> ba" & "ba -> ab" and think... why < 1409658225 548596 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Well, the first grammar is quite different from that, it's more of an idea-based thing. < 1409658230 524944 :AndoDaan!~Daanando@62.205.86.141 PRIVMSG #esoteric :but i guess I'm looking at them as sequenceal instructions, when they're not < 1409658331 267707 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :It's basically "to make any string with equal number of a's, b's and c's, start with abcabc..abc and then keep swapping arbitrary letter pairs as long as you like". < 1409658394 20747 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :While the second one always has at most one left-hand-side in the productions that can match, so it's almost like an imperative program. < 1409659052 958355 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :wait wait wait < 1409659141 906113 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :`run wait && wait && wait < 1409659142 622847 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :No output. < 1409659154 694826 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Okay, done. < 1409659383 446177 :Sgeo_!~quassel@ool-44c2aebc.dyn.optonline.net QUIT :Read error: Connection reset by peer < 1409659991 767101 :AndoDaan!~Daanando@62.205.86.141 PRIVMSG #esoteric :Getting the hang of this. Just made one to increment a binary number. < 1409660048 697072 :AndoDaan!~Daanando@62.205.86.141 PRIVMSG #esoteric :Thanks for your help, fizzie. < 1409660052 502263 :AndoDaan!~Daanando@62.205.86.141 PRIVMSG #esoteric :gtg cya. < 1409660056 633092 :AndoDaan!~Daanando@62.205.86.141 QUIT : < 1409661168 351998 :sebbu!~sebbu@ADijon-152-1-38-151.w83-194.abo.wanadoo.fr JOIN :#esoteric < 1409661203 303750 :sebbu!~sebbu@ADijon-152-1-38-151.w83-194.abo.wanadoo.fr QUIT :Changing host < 1409661203 459192 :sebbu!~sebbu@unaffiliated/sebbu JOIN :#esoteric < 1409661855 124945 :IAm_thor!~PircBotX@31.221.70.157 JOIN :#esoteric < 1409661855 320359 :IAm_thor!~PircBotX@31.221.70.157 QUIT :Excess Flood < 1409662451 403370 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :@metar LOWI < 1409662451 882797 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric :LOWI 021220Z 06004KT 020V110 9999 FEW015 SCT040 BKN065 14/09 Q1020 NOSIG < 1409662573 66945 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :@metar EFHK < 1409662573 373336 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric :EFHK 021250Z 19009KT 9999 FEW024 BKN070 16/09 Q1025 NOSIG < 1409663398 561683 :conehead!~conehead@unaffiliated/conehead JOIN :#esoteric < 1409664934 482913 :conehead!~conehead@unaffiliated/conehead QUIT :Ping timeout: 252 seconds < 1409666364 271588 :Sprocklem!~sprocklem@unaffiliated/sprocklem QUIT :Ping timeout: 260 seconds < 1409666390 80899 :conehead!~conehead@unaffiliated/conehead JOIN :#esoteric < 1409666814 345224 :sebbu!~sebbu@unaffiliated/sebbu QUIT :Ping timeout: 246 seconds < 1409667469 92564 :sebbu!~sebbu@ADijon-152-1-38-151.w83-194.abo.wanadoo.fr JOIN :#esoteric < 1409667502 245180 :sebbu!~sebbu@ADijon-152-1-38-151.w83-194.abo.wanadoo.fr QUIT :Changing host < 1409667502 400682 :sebbu!~sebbu@unaffiliated/sebbu JOIN :#esoteric < 1409667791 268784 :IAm_thor!~PircBotX@31.221.70.157 JOIN :#esoteric < 1409668089 921573 :IAm_thor!~PircBotX@31.221.70.157 QUIT :Ping timeout: 264 seconds < 1409668441 375530 :mihow!~mihow@108.30.58.169 JOIN :#esoteric < 1409668488 472024 :prooftechnique!~NihilistD@65-183-137-193-dhcp.burlingtontelecom.net JOIN :#esoteric < 1409669422 949111 :hogeyui____!~hogeyuiVP@vps.usamimi.biz QUIT :Ping timeout: 240 seconds < 1409669550 571866 :IAm_thor!~PircBotX@31.221.70.157 JOIN :#esoteric < 1409669552 542732 :IAm_thor!~PircBotX@31.221.70.157 PART :#esoteric < 1409669645 344146 :Lymia!~fujoshi@inportb/loli/cirno-chan QUIT :Ping timeout: 260 seconds < 1409669740 744886 :hogeyui____!~hogeyuiVP@vps.usamimi.biz JOIN :#esoteric < 1409669973 43257 :conehead!~conehead@unaffiliated/conehead QUIT :Ping timeout: 255 seconds < 1409670100 535614 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :is anyone on the ICFP conference listening to the announcement of the results of the contest? < 1409670134 480192 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :it's supposed to be happening about now < 1409670227 456461 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :this schedule confirms the time: http://icfpconference.org/icfp2014/program.html < 1409670413 611700 :IAm_thor!~PircBotX@31.221.70.157 JOIN :#esoteric < 1409670416 590173 :IAm_thor!~PircBotX@31.221.70.157 PART :#esoteric < 1409670766 778237 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :@ask Taneb Also is that Lambda-Calculus-Syntax-Thing still a thing? < 1409670766 972852 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric :Consider it noted. < 1409670803 382163 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :@tell mroman_ possibly < 1409670803 537598 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric :Consider it noted. < 1409670856 240203 :TieSoul!~TieSoul@5ED55308.cm-7-6b.dynamic.ziggo.nl JOIN :#esoteric < 1409670858 174191 :TieSoul!~TieSoul@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :hey < 1409670865 354646 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :Did you see my ask about the ESOSC-BF-Error-Behaviour? < 1409670881 505543 :TieSoul!~TieSoul@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :I'm adding Unefunge and Trefunge support to my Funge interpreter < 1409670881 831125 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :Yeah, I broadly agree with it < 1409670888 926967 :TieSoul!~TieSoul@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric ::D < 1409670913 657319 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :"broadly" as in "vaguely"? < 1409670938 862262 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :"broadly" as in "I haven't thought too much about it" < 1409670947 904811 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :ah. I see. < 1409670982 293619 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :It was to allow a left-side of the tape, but still error on falling off it? < 1409671025 531541 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :No. It's that you start at cell 0 < 1409671036 386044 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :and once you go left on cell 0 it will throw an error < 1409671047 826570 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :cell 1 being 1 cell to the right of cell 0 < 1409671090 12884 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :Right < 1409671110 106237 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :Generally the idea should still be that you can make the statement "this bf program will run in any esosc compliant interpreter" < 1409671122 719877 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :which you can't make if it's implementation defined < 1409671180 809451 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :The programs that will run on left-extending are a strict superset of the ones that'll run on fail-on-left < 1409671209 377502 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :I doubt that there are programs relying on fail-on-left < 1409671218 400570 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :well < 1409671227 839290 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :But there are ones that don't not work on fail-on-left < 1409671230 237256 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :there could be for "terminate this program now by going into a left loop" < 1409671234 269905 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :And they all work on left-extension < 1409671241 260858 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :but there are surely ones that rely on left-extension yes < 1409671258 728823 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :I don't want to overspecify < 1409671276 606030 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :if we say "Implementations must fail on left", that makes things nastier < 1409671302 653250 :TieSoul!~TieSoul@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :My implementation ignores < on cell 0 < 1409671317 877842 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :a possible compromise could be to mandate that an interpreter supports both behaviours < 1409671328 12144 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :(i.e. through a command line switch) < 1409671339 322011 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :mroman_, but that may make implementation in some languages (such as C) harder < 1409671364 833786 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :when going from left to the initial cell, you should access implementation-specific magical cells that let you access extended io or coprocessor functions < 1409671394 469649 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :or like you suggested < 1409671398 862030 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :and some of those cells should of course describe the available functions so you can detect them < 1409671403 364665 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :"extend to the left but it's not recommended to rely on it" < 1409671423 767439 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :i.e. because not all interpreter will actually extend to the left < 1409671431 714586 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :but < 1409671433 930327 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :well < 1409671440 529881 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :if anything it's either error or extend to the left < 1409671447 725855 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :and which one is implementation defined < 1409671458 360914 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :but not "it could even wrap around to the rightmost cell" < 1409671464 37183 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :or "the < is ignored" < 1409671492 676298 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :Or have behaviour on left-from-cell-0 implementation-defined, and have a note to programmers warning against depending on any specific behaviour unless they know exactly which implementation they are writing for and how it behaves < 1409671519 831483 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :if it's completely unspecified what happens < 1409671526 912832 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :then the program < might format your harddisk ;) < 1409671536 428624 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :It might do, yeah < 1409671544 356665 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :i.e. if the interpreter doesn't support left-extension it would at least throw an error < 1409671561 623585 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :but if you leave it completely up to the interpreter it might as well format your hard disk < 1409671570 694572 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :or do something else and then you don't know why the program is not working < 1409671584 91269 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :I'm saying it should be on the programmer to only rely on < when they know how it will behave < 1409671584 338976 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :so I really think that it should either be error or extend but not something else too < 1409671594 277151 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :ie, they are writing for a specific implementation < 1409671803 897191 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :yeah < 1409671806 11743 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :the problem here is < 1409671821 240316 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :you can't statically determine whether you use implementation defined behaviour or not < 1409671828 948287 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :i.e. if you have a bug in your program or something < 1409671846 827188 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :then it might do even crazier things in some interpreters than in others < 1409671879 342610 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :also if you just run a brainfuck program and it doesn't do what it's supposed to do (because it uses implementation defined behaviour) you won't notice it < 1409671896 228055 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :(gotta catch the train know) < 1409671898 197075 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :*now < 1409672143 783976 :CManahl!cf1cf972@gateway/web/cgi-irc/kiwiirc.com/ip.207.28.249.114 JOIN :#esoteric < 1409672147 628373 :CManahl!cf1cf972@gateway/web/cgi-irc/kiwiirc.com/ip.207.28.249.114 PRIVMSG #esoteric :Yo guys, I need help. < 1409672158 637842 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :What's up < 1409672162 86724 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :you and me both < 1409672169 279765 :CManahl!cf1cf972@gateway/web/cgi-irc/kiwiirc.com/ip.207.28.249.114 PRIVMSG #esoteric :What's the exact specs for error created in the Entropy esolang? < 1409672174 563321 :CManahl!cf1cf972@gateway/web/cgi-irc/kiwiirc.com/ip.207.28.249.114 PRIVMSG #esoteric :elliott: v funny < 1409672183 243610 :CManahl!cf1cf972@gateway/web/cgi-irc/kiwiirc.com/ip.207.28.249.114 PRIVMSG #esoteric :I would normally access someone else's source code < 1409672200 76939 :CManahl!cf1cf972@gateway/web/cgi-irc/kiwiirc.com/ip.207.28.249.114 PRIVMSG #esoteric :but this is a school-issued computer that's blocking a javascript implementation < 1409672204 342385 :CManahl!cf1cf972@gateway/web/cgi-irc/kiwiirc.com/ip.207.28.249.114 PRIVMSG #esoteric :can someone pastebin it? < 1409672236 394152 :CManahl!cf1cf972@gateway/web/cgi-irc/kiwiirc.com/ip.207.28.249.114 PRIVMSG #esoteric :http://andrew-hoyer.com/experiments/entropy/%E2%80%8E < 1409672245 837406 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :https://github.com/rottytooth/Entropy is the original implementation < 1409672273 468604 :CManahl!cf1cf972@gateway/web/cgi-irc/kiwiirc.com/ip.207.28.249.114 PRIVMSG #esoteric :I don't know the language, but I'll try. Thanks! < 1409672335 401899 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :the javascript thing is just something that implements the language's ideas as a javascript API < 1409672351 412972 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :not a proper implementation of the language < 1409672383 972194 :CManahl!cf1cf972@gateway/web/cgi-irc/kiwiirc.com/ip.207.28.249.114 PRIVMSG #esoteric :I only want the info of -how- variables mutate when accessed. < 1409672393 390893 :CManahl!cf1cf972@gateway/web/cgi-irc/kiwiirc.com/ip.207.28.249.114 PRIVMSG #esoteric :I'm trying to make an 'entropic' data type for my native language < 1409672527 351090 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :Which language? < 1409672532 91523 :CManahl!cf1cf972@gateway/web/cgi-irc/kiwiirc.com/ip.207.28.249.114 PRIVMSG #esoteric :Python < 1409672539 761330 :J_Arcane!~JArcane@dsl-trebrasgw2-54f959-138.dhcp.inet.fi PRIVMSG #esoteric :Hmm. I've a thought for a pointless cycle-waster project in the line of a Project Euler project, but I need a dictionary list. < 1409672548 339336 :CManahl!cf1cf972@gateway/web/cgi-irc/kiwiirc.com/ip.207.28.249.114 PRIVMSG #esoteric :I just want the variables to mutate in the same way < 1409672601 256778 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover PRIVMSG #esoteric :you can't add code to execute every time a python object is 'read', though, can you? < 1409672608 431480 :Bike!~Glossina@69.166.47.137 PRIVMSG #esoteric :J_Arcane: dictionary list? < 1409672611 292109 :CManahl!cf1cf972@gateway/web/cgi-irc/kiwiirc.com/ip.207.28.249.114 PRIVMSG #esoteric :Nah. < 1409672631 526747 :CManahl!cf1cf972@gateway/web/cgi-irc/kiwiirc.com/ip.207.28.249.114 PRIVMSG #esoteric :I'm adding a class.getvalue() function that returns the 'current' value and mutates it. < 1409672638 614014 :J_Arcane!~JArcane@dsl-trebrasgw2-54f959-138.dhcp.inet.fi PRIVMSG #esoteric :Bike: Or rather more clearly, a list of English words. As close to all of them as can be gained. < 1409672643 289985 :CManahl!cf1cf972@gateway/web/cgi-irc/kiwiirc.com/ip.207.28.249.114 PRIVMSG #esoteric :*object.getvalue() < 1409672649 163372 :Bike!~Glossina@69.166.47.137 PRIVMSG #esoteric :J_Arcane: you on linux? < 1409672661 758468 :J_Arcane!~JArcane@dsl-trebrasgw2-54f959-138.dhcp.inet.fi PRIVMSG #esoteric :No, but I could be on BSD in a matter of minutes. < 1409672673 256963 :Bike!~Glossina@69.166.47.137 PRIVMSG #esoteric :http://en.wikipedia.org/wiki/Words_%28Unix%29 < 1409672681 849745 :Bike!~Glossina@69.166.47.137 PRIVMSG #esoteric :i guess bsd has it too, probably < 1409672682 787145 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :@tell mroman_ Maybe allow implementation-defined but require an option to fail-on-left if it doesn't by default? I'm not sure if you suggested this < 1409672682 963400 :lambdabot!~lambdabot@silicon.int-e.eu PRIVMSG #esoteric :Consider it noted. < 1409672697 684585 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :Oooh! < 1409672703 677216 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :Someone in here linked me one the other day! < 1409672707 720123 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :12dict or something < 1409672713 511508 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :why is bf so important? can't we just use saner esoteric languages? < 1409672724 665381 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :b_jonas, bf has historical significance < 1409672734 126722 :J_Arcane!~JArcane@dsl-trebrasgw2-54f959-138.dhcp.inet.fi PRIVMSG #esoteric :I'm not sure sanity is necessarily the point of an esolang. < 1409672752 85127 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :Basically, it's sufficiently well known that it's often the first esolang people here of < 1409672766 465006 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :It's also the most implemented < 1409672781 125266 :CManahl!cf1cf972@gateway/web/cgi-irc/kiwiirc.com/ip.207.28.249.114 PRIVMSG #esoteric :Okay, I know I'm really dumb. But can someone read https://github.com/rottytooth/Entropy/blob/master/Rottytooth.Esolang.Entropy/Real.cs and tell me the algorithm for changing the real value once it's read? DDD: I don't understand a lick of this < 1409672875 541838 :Bike!~Glossina@69.166.47.137 PRIVMSG #esoteric :CManahl: "byte[] whatever = new byte[1]; Crypto.GetBytes(mutate);" probably makes whatever a random byte < 1409672895 382759 :Bike!~Glossina@69.166.47.137 PRIVMSG #esoteric :man this code is ugly < 1409672899 37857 :J_Arcane!~JArcane@dsl-trebrasgw2-54f959-138.dhcp.inet.fi PRIVMSG #esoteric :Bike: That should be a good start. < 1409672907 23508 :CManahl!cf1cf972@gateway/web/cgi-irc/kiwiirc.com/ip.207.28.249.114 PRIVMSG #esoteric :yeah... uuuu < 1409672920 235402 :Bike!~Glossina@69.166.47.137 PRIVMSG #esoteric :but basically a value changes by changeAmount, which is MutationRate / (a random float) < 1409672931 722189 :Bike!~Glossina@69.166.47.137 PRIVMSG #esoteric :possibly negated... yeah you know what, fuck thsi code, do your own thing. < 1409672946 435939 :CManahl!cf1cf972@gateway/web/cgi-irc/kiwiirc.com/ip.207.28.249.114 PRIVMSG #esoteric :I agree... < 1409672959 985833 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :oh by the way < 1409672983 208638 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :did you figure out anything about that (volatile int){1} = 2; thing in C that came up a few days ago? < 1409672986 810461 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :what's happened with it? < 1409673036 30973 :Bike!~Glossina@69.166.47.137 PRIVMSG #esoteric :what about it? < 1409673039 956060 :J_Arcane!~JArcane@dsl-trebrasgw2-54f959-138.dhcp.inet.fi PRIVMSG #esoteric :This one is also quite complete. < 1409673042 555658 :J_Arcane!~JArcane@dsl-trebrasgw2-54f959-138.dhcp.inet.fi PRIVMSG #esoteric :http://www-01.sil.org/linguistics/wordlists/english/ < 1409673090 471469 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :Bike: someone compiled something like int main(void) { (volatile int){1} = 2; return 0; } in C and found that some compiler optimzied the assignment away, and was asking whether that was a bug < 1409673098 566208 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :zzo38: do you happen to recall this? < 1409673124 923515 :Bike!~Glossina@69.166.47.137 PRIVMSG #esoteric :yeah, i remember, it turned into some C standard weirdocity < 1409673128 216949 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :b_jonas: I think we kind of concluded that it would be "more proper" for it to not be optimized out completely (and clang/LLVM follows that), but that it's perhaps not strictly speaking required, due to the inherent fuzziness about volatile, both in the standard and in GCC's "how we interpret it" documentation. < 1409673196 511763 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Conceptually speaking, it's not really any different from int main(void) { volatile int i = 1; i = 2; return 0; } which even GCC keeps as-is also with optimizations on, so it's hard to say why the compound literal should differ. < 1409673215 974260 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :Hmm, how would a conforming C program detect the absence of that assignment? < 1409673232 992476 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :int-e: it doesn't, someone looked at an assembly dump < 1409673295 124964 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :fizzie: and of course I said I can accept a difference because I don't expect that a compiler can always optimize expressions involving volatile well, so maybe it just failed to optimize in some case. it could even depend on compiler version or switches or moonphase or anything. < 1409673297 572052 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :hmm. I need to find the C11 standard < 1409673313 906836 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :but I also don't know whether it's allowed to optimize it away in first place. I think it is allowed, but I'm not sure. < 1409673329 327761 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :int-e: http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf < 1409673362 368714 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :volatile's definition is all about "any expression referring to such an object shall be evaluated strictly according to the rules of the abstract machine, as described in 5.1.2.3." < 1409673508 193159 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Accessing a volatile object counts as a "side effect, which [is a] change[] in the state of the execution environment". And in the abstract machine, an implementation is allowed to not evaluate an expression "if it can deduce that its value is not used and that no needed side effects are produced". < 1409673523 542053 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Of course they don't exactly define what a "needed side effect" is. < 1409673535 679685 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :fizzie: but C11 doesn't really define what you're allowed to do in a signal handler in general, or how volatile interacts with observing a value outside and inside a signal handler in particular < 1409673620 722223 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :I'm not sure why you'd need to involve signal handlers here. < 1409673640 61809 :CManahl!cf1cf972@gateway/web/cgi-irc/kiwiirc.com/ip.207.28.249.114 PRIVMSG #esoteric :Woo, finished my entropy module < 1409673722 84418 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :fizzie: signal handlers are involved because signal handlers are mentioned in C11 itself, and as such it's one of those cases where volatile may matter for the correctness of your program even if you don't do implementation-specific stuff like accessing memory-mapped hardware < 1409673826 887331 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :POSIX has a few choice words about this in http://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html#tag_15_04 though I think in general POSIX's restrictions might not be the ones you want to really believe in < 1409673900 520314 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Well, it possibly boils down to how much you want to argue from "can this affect the program execution" point of view, and how much from a "the standard mandates this or that even if the choice is not observable" point of view. < 1409673911 714347 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :s/in general/in my opinion/ < 1409673928 167732 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :fizzie: it's not only that < 1409673953 399258 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :part of this is that volatile was more important back when programs actually used it to access hardware registers or even mis-used it for thread safety < 1409673982 565480 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :C11 5.1.2.3p4 and p6 are probably the most relevant ones for the definition of volatile. < 1409673996 974991 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :these days good programs shouldn't do that, and in particular volatile doesn't even work reliably for anything thread-related, so it's dangerous to use for that, < 1409674021 483250 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :but if you really need to write signal handlers, then you DO want to use volatile probably, so it's the most important _practical_ application of volatile. < 1409674059 538544 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :does that make sense> < 1409674061 498283 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :? < 1409674086 787832 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :It makes sense, but it's starting to sound more of an "intent of the standard" argument than "logical consequence of the standard" one. < 1409674128 52564 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :fizzie: I guess the standard says that this is a volatile object, and accesses to it cannot be omitted. gcc's developers will say that not only can conforming programs not observe the value; it can also be immediately overwritten by subsequent code (unlike the case where you have a standalone 'volatile int i' declaration) and that justifies them optimizing it away. < 1409674133 214335 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :I don't know. < 1409674145 649805 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :the problem with volatile is that due to history it's too much ingrained to the type system, so the C++ standard has to deal with possibly volatile-qualified variables all the time where they define stuff about types and templates and overloads and stuff. < 1409674155 974703 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Now you've switched languages too. < 1409674183 7990 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :For the record, 5.1.2.3p4 and p6: "In the abstract machine, all expressions are evaluated as specified by the semantics. An actual implementation need not [do some stuff if] no needed side effects are produced (including any caused by -- accessing a volatile object)." "The least requirements on a conforming implementation are: - Accesses to volatile objects are evaluated strictly according to ... < 1409674189 47973 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :... the rules of the abstract machine. -- This is the observable behavior of the program." < 1409674196 683985 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :ideally we should just get rid of volatile and add some library feature (macro or template stuff) for signal handler synchronization, which could have a much narrower definition. < 1409674203 996869 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :yes I have. < 1409674225 894250 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :fizzie: they won't optimize away the volatile int foo; assignments because that's apparently an idiom for ensuring that certain values can be found on the stack. < 1409674234 461593 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :int-e: They can also lean on the "what constitutes an access to an object that has volatile-qualified type is implementation-defined" rule, which made GCC's own documentation relevant. < 1409674244 730421 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :it's there in the C standard too but that doesn't deal as much with types. like, it doesn't have to choose a functoin from an overload set, or divine template parameters. < 1409674252 432979 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :fizzie: nice one. < 1409674272 471871 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :ohai int-e < 1409674304 461744 :conehead!~conehead@unaffiliated/conehead JOIN :#esoteric < 1409674370 884526 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :int-e: And anyway technically the lifetime of a compound literal is exactly the same as the local variable. Of course you can still say that since it did not have its address taken, that's irrelevant. And then it goes round again back to your implementation about what the "strictly according to the rules" text really means. < 1409674373 233815 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :also, given that volatile should occurr so rarely these days, I think it's possible that gcc not only doesn't optimize it well, but deliberately keeps it unoptimized some of the time so it doesn't break old broken programs that misuse it for threads communication < 1409674419 994953 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :b_jonas: Incidentally, there's a C11 defect report about volatile sig_atomic_t in signal handlers that has actually resulted in a proposed TC change: http://www.open-std.org/jtc1/sc22/wg14/www/docs/dr_462.htm < 1409674429 548193 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :(Away for a while.) < 1409674446 36956 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :but of course, C++ could also be just buggy. < 1409674472 319998 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :it's a really good compiler and I like it very much, but it's still not perfect. < 1409674481 591167 :CManahl!cf1cf972@gateway/web/cgi-irc/kiwiirc.com/ip.207.28.249.114 PRIVMSG #esoteric :I'm getting really annoyed what am I doing wrong why does reduce(lambda x,y:x.append(float(ord(y))),'hellothere',[]) < 1409674482 790478 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :I even have a bug report somewhere. < 1409674484 856351 :CManahl!cf1cf972@gateway/web/cgi-irc/kiwiirc.com/ip.207.28.249.114 PRIVMSG #esoteric :why isn't that working < 1409674485 11716 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :I once used volatile on a member of a structure in order to try to avoid optimization of some floating point arithmetic; I don't know if it would help or if it is necessary actually, though < 1409674487 971158 :CManahl!cf1cf972@gateway/web/cgi-irc/kiwiirc.com/ip.207.28.249.114 PRIVMSG #esoteric :am I retarded or something < 1409674494 424284 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :CManahl: what language is that? < 1409674498 433223 :CManahl!cf1cf972@gateway/web/cgi-irc/kiwiirc.com/ip.207.28.249.114 PRIVMSG #esoteric :python < 1409674499 461989 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :oh, python? < 1409674500 741790 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :right < 1409674501 749210 :CManahl!cf1cf972@gateway/web/cgi-irc/kiwiirc.com/ip.207.28.249.114 PRIVMSG #esoteric :screw it I'll just use list < 1409674504 660525 :CManahl!cf1cf972@gateway/web/cgi-irc/kiwiirc.com/ip.207.28.249.114 PRIVMSG #esoteric :why wouldn't i < 1409674526 595918 :DootBot!~cinch@5ED55308.cm-7-6b.dynamic.ziggo.nl JOIN :#esoteric < 1409674526 751320 :DootBot!~cinch@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :DOOT DOOT! < 1409674527 266052 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :um, what version of python? < 1409674543 855885 :CManahl!cf1cf972@gateway/web/cgi-irc/kiwiirc.com/ip.207.28.249.114 PRIVMSG #esoteric :2.7.? < 1409674553 80931 :CManahl!cf1cf972@gateway/web/cgi-irc/kiwiirc.com/ip.207.28.249.114 PRIVMSG #esoteric :I'm fine. < 1409674601 524875 :Lymia!~fujoshi@tccd250-2.tccd.edu JOIN :#esoteric < 1409674601 680313 :Lymia!~fujoshi@tccd250-2.tccd.edu QUIT :Changing host < 1409674601 680447 :Lymia!~fujoshi@inportb/loli/cirno-chan JOIN :#esoteric < 1409674692 359909 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :CManahl: append mutates in place and returns None, so you should foreach it, not reduce it < 1409674708 471927 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :CManahl: it doesn't return a new list, it modifies the existing list < 1409674718 17250 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :so reduce will try to append to None the second time < 1409674751 375926 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :CManahl: try eg. this: reduce(lambda x,y:x+[float(ord(y))],'hellothere',[]) < 1409674762 694259 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :(but that has to copy the list each time) < 1409674808 204595 :TieSoul!~TieSoul@5ED55308.cm-7-6b.dynamic.ziggo.nl NICK :TieSoul-HomeWork < 1409674846 246492 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :reduce(lambda x,y: x.append(float(ord(y))) or x,'hellothere',[]) does the trick < 1409674849 710865 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :Would use of volatile also be useful (inside of #if blocks) to cause page faults, segmentation faults, hardware access, self-modifying code, etc? < 1409674873 61818 :CManahl!cf1cf972@gateway/web/cgi-irc/kiwiirc.com/ip.207.28.249.114 PRIVMSG #esoteric :arright cool < 1409674878 507461 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :zzo38: I don't really know. Maybe, but in that case you have an actual address. Maybe not. < 1409674897 550320 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :(python has no comma operator; using 'or' instead feels wrong) < 1409674921 599466 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :zzo38: you mean like saying (volatile char){1} = *(char *)someaddress; to cause a pagefault if someaddress is invalid? < 1409674926 479659 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :I really don't know < 1409674946 575411 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :b_jonas: Yes, that would be an example of what I meant < 1409674965 486467 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :zzo38: unfortunately that's just undefined behaviour; anything is allowed to happen < 1409674979 441021 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :zzo38: I'm sure you could use a volatile asm block to do any of those, < 1409674994 147493 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :(well of course hardware access can be complicated because of other factors) < 1409674997 216707 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :int-e: But I said, if you use the proper #if blocks < 1409675000 263132 :CManahl!cf1cf972@gateway/web/cgi-irc/kiwiirc.com/ip.207.28.249.114 PRIVMSG #esoteric :hehehe < 1409675018 653970 :CManahl!cf1cf972@gateway/web/cgi-irc/kiwiirc.com/ip.207.28.249.114 PRIVMSG #esoteric :I ran 99 bottles of beer with my program and the count just -happened- to jump from 90 to around 450 so the program ran for quite a while < 1409675035 11268 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :and of course for self-modifying code you definitely need some asm block or external assembly source or direct machine code writing anyway. < 1409675037 527962 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :I think I have also seen SDL programs that use volatile for variables that are accessed by multiple threads (the audio thread and the main thread) < 1409675081 673339 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :zzo38: yes, there exist such misuses, but most of those are wrong and could break in the future, unless they just combine volatile with something that actually helps. < 1409675108 111131 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :the common wisdom is that using volatile for thread synchronization is almost always wrong. < 1409675212 875515 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :it just happens because people wanted multithreading to work, even if it's not correct, before the proper support from compiler and libraries existed. < 1409675246 511787 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :I think SDL has its own commands for thread synchronization, although I wasn't meaning synchronization but simply to ensure a variable is accessible to the audio thread. < 1409675331 464899 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :I suppose it can fail if the threads do not share memory, but I think SDL 1.x requires it anyways since other things would stop working if it didn't < 1409675393 556808 :not^v!~notnot^v@2601:4:4500:e15:adfa:b318:12c2:ac65 JOIN :#esoteric < 1409675454 374308 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :Are threads supposed to share global variables? < 1409675539 447683 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :zzo38: yes (for posix/c11/c++11-like threads), unless those variables are declared thread-local < 1409675540 41013 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :CManahl: x.append(...) does not return the new value, that's why. But reduce + append seems like a really weird thing to do, esp. given list comprehensions. < 1409675552 387831 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :zzo38: note that errno is a macro for a thread-local variable < 1409675596 973321 :CManahl!cf1cf972@gateway/web/cgi-irc/kiwiirc.com/ip.207.28.249.114 PRIVMSG #esoteric :Yeah, Fizzie, I'm just tired. All I wanted to do was make a list of the characters, I forgot about the builtin list() i dont know what I was doing < 1409675640 354314 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :http://sprunge.us/fVTg is what I meant.. < 1409675669 157859 :CManahl!cf1cf972@gateway/web/cgi-irc/kiwiirc.com/ip.207.28.249.114 PRIVMSG #esoteric :Oh, that. again... tired < 1409675691 37310 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :CManahl: you could use map for this: map(lambda x:float(ord(x)),"hello") < 1409675693 251308 :CManahl!cf1cf972@gateway/web/cgi-irc/kiwiirc.com/ip.207.28.249.114 PRIVMSG #esoteric :I ended up using map(lambda x: ord(x), self.value) < 1409675695 111384 :CManahl!cf1cf972@gateway/web/cgi-irc/kiwiirc.com/ip.207.28.249.114 PRIVMSG #esoteric :yeah < 1409675700 217213 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :yes that < 1409675707 501940 :CManahl!cf1cf972@gateway/web/cgi-irc/kiwiirc.com/ip.207.28.249.114 PRIVMSG #esoteric :with a float, I didn't forget that < 1409675707 702154 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :or list comprehension syntax, or a for loop < 1409676108 878855 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :Do any monad tutorials start with list comprehensions and then fmap and return and join? < 1409676280 317007 :newsham!~chat@udp217044uds.hawaiiantel.net PRIVMSG #esoteric :using a list comprehension for that is more idiomatic in python < 1409676286 304415 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :why? are list brackets the best tasting burrito tortilla? < 1409676291 779813 :newsham!~chat@udp217044uds.hawaiiantel.net PRIVMSG #esoteric :[ord(x) for x in self.value] < 1409676314 829621 :newsham!~chat@udp217044uds.hawaiiantel.net PRIVMSG #esoteric :if you wanna use ord you can just map(ord, self.value) < 1409676377 356439 :CManahl!cf1cf972@gateway/web/cgi-irc/kiwiirc.com/ip.207.28.249.114 QUIT :Quit: http://www.kiwiirc.com/ - A hand crafted IRC client < 1409676441 464920 :newsham!~chat@udp217044uds.hawaiiantel.net PRIVMSG #esoteric :s/wanna use ord/wanna use map/ < 1409676441 620490 :DootBot!~cinch@5ED55308.cm-7-6b.dynamic.ziggo.nl PRIVMSG #esoteric :newsham: newsham actually meant: if you wanna use map you can just map(ord, self.value) < 1409676450 515554 :newsham!~chat@udp217044uds.hawaiiantel.net PRIVMSG #esoteric :indeed < 1409676454 946479 :CManahl!cf1cf972@gateway/web/cgi-irc/kiwiirc.com/ip.207.28.249.114 JOIN :#esoteric < 1409676460 288362 :newsham!~chat@udp217044uds.hawaiiantel.net PRIVMSG #esoteric :i'm just playing devel's advocate < 1409676505 787680 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :newsham: but he needs float too. how do you add that to this/ < 1409676524 431869 :newsham!~chat@udp217044uds.hawaiiantel.net PRIVMSG #esoteric :map with lambda, or list comprehension < 1409676533 552229 :newsham!~chat@udp217044uds.hawaiiantel.net PRIVMSG #esoteric :[float(ord(x)) for x in self.value] < 1409676669 136008 :newsham!~chat@udp217044uds.hawaiiantel.net PRIVMSG #esoteric :or multiple maps, or define composition function < 1409676681 371655 :newsham!~chat@udp217044uds.hawaiiantel.net PRIVMSG #esoteric :map(float, map(ord, self.value)) < 1409676689 456963 :newsham!~chat@udp217044uds.hawaiiantel.net PRIVMSG #esoteric :map(compose(float, ord), self.value) < 1409676703 634453 :newsham!~chat@udp217044uds.hawaiiantel.net PRIVMSG #esoteric :list comprehension is the idiomatic way < 1409676713 738284 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :ok < 1409676750 102562 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover QUIT :Read error: Connection reset by peer < 1409676767 552379 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover JOIN :#esoteric < 1409676816 593589 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :(now I could ask how you'd define compose, whether it would be a function with the two composed functions captured, or an object with the two composed functions as member variables, but that would be just picking on the details) < 1409676820 712259 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :Taneb: How'd you feel about something like http://codepad.org/rMDtG2Pi < 1409676868 576835 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :mroman_: is that like ? < 1409676872 813132 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :no < 1409676875 947496 :CManahl!cf1cf972@gateway/web/cgi-irc/kiwiirc.com/ip.207.28.249.114 QUIT :Quit: http://www.kiwiirc.com/ - A hand crafted IRC client < 1409676880 667429 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :It's just "ignore non BF characters" < 1409676885 419953 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :sure < 1409676897 27636 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :the # lines are comments though < 1409676904 23110 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :but the <<++ is a bit suspicious < 1409676912 898766 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :since "error-on-left" won the poll it should be the default behaviour < 1409676919 670279 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :I disagree to some extent with # comments < 1409676930 687640 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :hm < 1409676935 659921 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :that should've been /bin/bf :( < 1409676936 377937 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :btw, isn't there a similar question about what happens when you decrement a cell under zero or increment it above 255 ? < 1409676951 252089 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :b_jonas: the poll says "wrap around" < 1409676961 568216 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :hmm < 1409676962 194345 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :but of course you can add #NO_CELL_WRAP_AROUND < 1409676975 480520 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :uh, ok < 1409677033 661469 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :Taneb: elaborate? @disagree < 1409677106 482805 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :Well, it's actually contrary to the brainfuck specification < 1409677174 616370 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :what brainfuck specification? < 1409677186 450089 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :the original from urban mueller? < 1409677220 179593 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :well < 1409677234 660157 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :as far as that specification is concerned, #NO_CELL_WRAP_AROUND is a comment < 1409677240 735964 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :since it contains no brainfuck character < 1409677311 965179 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :] < 1409677523 963771 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :Maybe you should use SQL based polls next time < 1409678280 740743 :impomatic_!~digital_w@81.174.174.142 JOIN :#esoteric < 1409678566 714117 :mroman_!~roman2@fmnssun.ibone.ch PRIVMSG #esoteric :zzo38: ?? < 1409678857 777265 :newsham!~chat@udp217044uds.hawaiiantel.net PRIVMSG #esoteric :bjonas: function for compose. but if you did go with object you could use an operator for it < 1409678917 780317 :newsham!~chat@udp217044uds.hawaiiantel.net PRIVMSG #esoteric :i almost never use a compose function in python though.. its just so heavy weight to use compared to just writing out the composition < 1409678927 361594 :newsham!~chat@udp217044uds.hawaiiantel.net PRIVMSG #esoteric :syntax molds me < 1409679268 1297 :drdanmaku!uid17782@gateway/web/irccloud.com/x-mzbnjkcqfjvlrsrk JOIN :#esoteric < 1409679463 284679 :TieSoul-HomeWork!~TieSoul@5ED55308.cm-7-6b.dynamic.ziggo.nl NICK :TieSoul < 1409679781 378659 :heroux!sandroco@50708355.static.ziggozakelijk.nl QUIT :Ping timeout: 260 seconds < 1409679892 106456 :heroux!sandroco@50708355.static.ziggozakelijk.nl JOIN :#esoteric < 1409679934 551822 :newsham!~chat@udp217044uds.hawaiiantel.net PRIVMSG #esoteric :https://www.ibtimes.co.uk/us-cyber-spy-killed-himself-following-fbi-investigation-1463476 < 1409680278 39118 :tromp_!~tromp@rtc35-154.rentec.com QUIT :Remote host closed the connection < 1409680303 927180 :tromp_!~tromp@rtc35-154.rentec.com JOIN :#esoteric < 1409680737 239656 :newsham!~chat@udp217044uds.hawaiiantel.net PRIVMSG #esoteric :Whiskey Tango Foxtrot http://nationalreport.net/small-florida-town-signs-police-privatization-deal-walmart/ < 1409681762 488088 :prooftechnique!~NihilistD@65-183-137-193-dhcp.burlingtontelecom.net QUIT :Ping timeout: 245 seconds < 1409681817 510943 :Sprocklem!~sprocklem@unaffiliated/sprocklem JOIN :#esoteric < 1409681988 141155 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :newsham: sure < 1409682037 238107 :newsham!~chat@udp217044uds.hawaiiantel.net PRIVMSG #esoteric :crap, sorry guys, those were meant for #h-b, not #esoteric < 1409682622 508545 :Sprocklem!~sprocklem@unaffiliated/sprocklem QUIT :Ping timeout: 252 seconds < 1409682649 377847 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :mroman_: Do you hate SQL based polls so much? < 1409682669 566458 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover QUIT :Ping timeout: 268 seconds < 1409683131 4574 :maurer!~maurer@MIMUNG.ECE.CMU.EDU PRIVMSG #esoteric :newsham: I assume nationalreport is a parody site? < 1409683343 681505 :newsham!~chat@udp217044uds.hawaiiantel.net PRIVMSG #esoteric :oops, looks like it.. i didnt notice that.. thank you < 1409683714 950910 :Sprocklem!~sprocklem@unaffiliated/sprocklem JOIN :#esoteric < 1409683756 978756 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Taneb: your evil twin nateb is in #haskell hth < 1409683779 986434 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :First /u/taneq, now nateb!? < 1409683785 636224 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :I have so many evil twins < 1409683848 742693 :J_Arcane!~JArcane@dsl-trebrasgw2-54f959-138.dhcp.inet.fi PRIVMSG #esoteric :The fruits of an evening's pedantry, in which I use Racket to disprove an assertion on QI: http://pasterack.org/pastes/77970 < 1409684021 777333 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :...why am I helping nateb < 1409684058 977781 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :fruits < 1409684060 442436 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :yay < 1409684452 970350 :Sprocklem!~sprocklem@unaffiliated/sprocklem QUIT :Ping timeout: 240 seconds < 1409684510 496624 :Sprocklem!~sprocklem@unaffiliated/sprocklem JOIN :#esoteric < 1409684564 946235 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover JOIN :#esoteric < 1409685265 98379 :zzo38!~zzo38@24-207-51-179.eastlink.ca PRIVMSG #esoteric :So now you also have to make them list which one don't contain duplicates letters < 1409686244 993655 :AxelBob!~Android@2E6BB5B1.catv.pool.telekom.hu JOIN :#esoteric < 1409686490 324272 :zzo38!~zzo38@24-207-51-179.eastlink.ca QUIT :Remote host closed the connection < 1409686563 493700 :J_Arcane!~JArcane@dsl-trebrasgw2-54f959-138.dhcp.inet.fi PRIVMSG #esoteric :Actually I've been given a different challenge: run the same code for Finnish. < 1409686693 506495 :AxelBob!~Android@2E6BB5B1.catv.pool.telekom.hu QUIT :Quit: -a- Android IRC 2.1.15 < 1409687022 484299 :Lymia!~fujoshi@inportb/loli/cirno-chan QUIT :Ping timeout: 252 seconds < 1409687196 219568 :AnotherTest!~turingcom@d51A4287C.access.telenet.be QUIT :Ping timeout: 260 seconds < 1409687432 473950 :Sprocklem!~sprocklem@unaffiliated/sprocklem QUIT :Ping timeout: 276 seconds < 1409688317 640534 :TieSoul!~TieSoul@5ED55308.cm-7-6b.dynamic.ziggo.nl QUIT :Ping timeout: 245 seconds < 1409688617 996499 :DootBot!~cinch@5ED55308.cm-7-6b.dynamic.ziggo.nl QUIT :Ping timeout: 245 seconds < 1409688740 291185 :not^v!~notnot^v@2601:4:4500:e15:adfa:b318:12c2:ac65 QUIT :Quit: http://i.imgur.com/Akc6r.gif < 1409689246 608119 :TieSoul!~TieSoul@5ED55308.cm-7-6b.dynamic.ziggo.nl JOIN :#esoteric < 1409689402 341958 :^v!~notnot^v@c-71-238-153-166.hsd1.mi.comcast.net QUIT :Quit: Leaving < 1409689416 263227 :^v!~notnot^v@c-71-238-153-166.hsd1.mi.comcast.net JOIN :#esoteric < 1409690905 935701 :TieSoul!~TieSoul@5ED55308.cm-7-6b.dynamic.ziggo.nl QUIT :Read error: Connection reset by peer < 1409690937 650867 :TieSoul!~TieSoul@5ED55308.cm-7-6b.dynamic.ziggo.nl JOIN :#esoteric < 1409691084 152495 :doesthiswork!~Adium@2601:7:2480:1e1:223:12ff:fe1b:3213 JOIN :#esoteric < 1409691356 292447 :MDude!~fyrc@c-71-58-118-227.hsd1.pa.comcast.net JOIN :#esoteric < 1409694128 680043 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :J_Arcane: It's almost like the NetHack "words that can be spelled by inventory letters" question, except that allows for two trips through the alphabet, due to upper and lowercase. < 1409694495 779899 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :J_Arcane: There is any number of such Finnish words, FWIW: innostuu (8), hiillos (7), koostuu (7), aallot (6), aiottu (6), ajopuu (6), anottu (6), hiipuu (6), hillot (6), hiottu (6), koottu (6), loppuu (6) are the >=6-letter ones in my /usr/share/dict/finnish, discounting (shorter) inflections of same words. < 1409694509 844195 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :And that's a very non-exhaustive list. < 1409694519 27303 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :what's the question? monotonic words? < 1409694523 971113 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Yes. < 1409694578 914988 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :No strictly increasing words above length 5 in that dictionary, however. < 1409694592 26773 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :(ahjot, fiksu, himot, korsu, kostu, norsu) < 1409694647 591584 :J_Arcane!~JArcane@dsl-trebrasgw2-54f959-138.dhcp.inet.fi PRIVMSG #esoteric :I found a truncated aspell list and ran some numbers on it, but had issues with the utf-8 encoding in my file so I'm not at all certain how accurate the results were, though they were pretty small. < 1409694678 60818 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Which makes me wonder if that was the QI assertion too, since my /usr/share/dict/words has exactly 6 English words that are strictly increasing (abhors, almost, begins, biopsy, chimps, chinos, chintz). < 1409694685 801985 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Did you watch the episode in question? < 1409694745 139405 :J_Arcane!~JArcane@dsl-trebrasgw2-54f959-138.dhcp.inet.fi PRIVMSG #esoteric :Yes. < 1409694777 806018 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Did it allow for repeats? < 1409694789 611310 :J_Arcane!~JArcane@dsl-trebrasgw2-54f959-138.dhcp.inet.fi PRIVMSG #esoteric :It's possible they did mean strictly rather than generally increasing, but they were a bit vague. < 1409694828 749582 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :fizzie: using american-english-insane i find all sorts of words < 1409694838 733722 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :It's likely a larger English wordlist would contain more than 6. < 1409694839 570567 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :but i am dubious on these words' word status < 1409694866 174575 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :My plain "words" (aka plain american-english) also has "Deimos" but I didn't count that. < 1409694873 767290 :J_Arcane!~JArcane@dsl-trebrasgw2-54f959-138.dhcp.inet.fi PRIVMSG #esoteric :I found 37, though I was counting doubles I think. < 1409694903 947609 :J_Arcane!~JArcane@dsl-trebrasgw2-54f959-138.dhcp.inet.fi PRIVMSG #esoteric :Here's the episode, the segment is around the 4min mark: https://www.youtube.com/watch?v=Qtmd1byR8Ps&feature=share < 1409694910 901003 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :29 in 'american-english' if allowing for dups. < 1409694928 827225 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :imo why not allow duplicates < 1409694942 474913 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :billowy is a good word < 1409694946 14100 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :as is beefily < 1409695010 241451 :J_Arcane!~JArcane@dsl-trebrasgw2-54f959-138.dhcp.inet.fi PRIVMSG #esoteric :Indeed. < 1409695025 900915 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :i am less sure about e.g. addeems adelops alloquy begorry belloot chikors deglory dikkops egilops elmmott gimmors < 1409695041 399676 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :i feel like this is some sort of practical joke < 1409695047 755079 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :perhaps played by the dutch < 1409695075 217159 :J_Arcane!~JArcane@dsl-trebrasgw2-54f959-138.dhcp.inet.fi PRIVMSG #esoteric :Yeah, I had to add some special checks to my SLI file because it was full of weird abbreviations and unix software names. < 1409695091 374227 :oerjan!oerjan@sprocket.nvg.ntnu.no JOIN :#esoteric < 1409695091 560278 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :maybe deglory < 1409695094 51982 :J_Arcane!~JArcane@dsl-trebrasgw2-54f959-138.dhcp.inet.fi PRIVMSG #esoteric :Even then the full 544 number is probably slightly inflated by those that slipped the check. < 1409695098 185425 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :hørjan < 1409695108 752848 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :J_Arcane: I only watched that short segment (4-5:30), but in it the host guy claimed 3 instead of 6. < 1409695120 109619 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :"almost", "chintz" and "biopsy", which at least don't contain dups. < 1409695124 249032 :J_Arcane!~JArcane@dsl-trebrasgw2-54f959-138.dhcp.inet.fi PRIVMSG #esoteric :Yeah. < 1409695152 159915 :J_Arcane!~JArcane@dsl-trebrasgw2-54f959-138.dhcp.inet.fi PRIVMSG #esoteric :It's possible the researchers weren't counting doubles and they simply got it confused on air, which happens. < 1409695152 690999 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :shachi < 1409695169 93745 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Admittedly, "chimps" and "chinos" are plurals, which you might discount. And "abhors" is also inflected. < 1409695197 820476 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :But I'm sure you can arrive to any number by sufficiently tweaking the rules. < 1409695235 185477 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :fizzie: speaking of which have you considered altering one letter of your nick to make it into a palindrome < 1409695260 740808 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :No, but it's been suggested on this very channel, if memory serves. < 1409695293 966010 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :2009-02-16.txt:23:49:17: fizzie: did you know your nick has a palindrome in it? < 1409695303 750573 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :i feel like every nick has several palindromes in it < 1409695307 332411 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :[2013-04-20 19:48:25] Incrementing me by one makes me a palindrome. < 1409695322 704059 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :incrizzie < 1409695352 934349 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :shachaf: does incrementing you in hebrew make you a palindrome? < 1409695377 846400 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :"fizzief" is my backup name for all the places where "fizzie" has been taken by some unscrupulous person. < 1409695378 721217 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :a certain group of people refers to this Magic: The Gathering card as "young pizzie": http://gatherer.wizards.com/Pages/Card/Details.aspx?name=young+pyromancer < 1409695389 883232 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :actually i suspect it's spelled "young pizzy" < 1409695416 433797 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :oerjan: no, you'd need to increment me 4 or 5 times or something < 1409695436 951792 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :see https://en.wikipedia.org/wiki/Hebrew_alphabet < 1409695451 474222 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :4 or 5 depending on whether you count final letters < 1409695483 640545 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :the spelling is שחף < 1409695573 996071 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :i was already on that page but i couldn't find the spelling (wikipedia shockingly has no page for Shachaf (name)) < 1409695612 497006 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :also putty shows your previous line as having the time 50:00 :P < 1409695714 782405 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :copies and pastes as 00:05 < 1409695752 179381 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Bidirectional is hard. < 1409695774 656159 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :oerjan: i had just written it out somewhere but i realized it wasn't in this channel < 1409696096 601916 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :ACTION had to cut and paste letters between wikipedia and putty to get them in the same font so he could compare them :P < 1409696106 316162 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :hm i guess i forgot < 1409696118 800698 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :`unidecode שחף < 1409696119 33262 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :​[U+05E9 HEBREW LETTER SHIN] [U+05D7 HEBREW LETTER HET] [U+05E3 HEBREW LETTER FINAL PE] < 1409696176 817739 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :oh < 1409696185 125746 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :it's funny how you forget about that < 1409697025 522080 :Imaginer1!ad113eeb@gateway/web/cgi-irc/kiwiirc.com/ip.173.17.62.235 JOIN :#esoteric < 1409697035 955163 :Imaginer1!ad113eeb@gateway/web/cgi-irc/kiwiirc.com/ip.173.17.62.235 PRIVMSG #esoteric :Today's the day < 1409697042 765255 :Imaginer1!ad113eeb@gateway/web/cgi-irc/kiwiirc.com/ip.173.17.62.235 PRIVMSG #esoteric :I'm doing it < 1409697042 920689 :Imaginer1!ad113eeb@gateway/web/cgi-irc/kiwiirc.com/ip.173.17.62.235 PRIVMSG #esoteric :I'm making a wiki account < 1409697081 89841 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :[wiki] 14[[07Special:Log/newusers14]]4 create10 02 5* 03Imaginer1 5* 10New user account < 1409697104 398387 :Imaginer1!ad113eeb@gateway/web/cgi-irc/kiwiirc.com/ip.173.17.62.235 PRIVMSG #esoteric :It has been done < 1409697210 62850 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :fancy < 1409697325 639874 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :[wiki] 14[[07User:Imaginer114]]4 N10 02http://esolangs.org/w/index.php?oldid=40383 5* 03Imaginer1 5* (+511) 10Created page with "Well, this is my user page. My name is Christian Manahl. I'm 17 years old and I've been quite into coding for a while. Python is the main language I've been using, but I'm al..." < 1409697419 493071 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :[wiki] 14[[07User:Imaginer114]]4 10 02http://esolangs.org/w/index.php?diff=40384&oldid=40383 5* 03Imaginer1 5* (+102) 10 < 1409697612 807172 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :[wiki] 14[[07Cork14]]4 10 02http://esolangs.org/w/index.php?diff=40385&oldid=40381 5* 03Imaginer1 5* (-2) 10 < 1409698501 178768 :mihow!~mihow@108.30.58.169 QUIT :Quit: mihow < 1409698712 26691 :Imaginer1!ad113eeb@gateway/web/cgi-irc/kiwiirc.com/ip.173.17.62.235 QUIT :Quit: http://www.kiwiirc.com/ - A hand crafted IRC client < 1409699661 689035 :Sgeo!~quassel@ool-44c2aebc.dyn.optonline.net JOIN :#esoteric < 1409700133 700302 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover QUIT :Read error: Connection reset by peer < 1409700787 911779 :zzo38!~zzo38@24-207-51-179.eastlink.ca JOIN :#esoteric < 1409700858 312931 :Sgeo!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :https://github.com/Sgeo/racket-optics/commit/161efbbb69ec514cae3182bbb26a92f0a05278af < 1409700861 596498 :Sgeo!~quassel@ool-44c2aebc.dyn.optonline.net PRIVMSG #esoteric :I am making sense, right? < 1409701096 924090 :pikhq!~pikhq@deagol.pikhq.com QUIT :Remote host closed the connection < 1409701177 144357 :pikhq!~pikhq@deagol.pikhq.com JOIN :#esoteric < 1409701548 575107 :Sprocklem!~sprocklem@unaffiliated/sprocklem JOIN :#esoteric