< 1459987504 0 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover PRIVMSG #esoteric :but will you find the forbidden addressing mode < 1459987551 0 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover PRIVMSG #esoteric :(i keep remembering stuff from x86 asm which would be insanely useful and then realising it could never work) < 1459987676 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Of course. < 1459987702 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :there, 0x23 for the checkerboard < 1459987702 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Oh, I looked it up and someone has a 4-instruction solution to Checkerboard. < 1459987711 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :That's much better than what I did. < 1459987717 0 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover PRIVMSG #esoteric :it is interesting how opcodes/addressing modes mean that even assembly is quite high-level < 1459987981 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :I did some funny pipelining :) < 1459987999 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :and I should be able to shave off one more cycle... let's see < 1459988116 0 :nitrix!?@? NICK :horse < 1459988136 0 :horse!?@? NICK :nitrix < 1459988151 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :right :) < 1459988303 0 :lambda-11235!~lambda-11@47-208-113-50.erkacmtk03.res.dyn.suddenlink.net QUIT :Read error: Connection reset by peer < 1459988913 0 :XorSwap!~XorSwap@wnpgmb016qw-ds01-214-177.dynamic.mtsallstream.net QUIT :Ping timeout: 240 seconds < 1459989033 0 :boily!~alexandre@96.127.201.149 PRIVMSG #esoteric :myname: mynamello. I think I prefer ahoily. < 1459989235 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no QUIT :Quit: Nite < 1459989255 0 :XorSwap!~XorSwap@wnpgmb016qw-ds01-214-177.dynamic.mtsallstream.net JOIN :#esoteric < 1459989717 0 :boily!~alexandre@96.127.201.149 PRIVMSG #esoteric :GACK! just took a look at the outside world. weather was restored from months-old backups... < 1459989773 0 :fizzie!?@? PRIVMSG #esoteric :I think the weirdest part about that game was the term "memory depth" in the manual for the addressing modes. < 1459990013 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :oh god, you can jump to odd addresses < 1459990034 0 :fizzie!?@? PRIVMSG #esoteric :I saw that in the manual as well. < 1459990049 0 :fizzie!?@? PRIVMSG #esoteric :But that's not odd from a real-hardware perspective. < 1459990119 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :Here's something interesing < 1459990123 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :*interesting < 1459990136 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :Mapping data structures to control flow concepts, and vice versa < 1459990147 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :Arrays are FOR loops < 1459990159 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :Lazy-evaluated sequences are WHILE loops < 1459990182 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :Tables are conditionals < 1459990189 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :Does this work? < 1459990256 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :(Oh, and nesting data structures is equal to nesting control flow) < 1459990466 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :rdococ: What do you think? < 1459990491 0 :lambda-11235!~lambda-11@47.208.113.50 JOIN :#esoteric < 1459990503 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :hellambda-11235 < 1459990543 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :lambda-11235: I'm figuring out a correspondence between data structures and control flow :) < 1459990671 0 :lambda-11235!~lambda-11@47.208.113.50 PRIVMSG #esoteric :hppavilion[1]: Hello. Have fun with that. I have to do English homework. :( < 1459990677 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :lambda-11235: :( < 1459990746 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :seriously, 4 instructions... wow. I have 6, 5 if I allows the code to loop through nops instead of jumping back to the top... < 1459991231 0 :Guest772715!~severalwo@186-78-203-205.baf.movistar.cl JOIN :#esoteric < 1459991274 0 :Guest772714!~severalwo@186-78-203-205.baf.movistar.cl QUIT :Read error: Connection reset by peer < 1459991522 0 :impomatic!~impomatic@37.152.222.136 PRIVMSG #esoteric :Oh, I missed all the BOX-256 chat :-( < 1459991537 0 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover PRIVMSG #esoteric :impomatic, back my thread register scheme imho < 1459991566 0 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover PRIVMSG #esoteric :otherwise the guy might implement that shitty LODPC instruction < 1459991596 0 :impomatic!~impomatic@37.152.222.136 PRIVMSG #esoteric :What's LODPC? < 1459991634 0 :impomatic!~impomatic@37.152.222.136 PRIVMSG #esoteric :My smallest checkerboard is 6. I've been mostly optimizing for speed though. < 1459991716 0 :impomatic!~impomatic@37.152.222.136 PRIVMSG #esoteric :I have the new Smiley Face record now :-) < 1459991837 0 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover PRIVMSG #esoteric :impomatic, https://www.reddit.com/r/box256/comments/4dfqlm/4_squares_4_threads_0x2e_cycles_using_a_beam/d1r7bi5?context=3 < 1459991906 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :is anybody collecting records without solutions? < 1459991908 0 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover PRIVMSG #esoteric :lets you get thread-specific behaviour at the cost of being an incredibly stupid way of doing so < 1459992047 0 :impomatic!~impomatic@37.152.222.136 PRIVMSG #esoteric :int-e: I checked the reddit and hacker news threads for any records where the solution wasn't posted (for cycles only, no-one apart from me seemed interested in size) < 1459992171 0 :boily!~alexandre@96.127.201.149 PRIVMSG #esoteric :int-e: int-ello. I can't stop binging QC. < 1459992196 0 :impomatic!~impomatic@37.152.222.136 PRIVMSG #esoteric :Records are blue square 0x7, checkerboard 0x16, four squares 0x7, smiley face 0x2E < 1459992213 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :hi impomatic < 1459992216 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I saw some of your posts. < 1459992228 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :impomatic: thanks < 1459992251 0 :impomatic!~impomatic@37.152.222.136 PRIVMSG #esoteric :shachaf: I use the same nick everywhere :-) < 1459992253 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Are those cycle records or line records? < 1459992254 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :so my 0x22 checkerboard isn't too bad then < 1459992274 0 :impomatic!~impomatic@37.152.222.136 PRIVMSG #esoteric :shachaf: cycle records < 1459992307 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :is anybody trying for single-threaded cycles? < 1459992313 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I was wondering about that. < 1459992320 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Threads are TG. < 1459992332 0 :impomatic!~impomatic@37.152.222.136 PRIVMSG #esoteric :int-e: that's pretty good. Only a couple of people have claimed less than 0x22. < 1459992371 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :(singlethreaded I have 0x5E for the blue square, 0x1FC for checkerboard; multi-threaded it's 0x11 and 0x22 for now) < 1459992382 0 :impomatic!~impomatic@37.152.222.136 PRIVMSG #esoteric :int-e: I wondered about collating single-thread cycle results, but everyone would just unroll the loops and fill all 63 available instructions. < 1459992384 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :I should sleep... < 1459992410 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :you can use 64... < 1459992433 0 :prooftechnique!~prooftech@2a03:b0c0:0:1010::ca:e001 PRIVMSG #esoteric :What am I looking at, here? < 1459992435 0 :impomatic!~impomatic@37.152.222.136 PRIVMSG #esoteric :Only 64 if the last instruction doesn't use the 4th byte. < 1459992440 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :(if the last one is short) < 1459992473 0 :prooftechnique!~prooftech@2a03:b0c0:0:1010::ca:e001 PRIVMSG #esoteric :"You must use a browser with WebGL. Consider downloading Firefox" > Running Firefox :| < 1459992538 0 :impomatic!~impomatic@37.152.222.136 PRIVMSG #esoteric :There's a Windows version of BOX256 < 1459992542 0 :prooftechnique!~prooftech@2a03:b0c0:0:1010::ca:e001 PRIVMSG #esoteric :Is one of my about:configs wrong? < 1459992725 0 :prooftechnique!~prooftech@2a03:b0c0:0:1010::ca:e001 PRIVMSG #esoteric :Works in 0/3 of my browsers. :( < 1459992778 0 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover PRIVMSG #esoteric :what's your graphics hardware like? < 1459992798 0 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover PRIVMSG #esoteric :if it's intelgrated that's probably why, especially if you're on linux < 1459992811 0 :prooftechnique!~prooftech@2a03:b0c0:0:1010::ca:e001 PRIVMSG #esoteric :Radeon R9 < 1459992849 0 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover PRIVMSG #esoteric :`version prooftechnique < 1459992849 0 :prooftechnique!~prooftech@2a03:b0c0:0:1010::ca:e001 PRIVMSG #esoteric :Oh, now it's doing something < 1459992855 0 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover PRIVMSG #esoteric :fuck < 1459992859 0 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: version: not found < 1459992871 0 :prooftechnique!~prooftech@2a03:b0c0:0:1010::ca:e001 PRIVMSG #esoteric :Hanging Firefox, mainly, but maybe that'll figure itself out < 1459992877 0 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover PRIVMSG #esoteric :why do these shitty clients not have helpful /VERSIONs like xchat < 1459992905 0 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover PRIVMSG #esoteric :lol i forgot about what i set mine to < 1459992963 0 :prooftechnique!~prooftech@2a03:b0c0:0:1010::ca:e001 PRIVMSG #esoteric :Mine may be set weird because I'm connecting through ZNC < 1459992993 0 :prooftechnique!~prooftech@2a03:b0c0:0:1010::ca:e001 PRIVMSG #esoteric :Or weechat sets something dumb :v < 1459993104 0 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover PRIVMSG #esoteric :-prooftechnique- VERSION WeeChat 1.4 (Mar 10 2016) via ZNC 1.6.2 - http://znc.in < 1459993121 0 :Phantom__Hoover!~phantomho@unaffiliated/phantom-hoover JOIN :#esoteric < 1459993126 0 :prooftechnique!~prooftech@2a03:b0c0:0:1010::ca:e001 PRIVMSG #esoteric :Oh, neat < 1459993204 0 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover PRIVMSG #esoteric :huh i can't get rid of the actual legitimate /VERSION < 1459993208 0 :Phantom__Hoover!~phantomho@unaffiliated/phantom-hoover QUIT :Client Quit < 1459993324 0 :Guest772715!~severalwo@186-78-203-205.baf.movistar.cl QUIT :Ping timeout: 260 seconds < 1459993352 0 :catern!~catern@catern.com PRIVMSG #esoteric :Hi #esoteric < 1459993366 0 :prooftechnique!~prooftech@2a03:b0c0:0:1010::ca:e001 PRIVMSG #esoteric :catello! < 1459993379 0 :catern!~catern@catern.com PRIVMSG #esoteric :Are there any esoteric languages that don't parse to a tree, but rather parse to a DAG or a cyclic graph? < 1459993407 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :You can think of any lambda calculus expression as parsing to a directed graph. < 1459993426 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Do you mean that it's observable from within the language? < 1459993537 0 :catern!~catern@catern.com PRIVMSG #esoteric :Oh, well, I'm just asking because during an intro talk on compilers (that I am currently sitting in), the presenter said "Languages usually parse to a tree" < 1459993566 0 :catern!~catern@catern.com PRIVMSG #esoteric :I was wondering if there was any way one could justify making that "usually" qualification < 1459993574 0 :catern!~catern@catern.com PRIVMSG #esoteric :(instead of "always") < 1459993614 0 :catern!~catern@catern.com PRIVMSG #esoteric :And I thought #esoteric might be helpful < 1459993655 0 :prooftechnique!~prooftech@2a03:b0c0:0:1010::ca:e001 PRIVMSG #esoteric :Maybe this? https://en.wikipedia.org/wiki/Abstract_semantic_graph < 1459993665 0 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover PRIVMSG #esoteric :shachaf, what, because you merge identical subexpressions? < 1459993670 0 :prooftechnique!~prooftech@2a03:b0c0:0:1010::ca:e001 PRIVMSG #esoteric :Looks like a compiler could use it for CSE and whatnot < 1459993683 0 :pikhq!~pikhq@2601:647:4b00:63aa::f63 PRIVMSG #esoteric :I don't think Befunge parses into a tree typically. < 1459993692 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Phantom_Hoover: I mean that every use of a variable has an edge pointing to the lambda introducing it. < 1459993692 0 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover PRIVMSG #esoteric :befunge doesn't parse < 1459993701 0 :pikhq!~pikhq@2601:647:4b00:63aa::f63 PRIVMSG #esoteric :At least, I don't see any sane way of representing a Befunge program as a tree in any meaningful sense. :) < 1459993721 0 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover PRIVMSG #esoteric :shachaf, 'use' in that context sounds like it's still a directed tree < 1459993747 0 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover PRIVMSG #esoteric :there's not even such a thing as a syntactically illegal befunge program, is there? < 1459993769 0 :pikhq!~pikhq@2601:647:4b00:63aa::f63 PRIVMSG #esoteric :Well, there is in Befunge 93 at least. < 1459993774 0 :pikhq!~pikhq@2601:647:4b00:63aa::f63 PRIVMSG #esoteric ::P < 1459993826 0 :Guest772715!~severalwo@186-78-203-205.baf.movistar.cl JOIN :#esoteric < 1459993860 0 :prooftechnique!~prooftech@2a03:b0c0:0:1010::ca:e001 PRIVMSG #esoteric :catern: Andres Löh actually has a paper on using ASGs for DSLs, which might be of interest < 1459993869 0 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover PRIVMSG #esoteric :pikhq, how? < 1459993881 0 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover PRIVMSG #esoteric :as specified i think befunge programs are just a grid of 'commands' < 1459993882 0 :pikhq!~pikhq@2601:647:4b00:63aa::f63 PRIVMSG #esoteric :Phantom_Hoover: Being larger than 80x25 < 1459993893 0 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover PRIVMSG #esoteric ::/ < 1459993943 0 :FireFly!~firefly@firefly.xen.prgmr.com PRIVMSG #esoteric :Bit of a cop-out, heh < 1459994352 0 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover QUIT :Remote host closed the connection < 1459994517 0 :fizzie!?@? PRIVMSG #esoteric :Arguably, also files containing form feeds in {Une,Be}funge-98, and files containing newlines in Unefunge-98. (Although strictly speaking the spec does explicitly allow multi-line Unefunge-98 programs, the lines are just concatenated. And it doesn't specify what form feed does outside of Trefunge-98, so you could say by omission it's just a regular character. But still.) < 1459994556 0 :fizzie!?@? PRIVMSG #esoteric :Oh, and the Funge-98 spec says that Befunge-93 only allows "printable ASCII characters and the end-of-line controls". < 1459995089 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :catern: I proposed that a while ago < 1459995155 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :fizzie: A fungeoid... based on Numerical Computing < 1459995171 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :fizzie: So you can calculate the product of two programs < 1459995196 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :(For individual instructions, + is parallel composition, * is sequential composition) < 1459995235 0 :lleu!~gnomebad@unaffiliated/lleu QUIT :Quit: That's what she said < 1459996478 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :Pigeonhole principal time! < 1459996545 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :If you have a multigroup (S, [a], [b], [c]), then there are infinitely many possible equations. < 1459996595 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :*for any number of variables n < 1459996612 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :However, there are only (#S)^(n+2) possible n-ary functions < 1459996654 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :I conclude that there is more than one way to write some equations < 1459996668 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :And I conjecture that there are infinitely many ways to write any given equation < 1459996677 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :Therefor, I conclude, Algebra is a silly field < 1459996695 0 :prooftechnique!~prooftech@2a03:b0c0:0:1010::ca:e001 PRIVMSG #esoteric :You take that filth back, you monster < 1459996709 0 :Guest772714!~severalwo@186-78-203-205.baf.movistar.cl JOIN :#esoteric < 1459996718 0 :Guest772715!~severalwo@186-78-203-205.baf.movistar.cl QUIT :Read error: No route to host < 1459996719 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :prooftechnique: Too late, already published. < 1459996739 0 :prooftechnique!~prooftech@2a03:b0c0:0:1010::ca:e001 PRIVMSG #esoteric :I counter with "Up To Isomorphism" < 1459996754 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :prooftechnique: Correct. < 1459996755 0 :prooftechnique!~prooftech@2a03:b0c0:0:1010::ca:e001 PRIVMSG #esoteric :(aka, the algebraist's trump) < 1459996757 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :prooftechnique: Still funny. < 1459996761 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :s/funny/silly/ < 1459996793 0 :boily!~alexandre@96.127.201.149 PRIVMSG #esoteric :hppavilion[1]: principle, not principal :P < 1459996806 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :boily: FUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU < 1459996811 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :F7U12 < 1459996819 0 :prooftechnique!~prooftech@2a03:b0c0:0:1010::ca:e001 PRIVMSG #esoteric :DOES NOT PASS PEER REVIEW. GRANT DENIED < 1459996833 0 :prooftechnique!~prooftech@2a03:b0c0:0:1010::ca:e001 PRIVMSG #esoteric :Algebra lives to fight another day < 1459996861 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :prooftechnique: Didn't need a grant. < 1459996873 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :prooftechnique: Do you understand tensors? < 1459996909 0 :prooftechnique!~prooftech@2a03:b0c0:0:1010::ca:e001 PRIVMSG #esoteric :Not in a way that I could talk at length about them without some reference material to back me up < 1459996950 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :prooftechnique: Do you understand them enough to transfer some understanding to someone who doesn't < 1459996950 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :? < 1459996965 0 :prooftechnique!~prooftech@2a03:b0c0:0:1010::ca:e001 PRIVMSG #esoteric :Depends what you need to understand, I suppose. I could try < 1459996997 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :prooftechnique: I don't understand them /at all/ < 1459997002 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :I understand what a vector space is < 1459997016 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :But I don't get tensors < 1459997050 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :prooftechnique: What I want to do is make a tensor programming language < 1459997061 0 :prooftechnique!~prooftech@2a03:b0c0:0:1010::ca:e001 PRIVMSG #esoteric :Oh, jeez. < 1459997063 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :Not a language which uses tensors like an array programming language uses arrays < 1459997078 0 :prooftechnique!~prooftech@2a03:b0c0:0:1010::ca:e001 PRIVMSG #esoteric :And what does that look like, in your mind? < 1459997083 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :prooftechnique: I have no idea < 1459997090 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :prooftechnique: I want to make a language for which the /programs/ are... tensory? < 1459997193 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :prooftechnique: I don't necessarily want to do it right now < 1459997205 0 :prooftechnique!~prooftech@2a03:b0c0:0:1010::ca:e001 PRIVMSG #esoteric :What property of tensors would you want to apply to a program? < 1459997217 0 :prooftechnique!~prooftech@2a03:b0c0:0:1010::ca:e001 PRIVMSG #esoteric :Do you want the tensor product of programs? < 1459997246 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :prooftechnique: Yes, basically < 1459997266 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :prooftechnique: I want to be have a language for which the programs form a tensor (wiki uses that phrase, so I think it works) < 1459997289 0 :boily!~alexandre@96.127.201.149 QUIT :Quit: MOVIE CHICKEN < 1459997303 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :Unfortunately, I think I need to go < 1459997309 0 :prooftechnique!~prooftech@2a03:b0c0:0:1010::ca:e001 PRIVMSG #esoteric :Well, I'd start by figuring out what that means. Maybe figure out what the Cartesian product of programs in a set language is, or what the space of linear transformations from programs to programs looks like < 1459997346 0 :prooftechnique!~prooftech@2a03:b0c0:0:1010::ca:e001 PRIVMSG #esoteric :Assuming that programs are themselves vector spaces, that is < 1459997784 0 :earendel!~earendel@unaffiliated/earendel QUIT :Quit: earendel < 1459998147 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :Oh finally, I see, the two square problems are badly designed... there's enough space to just draw all pixels explicitly. < 1459999854 0 :Kaynato!~Aedile@cpe-173-88-230-28.neo.res.rr.com JOIN :#esoteric < 1460001074 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :prooftechnique: Well, the cartprod of two programs {a, b, c} and {1, 2, 3} is {(a, 1), (a, 2), (a, 3), (b, 1), (b, 2), (b, 3), (c, 1), (c, 2), (c, 3)} < 1460001092 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :The set is parallel-composed and the tuples are sequential-composesd < 1460001094 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :*composed < 1460001153 0 :earendel!~earendel@unaffiliated/earendel JOIN :#esoteric < 1460001203 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :The programs {a, b, c} and {1, 2, 3} represent set programs, in which instructions are non-blocking < 1460001454 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :prooftechnique: Programs-as-vector-spaces sounds interesting, but I was thinking programs-as-vectors. But programs-as-vector-spaces sounds more interesting < 1460002070 0 :iconmaster!~iconmaste@129.21.122.238 QUIT :Ping timeout: 244 seconds < 1460002213 0 :Guest772714!~severalwo@186-78-203-205.baf.movistar.cl QUIT :Quit: Nettalk6 - www.ntalk.de < 1460002532 0 :Reece`!~nothing@host-92-13-205-245.as43234.net QUIT :Quit: Leaving < 1460002746 0 :Reece`!~nothing@host-92-13-205-245.as43234.net JOIN :#esoteric < 1460003877 0 :Reece`!~nothing@host-92-13-205-245.as43234.net QUIT :Quit: Leaving < 1460003938 0 :Reece`!~nothing@host-92-13-205-245.as43234.net JOIN :#esoteric < 1460003947 0 :Reece`!~nothing@host-92-13-205-245.as43234.net QUIT :Read error: Connection reset by peer < 1460004007 0 :Reece`!~nothing@host-92-13-205-245.as43234.net JOIN :#esoteric < 1460004583 0 :Reece`!~nothing@host-92-13-205-245.as43234.net QUIT :Quit: Leaving < 1460004648 0 :Reece`!~nothing@host-92-13-205-245.as43234.net JOIN :#esoteric < 1460004796 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net QUIT :Ping timeout: 252 seconds < 1460005533 0 :XorSwap!~XorSwap@wnpgmb016qw-ds01-214-177.dynamic.mtsallstream.net QUIT :Quit: Leaving < 1460005749 0 :lambda-11235!~lambda-11@47.208.113.50 QUIT :Read error: Connection reset by peer < 1460005823 0 :lambda-11235!~lambda-11@47-208-113-50.erkacmtk03.res.dyn.suddenlink.net JOIN :#esoteric < 1460006033 0 :Reece`!~nothing@host-92-13-205-245.as43234.net QUIT :Quit: Alsithyafturttararfunar < 1460006098 0 :Reece`!~nothing@host-92-13-205-245.as43234.net JOIN :#esoteric < 1460006292 0 :Reece`!~nothing@host-92-13-205-245.as43234.net QUIT :Client Quit < 1460006353 0 :Reece`!~nothing@host-92-13-205-245.as43234.net JOIN :#esoteric < 1460006700 0 :Reece`!~nothing@host-92-13-205-245.as43234.net QUIT :Quit: Alsithyafturttararfunar < 1460006809 0 :Reece`!~nothing@host-92-13-205-245.as43234.net JOIN :#esoteric < 1460006844 0 :Reece`!~nothing@host-92-13-205-245.as43234.net QUIT :Client Quit < 1460007140 0 :Reece`!~nothing@host-92-13-205-245.as43234.net JOIN :#esoteric < 1460007606 0 :Reece`!~nothing@host-92-13-205-245.as43234.net QUIT :Quit: Alsithyafturttararfunar < 1460010624 0 :Kaynato!~Aedile@cpe-173-88-230-28.neo.res.rr.com QUIT :Ping timeout: 244 seconds < 1460011198 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net JOIN :#esoteric < 1460011264 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :"Strict superset of perl" < 1460011326 0 :lambda-11235!~lambda-11@47-208-113-50.erkacmtk03.res.dyn.suddenlink.net QUIT :Quit: Bye < 1460011957 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :I want to make a C++ that doesn't suck < 1460011959 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :For personal use < 1460011992 0 :coppro!~scshunt@corn-syrup.csclub.uwaterloo.ca PRIVMSG #esoteric :w < 1460012086 0 :newsham!~chat@udp217044uds.hawaiiantel.net PRIVMSG #esoteric :why not just make ont hat sucks a little bit? < 1460012805 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :newsham: That's probably how it'll come out < 1460012810 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :Currently, I need a new C++ compiler < 1460012837 0 :jaboja!~jaboja@vps.jaboja.pl JOIN :#esoteric < 1460012851 0 :coppro!~scshunt@corn-syrup.csclub.uwaterloo.ca PRIVMSG #esoteric :hppavilion[1]: why? < 1460012857 0 :coppro!~scshunt@corn-syrup.csclub.uwaterloo.ca PRIVMSG #esoteric :what's wrong with the old one? < 1460012880 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :coppro: Well, it's not suitable for operator-heavy development < 1460012892 0 :coppro!~scshunt@corn-syrup.csclub.uwaterloo.ca PRIVMSG #esoteric :why not? < 1460012893 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :coppro: I would like to be able to define new & arbitrarily-named operators at will < 1460012916 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :coppro: So I could have different operators for element-wise multiplication and traditional matrix multiplication < 1460012922 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :* and @ most likely < 1460012926 0 :coppro!~scshunt@corn-syrup.csclub.uwaterloo.ca PRIVMSG #esoteric :s/new C++ compiler/new C++ language/ < 1460012946 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :coppro: No, I also need a new C++ compiler < 1460012951 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :coppro: My current one seems to be corrupted < 1460012965 0 :coppro!~scshunt@corn-syrup.csclub.uwaterloo.ca PRIVMSG #esoteric :w < 1460012971 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :It prints out endless garbage when I try to compile a simple file < 1460013057 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :coppro: I'm thinking of calling the new language C⁂ < 1460013075 0 :coppro!~scshunt@corn-syrup.csclub.uwaterloo.ca PRIVMSG #esoteric :`unidecode ⁂ < 1460013082 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :coppro: Asterism < 1460013099 0 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :​[U+2042 ASTERISM] < 1460013196 0 :lifthrasiir!~lifthrasi@115.68.131.49 PRIVMSG #esoteric :hppavilion[1]: then adopt a character ⁂. http://unicode.org/consortium/adopt-a-character.html < 1460013510 0 :pelegreno!~cinch@107.170.175.57 QUIT :Read error: Connection reset by peer < 1460013595 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :There, got it working < 1460013617 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :Oh... found the issue < 1460013639 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :I had accidentally targetted the compilation of main.cpp to one of its dependencies... xD < 1460013768 0 :pelegreno!~cinch@107.170.175.57 JOIN :#esoteric < 1460013937 0 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net QUIT :Ping timeout: 252 seconds < 1460014910 0 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :[wiki] 14[[07Kantate14]]4 N10 02https://esolangs.org/w/index.php?oldid=46758 5* 03Keymaker 5* (+5598) 10Added my new low-level language based on a simple addition mechanism. < 1460015448 0 :AnotherTest!~turingcom@2a02:1811:d22:cc00:2898:ab4b:e8fd:adc0 JOIN :#esoteric < 1460015522 0 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :[wiki] 14[[07User:Keymaker14]]4 10 02https://esolangs.org/w/index.php?diff=46759&oldid=40487 5* 03Keymaker 5* (+14) 10Added Kantate, some changes. < 1460015881 0 :tromp_!~tromp@ool-18be0bd8.dyn.optonline.net JOIN :#esoteric < 1460016144 0 :tromp_!~tromp@ool-18be0bd8.dyn.optonline.net QUIT :Ping timeout: 246 seconds < 1460017072 0 :J_Arcane!~chatzilla@37-219-192-244.nat.bb.dnainternet.fi QUIT :Ping timeout: 244 seconds < 1460017514 0 :acertain!~acertain@unaffiliated/fread2281 QUIT :Read error: Connection reset by peer < 1460017546 0 :acertain!~acertain@unaffiliated/fread2281 JOIN :#esoteric < 1460017856 0 :Sprocklem!~sprocklem@unaffiliated/sprocklem QUIT :Quit: [ < 1460018255 0 :ais523!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1460018730 0 :hipsterslapfight!sid16984@gateway/web/irccloud.com/x-iliztjtpkgqlpezb PART #esoteric : < 1460018799 0 :mroman!~mroman@160.85.232.58 JOIN :#esoteric < 1460018811 0 :mroman!~mroman@160.85.232.58 PRIVMSG #esoteric :I was always getting shit for my irrational fear of dogs. < 1460018823 0 :mroman!~mroman@160.85.232.58 PRIVMSG #esoteric :Now people are scared of people not wearing bikinis. < 1460018875 0 :mroman!~mroman@160.85.232.58 PRIVMSG #esoteric :I'm pretty certain that getting attacked by a dog severly enough to see a doctor is far more likely than whatever a woman not wearing a bikini is likely to do to me. < 1460018889 0 :mroman!~mroman@160.85.232.58 PRIVMSG #esoteric :@messages-lood < 1460018889 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :boily asked 3d 8h 26m 55s ago: hello? hello? hello? < 1460018902 0 :mroman!~mroman@160.85.232.58 PRIVMSG #esoteric :@tell boily HELLO FROM THE OTHER SIDE.... < 1460018902 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :Consider it noted. < 1460018907 0 :mroman!~mroman@160.85.232.58 PRIVMSG #esoteric :IT MUST HAVE BEEN A THOUSAND TIMES < 1460018930 0 :mroman!~mroman@160.85.232.58 PRIVMSG #esoteric :that last one might be off an inch. < 1460019014 0 :mroman!~mroman@160.85.232.58 PRIVMSG #esoteric :(currently switzerland's top topic is if it's ok for muslims to not shake hands) < 1460019066 0 :mroman!~mroman@160.85.232.58 PRIVMSG #esoteric :(I'm guessing secretly everybody is happy if they don't have to shake a muslims hand but get enraged when a muslim chooses to not shake hands..) < 1460019115 0 :mroman!~mroman@160.85.232.58 PRIVMSG #esoteric :is it "other side" or "outside"? < 1460019180 0 :jaboja!~jaboja@vps.jaboja.pl QUIT :Ping timeout: 268 seconds < 1460019761 0 :Sprocklem!~sprocklem@unaffiliated/sprocklem JOIN :#esoteric < 1460020007 0 :Sprocklem!~sprocklem@unaffiliated/sprocklem QUIT :Client Quit < 1460020028 0 :Sprocklem!~sprocklem@unaffiliated/sprocklem JOIN :#esoteric < 1460020960 0 :jaboja!~jaboja@vps.jaboja.pl JOIN :#esoteric < 1460021073 0 :Frooxius!~Frooxius@194.108.5.201 QUIT :Ping timeout: 244 seconds < 1460022747 0 :sebbu!~sebbu@unaffiliated/sebbu QUIT :Ping timeout: 244 seconds < 1460023119 0 :sebbu!~sebbu@unaffiliated/sebbu JOIN :#esoteric < 1460023552 0 :zadock!~outsider@cthulhu.tuiasi.ro JOIN :#esoteric < 1460024227 0 :zadock!~outsider@cthulhu.tuiasi.ro QUIT :Quit: Leaving < 1460026319 0 :earendel!~earendel@unaffiliated/earendel QUIT :Quit: earendel < 1460027311 0 :Frooxius!~Frooxius@91.219.247.213 JOIN :#esoteric < 1460028361 0 :lleu!~gnomebad@cpc15-croy20-2-0-cust489.croy.cable.virginm.net JOIN :#esoteric < 1460028361 0 :lleu!~gnomebad@cpc15-croy20-2-0-cust489.croy.cable.virginm.net QUIT :Changing host < 1460028361 0 :lleu!~gnomebad@unaffiliated/lleu JOIN :#esoteric < 1460028526 0 :boily!~alexandre@96.127.201.149 JOIN :#esoteric < 1460028974 0 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover JOIN :#esoteric < 1460029794 0 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover QUIT :Remote host closed the connection < 1460029893 0 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover JOIN :#esoteric < 1460030479 0 :boily!~alexandre@96.127.201.149 QUIT :Quit: RESOLVED CHICKEN < 1460032325 0 :J_Arcane!~chatzilla@37-219-93-73.nat.bb.dnainternet.fi JOIN :#esoteric < 1460033410 0 :tromp_!~tromp@ool-18be0bd8.dyn.optonline.net JOIN :#esoteric < 1460034055 0 :tromp_!~tromp@ool-18be0bd8.dyn.optonline.net QUIT :Remote host closed the connection < 1460034154 0 :jaboja!~jaboja@vps.jaboja.pl QUIT :Ping timeout: 244 seconds < 1460034783 0 :Reece`!~nothing@host-92-13-205-245.as43234.net JOIN :#esoteric < 1460035148 0 :jaboja!~jaboja@vps.jaboja.pl JOIN :#esoteric < 1460035439 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1460035574 0 :jaboja!~jaboja@vps.jaboja.pl QUIT :Ping timeout: 250 seconds < 1460036570 0 :J_Arcane!~chatzilla@37-219-93-73.nat.bb.dnainternet.fi PRIVMSG #esoteric :does anyone else know of any accidentally TC tabletop games besides MtG? < 1460036852 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :ACTION pings ais523 on that. < 1460036955 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :i know NP-complete and PSPACE-complete games, but TC requires a complexity beyond normal games, i think. < 1460036965 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :because unbounded state. < 1460037032 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :well, you need to generalize the size for the former, usually. so maybe they don't count in this sense either. < 1460037118 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :tabletop, not sure < 1460037129 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :you can do things like infinite generalizations of Sokoban and Minesweeper < 1460037154 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :finding a game that naturally has infinite storage is hard, though < 1460037175 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and the ones that do, like Monopoly, don't have any obvious way to use it or do computations based on it < 1460037193 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :hmm, what about Monopoly where the program is a repeating sequence of dice rolls? < 1460037523 0 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :ais523: IMO what makes it hard to find TC-ness is that in the typical PSPACE-completeness proof of a game like sokoban or mario, you built the memory cells in the polynomial time preprocessing, and they're represented in-game as something like immutable in-game rooms. For TC you have to find a way to dig an unbounded sequence of rooms in-game, which is more difficult than just setting up a fixed number of rooms. < 1460037538 0 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :\ you built the memory cells in the polynomial time preprocessing, and they're represented in-game as something like immutable in-game rooms. For TC you have to find a way to dig an unbounded sequence of rooms in-game, which is more difficult than just setting up a fixed number of rooms. < 1460037684 0 :tromp_!~tromp@ool-18be0bd8.dyn.optonline.net JOIN :#esoteric < 1460037949 0 :tromp_!~tromp@ool-18be0bd8.dyn.optonline.net QUIT :Ping timeout: 260 seconds < 1460038021 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :b_jonas: nothing was cut off hth < 1460038658 0 :jaboja!~jaboja@vps.jaboja.pl JOIN :#esoteric < 1460039099 0 :spiette!~spiette@x-132-204-251-254.xtpr.umontreal.ca JOIN :#esoteric < 1460039533 0 :Taneb!~Taneb@2001:41c8:51:10d:feff:ff:fe00:316b PRIVMSG #esoteric :Apparently in 2005 my uni's CS department held a Vim vs Emacs paintball tournemant < 1460039539 0 :Taneb!~Taneb@2001:41c8:51:10d:feff:ff:fe00:316b PRIVMSG #esoteric :Paintball is probably not turing complete < 1460039586 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :`quote ais.*vim < 1460039624 0 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :1271) editor flame wars are fun, I typically take the side of emacs and vim versus everything else normally I can get most of the emacs /and/ vim users round to my side, thus catching out all the other-editor-users who thought they were safe < 1460039954 0 :Guest95899!~nycs@gw.hq.meetup.com JOIN :#esoteric < 1460040333 0 :Sgeo!~Sgeo@ool-18e43ef5.dyn.optonline.net QUIT :Ping timeout: 240 seconds < 1460040784 0 :FireFly!~firefly@firefly.xen.prgmr.com PRIVMSG #esoteric :Good plan < 1460041619 0 :Kaynato!~Aedile@129.22.1.19 JOIN :#esoteric < 1460042509 0 :lambda-11235!~lambda-11@47-208-113-50.erkacmtk03.res.dyn.suddenlink.net JOIN :#esoteric < 1460043155 0 :jaboja!~jaboja@vps.jaboja.pl QUIT :Ping timeout: 248 seconds < 1460043567 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :@tell mroman is it "other side" or "outside"? <-- that depends on whether or not you're a ghost hth < 1460043567 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :Consider it noted. < 1460044371 0 :Gwir!~Gwir@unaffiliated/gwir JOIN :#esoteric < 1460044581 0 :lambda-11235!~lambda-11@47-208-113-50.erkacmtk03.res.dyn.suddenlink.net QUIT :Quit: Bye < 1460044881 0 :Gwir!~Gwir@unaffiliated/gwir PART #esoteric :"Leaving" < 1460044897 0 :tromp_!~tromp@ool-18be0bd8.dyn.optonline.net JOIN :#esoteric < 1460045158 0 :tromp_!~tromp@ool-18be0bd8.dyn.optonline.net QUIT :Ping timeout: 244 seconds < 1460045236 0 :mroman!~mroman@160.85.232.58 QUIT :Quit: Lost terminal < 1460045463 0 :J_Arcane!~chatzilla@37-219-93-73.nat.bb.dnainternet.fi QUIT :Ping timeout: 240 seconds < 1460045493 0 :Kaynato!~Aedile@129.22.1.19 QUIT :Ping timeout: 240 seconds < 1460045643 0 :J_Arcane!~chatzilla@37-219-93-73.nat.bb.dnainternet.fi JOIN :#esoteric < 1460045955 0 :Kaynato!~Aedile@casewireless03.CWRU.Edu JOIN :#esoteric < 1460047753 0 :XorSwap!~XorSwap@wnpgmb016qw-ds01-214-177.dynamic.mtsallstream.net JOIN :#esoteric < 1460047815 0 :XorSwap!~XorSwap@wnpgmb016qw-ds01-214-177.dynamic.mtsallstream.net QUIT :Client Quit < 1460048288 0 :ais523!~ais523@unaffiliated/ais523 QUIT :Ping timeout: 250 seconds < 1460048335 0 :jaboja!~jaboja@vps.jaboja.pl JOIN :#esoteric < 1460048685 0 :jaboja!~jaboja@vps.jaboja.pl QUIT :Ping timeout: 248 seconds < 1460048924 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no QUIT :Quit: Later < 1460049390 0 :Guest772714!~severalwo@186-78-203-205.baf.movistar.cl JOIN :#esoteric < 1460049775 0 :J_Arcane!~chatzilla@37-219-93-73.nat.bb.dnainternet.fi QUIT :Ping timeout: 252 seconds < 1460050039 0 :Guest95899!~nycs@gw.hq.meetup.com QUIT :Ping timeout: 252 seconds < 1460050065 0 :Guest95899!~nycs@gw.hq.meetup.com JOIN :#esoteric < 1460050249 0 :Guest772714!~severalwo@186-78-203-205.baf.movistar.cl QUIT :Quit: Nettalk6 - www.ntalk.de < 1460050558 0 :Guest772714!~severalwo@186-78-203-205.baf.movistar.cl JOIN :#esoteric < 1460051235 0 :Guest95899!~nycs@gw.hq.meetup.com QUIT :Ping timeout: 264 seconds < 1460052073 0 :Kaynato!~Aedile@casewireless03.CWRU.Edu QUIT :Ping timeout: 268 seconds < 1460052131 0 :ais523!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1460052195 0 :Kaynato!~Aedile@casewireless03.CWRU.Edu JOIN :#esoteric < 1460052364 0 :Caesura!~Aedile@casewireless03.CWRU.Edu JOIN :#esoteric < 1460052425 0 :Zoroaster!~Aedile@casewireless03.CWRU.Edu JOIN :#esoteric < 1460052591 0 :Kaynato!~Aedile@casewireless03.CWRU.Edu QUIT :Ping timeout: 268 seconds < 1460052665 0 :Caesura!~Aedile@casewireless03.CWRU.Edu QUIT :Ping timeout: 268 seconds < 1460053575 0 :Frooxius!~Frooxius@91.219.247.213 QUIT :Ping timeout: 264 seconds < 1460053914 0 :jaboja!~jaboja@vps.jaboja.pl JOIN :#esoteric < 1460054549 0 :iconmaster!~iconmaste@129.21.121.176 JOIN :#esoteric < 1460054553 0 :Frooxius!~Frooxius@91.219.247.213 JOIN :#esoteric < 1460056180 0 :Zoroaster!~Aedile@casewireless03.CWRU.Edu QUIT :Ping timeout: 268 seconds < 1460056804 0 :Guest772714!~severalwo@186-78-203-205.baf.movistar.cl QUIT :Ping timeout: 252 seconds < 1460057445 0 :hppavilion[1]!~DevourerO@74-114-87-68.dynamic.asdk12.org JOIN :#esoteric < 1460057573 0 :Reece`!~nothing@host-92-13-205-245.as43234.net QUIT :Quit: Alsithyafturttararfunar < 1460057576 0 :hppavilion[2]!~DevourerO@74-114-87-68.dynamic.asdk12.org JOIN :#esoteric < 1460057596 0 :Reece`!~nothing@host-92-13-205-245.as43234.net JOIN :#esoteric < 1460057651 0 :jaboja!~jaboja@vps.jaboja.pl QUIT :Ping timeout: 248 seconds < 1460057728 0 :hppavilion[1]!~DevourerO@74-114-87-68.dynamic.asdk12.org QUIT :Ping timeout: 252 seconds < 1460057798 0 :lambda-11235!~lambda-11@24-156-46-61.erkacmtk02.com.dyn.suddenlink.net JOIN :#esoteric < 1460058331 0 :Kaynato!~Aedile@rrcs-24-172-147-244.central.biz.rr.com JOIN :#esoteric < 1460058851 0 :lambdabot!~lambdabot@haskell/bot/lambdabot QUIT :Quit: brb < 1460058911 0 :hppavilion[2]!~DevourerO@74-114-87-68.dynamic.asdk12.org PRIVMSG #esoteric :I'm creating a web application called Wi < 1460058913 0 :hppavilion[2]!~DevourerO@74-114-87-68.dynamic.asdk12.org PRIVMSG #esoteric :(Web Vi) < 1460058950 0 :hppavilion[2]!~DevourerO@74-114-87-68.dynamic.asdk12.org PRIVMSG #esoteric :The goal is to use it as an interactive Vi in-browser < 1460059138 0 :lambdabot!~lambdabot@haskell/bot/lambdabot JOIN :#esoteric < 1460059308 0 :Guest772714!~severalwo@186-78-203-205.baf.movistar.cl JOIN :#esoteric < 1460059906 0 :hppavilion[2]!~DevourerO@74-114-87-68.dynamic.asdk12.org QUIT :Ping timeout: 252 seconds < 1460061308 0 :p34k!~p34k@nat-wh-wz4-12.rz.uni-karlsruhe.de JOIN :#esoteric < 1460061362 0 :ais523!~ais523@unaffiliated/ais523 QUIT :Read error: Connection reset by peer < 1460061435 0 :ais523!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1460062263 0 :hppavilion[2]!~DevourerO@74-114-87-68.dynamic.asdk12.org JOIN :#esoteric < 1460062423 0 :rzfjwyxq!~rzfjwyxq@178.209.50.216 JOIN :#esoteric < 1460062440 0 :rzfjwyxq!~rzfjwyxq@178.209.50.216 QUIT :Client Quit < 1460062672 0 :lambda-11235!~lambda-11@24-156-46-61.erkacmtk02.com.dyn.suddenlink.net QUIT :Quit: Bye < 1460063094 0 :hppavilion[2]!~DevourerO@74-114-87-68.dynamic.asdk12.org PRIVMSG #esoteric :I think I've discovered a correspondence between data structures and control flow < 1460063199 0 :hppavilion[2]!~DevourerO@74-114-87-68.dynamic.asdk12.org PRIVMSG #esoteric :Of course, like the CHI, not all things on either side have a common partner < 1460063206 0 :hppavilion[2]!~DevourerO@74-114-87-68.dynamic.asdk12.org PRIVMSG #esoteric :So I'm looking into call/cc < 1460063481 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Maybe this channel would be more appropriate for my question. < 1460063510 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :If all function application is left-associated, what set of primitives would you need to be able to write any function? < 1460063529 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Something like unlambda without ` < 1460063535 0 :hppavilion[2]!~DevourerO@74-114-87-68.dynamic.asdk12.org PRIVMSG #esoteric :shachaf: S, K, ` < 1460063536 0 :hppavilion[2]!~DevourerO@74-114-87-68.dynamic.asdk12.org PRIVMSG #esoteric :Oh < 1460063541 0 :Taneb!~Taneb@2001:41c8:51:10d:feff:ff:fe00:316b PRIVMSG #esoteric :So "f $ g $ h" = "(f $ g) $ h"? < 1460063565 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Well, f g h < 1460063571 0 :hppavilion[2]!~DevourerO@74-114-87-68.dynamic.asdk12.org PRIVMSG #esoteric :S, K, C maybe? < 1460063590 0 :hppavilion[2]!~DevourerO@74-114-87-68.dynamic.asdk12.org PRIVMSG #esoteric :S and K are the traditional ones, Cxyz = xzy < 1460063607 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I don't think that's sufficient. < 1460063608 0 :hppavilion[2]!~DevourerO@74-114-87-68.dynamic.asdk12.org PRIVMSG #esoteric :Or maybe C^-, which is C^-xy=yx < 1460063614 0 :hppavilion[2]!~DevourerO@74-114-87-68.dynamic.asdk12.org PRIVMSG #esoteric :shachaf: Let me fire up COq < 1460063900 0 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :shachaf: stack operation primitives, I think < 1460063914 0 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :shachaf: no wait, you said left-associated, not right-associated < 1460063926 0 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :um < 1460063945 0 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :in that case you need to start form a primitive that's not well-typed in HM, right? < 1460063966 0 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :wait, which way is left-associated and which way is right-associated? < 1460063984 0 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :and from which side are you applying functions? < 1460064011 0 :hppavilion[2]!~DevourerO@74-114-87-68.dynamic.asdk12.org PRIVMSG #esoteric :shachaf: If I know how Coq works, then- wait, no < 1460064039 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :b_jonas: Same as Haskell. < 1460064051 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :a b c d = (((a b) c) d) < 1460064118 0 :hppavilion[2]!~DevourerO@74-114-87-68.dynamic.asdk12.org PRIVMSG #esoteric :shachaf: I stand by my c hypothesis < 1460064160 0 :hppavilion[2]!~DevourerO@74-114-87-68.dynamic.asdk12.org PRIVMSG #esoteric :shachaf: Wait, does left associative imply that types can only by (((Q -> P) -> S) -> T) -> U and such? < 1460064172 0 :hppavilion[2]!~DevourerO@74-114-87-68.dynamic.asdk12.org PRIVMSG #esoteric :If so, that makes things a LOT more difficult < 1460064172 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :OK, then show how to translate an arbitrary lambda expression. < 1460064173 0 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :shachaf: in that case, you need a non-well-typed function < 1460064183 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :b_jonas: Why? < 1460064199 0 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :shachaf: you can't apply arbitrarily many arguments to a well-typed function, right? < 1460064209 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Sure you can. < 1460064212 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :> id id id id id 5 < 1460064214 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : 5 < 1460064227 0 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :hmm < 1460064349 0 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :hola < 1460064356 0 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :todos < 1460064366 0 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :le mundi < 1460064373 0 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :el even < 1460064425 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :fungot: can you factor eleven? < 1460064426 0 :fungot!~fungot@momus.zem.fi PRIVMSG #esoteric :int-e: commissioner, the council of ministers, several former prime ministers, this institution is, after all, this was also true of the police and judiciary, long regarded as the most comprehensive legal statement of children' s safety may be a case of double hulls. with regard to amendments nos 67 and 68 would complicate the system rather than trying to do this both in conjunction with countries that have applied to join the < 1460064476 0 :myname!~myname@84.200.43.57 PRIVMSG #esoteric :how is stacl based not left assoziative? < 1460064478 0 :bb010g!uid21050@gateway/web/irccloud.com/x-dmjahdmsnkulwths JOIN :#esoteric < 1460064542 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :myname: in what context does that question make sense? < 1460064561 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :^style < 1460064561 0 :fungot!~fungot@momus.zem.fi PRIVMSG #esoteric :Available: agora alice c64 ct darwin discworld enron europarl* ff7 fisher fungot homestuck ic irc iwcs jargon lovecraft nethack oots pa qwantz sms speeches ss wp youtube < 1460064587 0 :myname!~myname@84.200.43.57 PRIVMSG #esoteric :i am refering zu b_jonas idea of stack operations < 1460064633 0 :myname!~myname@84.200.43.57 PRIVMSG #esoteric :to even < 1460064641 0 :myname!~myname@84.200.43.57 PRIVMSG #esoteric :how did this happen < 1460064691 0 :hppavilion[2]!~DevourerO@74-114-87-68.dynamic.asdk12.org QUIT :Ping timeout: 252 seconds < 1460064834 0 :fizzie!?@? PRIVMSG #esoteric :Double hulls, *that's* how we'll keep the children safe. < 1460064907 0 :fizzie!?@? PRIVMSG #esoteric :fungot: Do you have other parenting tips? < 1460064908 0 :fungot!~fungot@momus.zem.fi PRIVMSG #esoteric :fizzie: from a logical point of view on the subject of this own-initiative report commits various cardinal sins. the first deadline to be set at a higher level of investment and, thus, cannot accept amendments nos 30, 38 and amendments nos 5 and 6. as for the inspections, very much for your invitation, mrs kinnock, for pointing this out because i was looking to a new trend in the member states and applicant countries, whereas p < 1460065029 0 :J_Arcane!~chatzilla@37-219-93-73.nat.bb.dnainternet.fi JOIN :#esoteric < 1460065120 0 :Guest772714!~severalwo@186-78-203-205.baf.movistar.cl QUIT :Ping timeout: 252 seconds < 1460065172 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :oh you mean something like this < 1460065175 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :> let push x a c = c (a:x); add (a:b:x) c = c (a+b:x); end x = x; start c = c [] in start push 1 push 2 add push 3 add end < 1460065177 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : [6] < 1460065271 0 :myname!~myname@84.200.43.57 PRIVMSG #esoteric :end (x:_) = x would be nicer < 1460065331 0 :myname!~myname@84.200.43.57 PRIVMSG #esoteric :if you only want to calculate scalars, that is < 1460065366 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :oh, Oleg attributes this to Okasaki, interesting. http://okmij.org/ftp/Haskell/polyvariadic.html < 1460065390 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :myname: But you don't know at compile-time what will be in the stack. < 1460065398 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Of course you could type-check it if you wanted to. < 1460065403 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :> let { push x a c = c (a,x); add (a,(b,x)) c = c (a+b,x); end (x,()) = x; start c = c () } in start push 1 push 2 add push 3 add end < 1460065404 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : 6 < 1460065413 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :> let { push x a c = c (a,x); add (a,(b,x)) c = c (a+b,x); end (x,()) = x; start c = c () } in start push 1 push 2 add push 3 add add end < 1460065414 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : Couldn't match type ‘(t, ())’ with ‘()’ < 1460065414 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : Expected type: (t, ()) -> ((t, ()) -> t) -> t < 1460065415 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : Actual type: (t, (t, ())) -> ((t, ()) -> t) -> t < 1460065506 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :such a readable type error :) < 1460065514 0 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :hello < 1460065523 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :@let data HList :: [*] -> * where { HNil :: HList '[]; (:!) :: x -> HList xs -> HList (x ': xs) } < 1460065524 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : Defined. < 1460065530 0 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :talk to me < 1460065543 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :fungot: do we want to talk to quintopia? < 1460065544 0 :fungot!~fungot@momus.zem.fi PRIVMSG #esoteric :int-e: commissioner diamantopoulou, mr katiforis presents a report on one very important element of which is the year of marine safety, which will require the mobilisation of european engineers and support teams could, in fact, the dogma of the uncontrolled interpretative powers granted to the commission proposal for extending magp iv and it is there that we have balanced all the points we fought to improve. < 1460065556 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :politicians just can't say no. < 1460065564 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :ACTION runs < 1460065588 0 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :i'm just a gal who caint say no < 1460065680 0 :myname!~myname@84.200.43.57 PRIVMSG #esoteric :shachaf: why do i need to know? < 1460065706 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :You don't need anything. < 1460065737 0 :myname!~myname@84.200.43.57 PRIVMSG #esoteric :just throw the error, it's fine < 1460065745 0 :myname!~myname@84.200.43.57 PRIVMSG #esoteric :end = head < 1460065776 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :gotta type-check everything < 1460065787 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Also I thought I'd use HList and maybe get a better error message. < 1460065808 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :But the joke's on me because it's not even working and I don't know why. < 1460065857 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :does it work in ghci? < 1460065859 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Just another day in HListland. < 1460065863 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I don't know, I don't have ghci. < 1460065870 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Well, the other day I wrote HListy code in C++. That was worse. < 1460065876 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :how can you not have ghci! < 1460065880 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :blasphermy < 1460065882 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :blasphemy < 1460065891 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :> let { push x a c = c (a :! x); add (a :! (b :! x)) c = c ((a+b) :! x); end (x :! HNil) = x; start c = c HNil } in start push 1 push 2 add push 3 add end < 1460065893 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : Couldn't match expected type ‘HList (x : xs1) -> t2’ < 1460065893 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : with actual type ‘t1’ < 1460065893 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : because type variable ‘xs1’ would escape its scope < 1460065994 0 :Kaynato!~Aedile@rrcs-24-172-147-244.central.biz.rr.com QUIT :Ping timeout: 250 seconds < 1460066010 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric ::t let { push x a c = c (a :! x); add (a :! (b :! x)) c = c ((a+b) :! x); end (x :! HNil) = x; start c = c HNil } in start push < 1460066011 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : Couldn't match expected type ‘HList (x1 : xs1) -> t2’ < 1460066011 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : with actual type ‘t1’ < 1460066011 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : because type variable ‘xs1’ would escape its scope < 1460066031 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :I guess not being able to type this prefix could be a problem < 1460066068 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :> let { push x a c = c (a :! x); add (a :! (b :! x)) c = c ((a+b) :! x); end (x :! HNil) = x; start c = c HNil } in () -- The issue is in the definitions. < 1460066070 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : Couldn't match expected type ‘HList (x : xs1) -> t1’ < 1460066072 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : with actual type ‘t’ < 1460066074 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : because type variable ‘xs1’ would escape its scope < 1460066122 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :ah. < 1460066290 0 :Kaynato!~Aedile@rrcs-24-172-147-244.central.biz.rr.com JOIN :#esoteric < 1460066290 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :> let { push x a c = c (a :! x); add :: HList (Int ': Int ': xs) -> (HList (Int ': xs) -> r) -> r; add (a :! (b :! x)) c = c ((a+b::Int) :! x); end :: HList '[x] -> x; end (x :! HNil) = x; start c = c HNil } in start push 1 push 2 add push 3 add end < 1460066292 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : 6 < 1460066294 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :scow < 1460066298 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :It was just an inference issue? < 1460066332 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :> let { push x a c = c (a :! x); add :: Num x => HList (x ': x ': xs) -> (HList (x ': xs) -> r) -> r; add (a :! (b :! x)) c = c ((a+b) :! x); end :: HList '[x] -> x; end (x :! HNil) = x; start c = c HNil } in start push 1 push 2 add push 3 add end < 1460066334 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : 6 < 1460066348 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :will it work in ghc 8? < 1460066351 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Why does that have an inference issue? < 1460066471 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric ::t let { end (x :! HNil) = x } in end < 1460066473 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : Couldn't match expected type ‘t2’ with actual type ‘x’ < 1460066473 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : ‘t2’ is untouchable < 1460066473 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : inside the constraints (xs ~ '[]) < 1460066731 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric ::t let end xs = case xs of { x :! HNil -> () } in 42 < 1460066733 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : Not in scope: data constructor ‘:!’ < 1460066733 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : Perhaps you meant one of these: < 1460066733 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : ‘:+’ (imported from Data.Complex), < 1460066758 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric ::t let end xs = case xs of { x :! HNil -> () } in 42 < 1460066759 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : Couldn't match expected type ‘t’ with actual type ‘()’ < 1460066759 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : ‘t’ is untouchable < 1460066759 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : inside the constraints (xs ~ '[]) < 1460066813 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :so it has learned nothing about the return type... and then there comes the GADT pattern match that freezes the type variables outside? dunnno. the ways of the type checker are mysterious and convoluted. < 1460067036 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :what does :! do? < 1460067043 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and what does ': do? < 1460067056 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric ::! doesn't look like an operator, ': might be one though < 1460067060 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric ::t (':) < 1460067062 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :parse error on input ‘:’ < 1460067064 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :The :! is part of the HList definition. ': is a type-level cons operator. < 1460067081 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :well, type-literal level < 1460067093 0 :Guest772714!~severalwo@186-78-203-205.baf.movistar.cl JOIN :#esoteric < 1460067155 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :is ' reserved for type-level operators? < 1460067157 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric ::t '[()] < 1460067158 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :parse error on input ‘(’ < 1460067166 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric ::t '['()] < 1460067167 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :parse error on input ‘]’ < 1460067180 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :(okay, that was stupid) < 1460067191 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it got all the way up to the ] before getting confused < 1460067204 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I take it '[' was parsed as a character < 1460067206 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :then () as unit < 1460067206 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :> '['() -- is just a type error < 1460067207 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : Couldn't match expected type ‘() -> t’ with actual type ‘Char’ < 1460067207 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : The function ‘'['’ is applied to one argument, < 1460067207 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : but its type ‘Char’ has none < 1460067217 0 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :ais523: I think you need to write it as '[]() < 1460067219 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and only failed to parse after that < 1460067231 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :b_jonas: I think ais523 didn't make the mistake < 1460067238 0 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :oh < 1460067239 0 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :um < 1460067239 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :b_jonas: but anyway :t parses expressions < 1460067253 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric ::k () < 1460067254 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :* < 1460067259 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric ::k ': < 1460067260 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :parse error on input ‘:’ < 1460067264 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric ::k (':) < 1460067265 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :parse error on input ‘:’ < 1460067269 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric ::k '[] < 1460067270 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :[k] < 1460067273 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :aha < 1460067279 0 :spiette!~spiette@x-132-204-251-254.xtpr.umontreal.ca QUIT :Ping timeout: 260 seconds < 1460067287 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric ::k '[()] < 1460067288 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :[*] < 1460067295 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :what does k mean in a kind? < 1460067308 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :it's a polymorphic kind < 1460067312 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :so a kind variable < 1460067326 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :ah right < 1460067331 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I didn't realise we had kind-level polymorphism < 1460067350 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :ghc has grown some fancy type system extensions in the last three (I think) years < 1460067360 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :ACTION wonders if it's possible to identify types with kinds without becoming dependently typed < 1460067659 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :ais523: That's sort of what GHC does. < 1460067668 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Depending on what you mean by "identify". < 1460067674 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I'm not sure what I mean < 1460067735 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :When you define a type Maybe a with values Nothing and Just a, GHC also defines a kind Maybe a with types Nothing and Just a < 1460067750 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :With DataKinds. < 1460067755 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Are those identified? < 1460067764 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :is it possible to construct a value of type Nothing? < 1460067779 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :No. By "type" I just mean that it exists on the type level. < 1460067796 0 :coppro!~scshunt@corn-syrup.csclub.uwaterloo.ca PRIVMSG #esoteric :ais523: well, even in a dependently-typed language you can't create a object of type Nothing < 1460067804 0 :coppro!~scshunt@corn-syrup.csclub.uwaterloo.ca PRIVMSG #esoteric :at least, not any one I've seen < 1460067810 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :hmm, it doesn't seem that the types have much in common with the kinds apart from having the same name < 1460067838 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :but anyway the type-level 'Nothing and the data-level Nothing are not the same. < 1460067865 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :What if value-level functions were also automatically lifted to type-level functions? < 1460067922 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :. o O ( my_head _ = unsafePerformIO ... ) < 1460067941 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :ski: see also the conversation in this channel a few screens ago < 1460067950 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :shachaf: is that even possible in general? < 1460067952 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the lifting, I mean < 1460067956 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :but I suspect that then you get all the bad aspects of dependent type (undecidable type checking) without any benefits. < 1460067970 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :is there a type-level fix? that feels like the largest problem < 1460067982 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :good point < 1460068007 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :ais523: Well, you have isorecursive types. Not equirecursive types like I think you can get in ocaml. < 1460068024 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :but you can already do funny things (like constructing a type satisfying x ~ [x]) with type families. < 1460068073 0 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :shachaf: I think haskell has those too, but only if you enable an extension flag, and you normally don't want that, because it makes typechecker errors REALLY confusing because type errors that lead to recursive types get caught too late < 1460068074 0 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :sorry... didn't read what shachaf wrote before pressing return < 1460068096 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :b_jonas: I've never seen Haskell have those. < 1460068109 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :It would be interesting to try. < 1460068365 0 :ski!~ski@remote11.chalmers.se PRIVMSG #esoteric :b_jonas : it's the OCaml implementation which has them (`-rectypes'). they already need them for (cyclic) object types. the option just removes the restriction that the cycle has to go through an object type < 1460068408 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I remember https://mail.haskell.org/pipermail/haskell-cafe/2006-December/020072.html < 1460068619 0 :XorSwap!~XorSwap@wnpgmb016qw-ds01-214-177.dynamic.mtsallstream.net JOIN :#esoteric < 1460068723 0 :izabera!~izabera@unaffiliated/izabera PRIVMSG #esoteric :https://github.com/Rochester-NRT/AlphaG < 1460068725 0 :izabera!~izabera@unaffiliated/izabera PRIVMSG #esoteric :err < 1460068728 0 :izabera!~izabera@unaffiliated/izabera PRIVMSG #esoteric :https://github.com/Rochester-NRT/AlphaGo < 1460068958 0 :ski!~ski@remote11.chalmers.se PRIVMSG #esoteric :(and you need cyclic object types for binary methods and "clone" methods. see ,. also ) < 1460070999 0 :gremlins!~nothing@host-92-13-205-245.as43234.net JOIN :#esoteric < 1460071107 0 :Reece`!~nothing@host-92-13-205-245.as43234.net QUIT :Ping timeout: 244 seconds < 1460071169 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1460071716 0 :Guest772714!~severalwo@186-78-203-205.baf.movistar.cl QUIT :Quit: Nettalk6 - www.ntalk.de < 1460072137 0 :boily!~alexandre@96.127.201.149 JOIN :#esoteric < 1460072312 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric : If all function application is left-associated, what set of primitives would you need to be able to write any function? <-- hm sounds familiar. < 1460072341 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :oerjan: I think I've asked this before. < 1460072349 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :And someone even sent me a paper or something about it. < 1460072359 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :It was called something like "bracketing combinators" but I can't find it now. < 1460072360 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :oerjan: shachaf: isn't that just Underload? < 1460072365 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Is it? < 1460072368 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :i know i showed once that you can refactor everything as a big blob of id and (.) followed by your original terms, but i'm not sure if the big blob itself can then be split up. < 1460072376 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :or, well, concatenative languages generally < 1460072396 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :ais523: that would be right-associated. < 1460072412 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :well < 1460072414 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :without a lot of tweaking, anyway. < 1460072416 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :all functions are associative in Underload < 1460072423 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :so the association doesn't really matter < 1460072434 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :oerjan: You mean the big blob is a tree? < 1460072436 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :ais523: um we're assuming the application is the usual lambda one. < 1460072450 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :ah right, not compose < 1460072462 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I'm talking about "unlambda without `" < 1460072463 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I guess it is right-associative then? < 1460072482 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :shachaf: where you basically have enough `s at the start of the program to balance it? < 1460072485 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :In Haskell "f x y" is "(f x) y" < 1460072487 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :ais523: Yes. < 1460072494 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :shachaf: a (b (c d) e) = (.) a (b (c d)) e = (.) ((.) a) b (c d) e etc. < 1460072523 0 :AnotherTest!~turingcom@2a02:1811:d22:cc00:2898:ab4b:e8fd:adc0 QUIT :Quit: ZNC - http://znc.in < 1460072557 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric := (.) ((.) ((.) a) b)) c d e < 1460072567 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :er < 1460072575 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :*b) < 1460072581 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :OK, but your blob isn't standalone there. < 1460072596 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :you eventually get all the rest out < 1460072622 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Do you? When I've done it in the past I ran into cases where it didn't happen with the natural (.)ification. < 1460072632 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :* = (.) ((.) ((.) a) b) c d e < 1460072644 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :You run into (.)^6 = (.)^10 and the expression keeps growing. < 1460072653 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric := (.) (.) ((.) ((.) a) b c d e < 1460072687 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :dammit < 1460072710 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :* = (.) (.) ((.) ((.) a)) b c d e < 1460072724 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :it's easier if you give (.) a non-infix name hth < 1460072727 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :for example fmap < 1460072741 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric := (.) ((.) (.)) (.) ((.) a) b c d e < 1460072747 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :copumpkin: Maybe you were the one who sent me that paper? < 1460072765 0 :copumpkin!~copumpkin@haskell/developer/copumpkin PRIVMSG #esoteric :which paper? < 1460072772 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric := fmap (fmap fmap) fmap (fmap a) b c d e < 1460072773 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :oerjan: "bracketing combinators" or something < 1460072790 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :s/oerjan/copumpkin/ < 1460072792 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric := fmap (fmap (fmap fmap) fmap) fmap a b c d e < 1460072797 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :there, one initial blob < 1460072810 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :OK, I believe that it works in this case. < 1460072822 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :i'm pretty sure it works in general. < 1460072822 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I don't remember whether the issue I ran into was trying to deblob the fmaps themselves. < 1460072830 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :That might've been it. < 1460072835 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :right, i don't know if that works. < 1460072864 0 :boily!~alexandre@96.127.201.149 PRIVMSG #esoteric :@massages-loud < 1460072864 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :mroman said 14h 59m 22s ago: HELLO FROM THE OTHER SIDE.... < 1460072865 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :it doesn't hth < 1460072886 0 :boily!~alexandre@96.127.201.149 PRIVMSG #esoteric :@tell mroman *gasp*! you're not dead! well... if you are, you communicate! < 1460072886 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :Consider it noted. < 1460072903 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric := fmap fmap (fmap (fmap fmap)) fmap fmap a b c d e < 1460072924 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :perhaps it starts getting harder now < 1460072925 0 :Sgeo!~Sgeo@ool-18e43ef5.dyn.optonline.net JOIN :#esoteric < 1460073008 0 :myname!~myname@84.200.43.57 PRIVMSG #esoteric :you are crazy < 1460073092 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric : You run into (.)^6 = (.)^10 and the expression keeps growing. <-- in that case surely you can just shortcut back >:) < 1460073093 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :myname: just search the #haskell logs for "fmap fmap fmap fmap". i've done plenty of this. < 1460073099 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :a little too much in fact < 1460073127 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :oerjan: Anyway, you're obviously not going to be able to encode an arbitrary binary tree structure in unary. < 1460073135 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Not with fmap, anyway. < 1460073146 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :shachaf: well ok right, you need more than just fmap. < 1460073165 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :so the question is, how little do you need to be able to decode a fmap blob < 1460073224 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :boily: from other things mroman said, i think he may be confused about the connotation of "THE OTHER SIDE" < 1460073231 0 :myname!~myname@84.200.43.57 PRIVMSG #esoteric :what about $ < 1460073241 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :oerjan did say "fmap and id" < 1460073242 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :(dammit, forgot to portmantell again) < 1460073286 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric : you are crazy <-- wait, anyone in particular, or all of us twh < 1460073324 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :shachaf: i think you only need id for the trivial case. < 1460073343 0 :boily!~alexandre@96.127.201.149 PRIVMSG #esoteric :hellørjan. there are multiple other sides? as far as I know, there's the Other Side, Our Side, and that's about it. < 1460073345 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :consider it the empty blob, or something. < 1460073425 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :boily: John 14:2 hth < 1460073498 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric ::t fmap < 1460073499 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :Functor f => (a -> b) -> f a -> f b < 1460073503 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric ::t fmap fmap < 1460073504 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :(Functor f, Functor f1) => f (a -> b) -> f (f1 a -> f1 b) < 1460073510 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric ::t fmap.($) < 1460073511 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :Functor f => (a -> b) -> f a -> f b < 1460073515 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :oops < 1460073518 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric ::t fmap fmap fmap fmap fmap fmap < 1460073519 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :(Functor f, Functor f1) => (a -> a1 -> b) -> f a -> f (f1 a1 -> f1 b) < 1460073530 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :@let dot = (.) < 1460073531 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : Defined. < 1460073540 0 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric ::t dot dot dot dot dot dot < 1460073541 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :(b -> b1 -> c) -> (a -> b) -> a -> (a1 -> b1) -> a1 -> c < 1460073563 0 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I actually think the fmap version might be clearer, it's surprising that it only uses two functors < 1460073585 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric ::t fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap < 1460073585 0 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :(Functor f, Functor f1) => (a1 -> a -> b) -> f a1 -> f (f1 a -> f1 b)