00:22:45 so I have a language. it's called Modal. Modal is based off of term rewriting, and its reduction strategy is based around a queue automata. it features three data structures in its implementation: a dictionary of variable bindings (global), a pattern buffer for matching and construction of new patterns, and an expression buffer that holds the current expression under evaluation. 00:24:17 imode: go on, I'm listening 00:25:19 I have a subproject, called Mode, which is like Modal, only the model of computation under consideration is combinatory logic. 00:26:08 I'm intending on showing a reduction from Modal to Mode, and then show a reduction from Mode to some kind of queue automata or, barring that, a string rewriting system, then to a queue automata. 00:26:37 my goal at the moment is to show a reduction from Mode to a queue automata. 00:27:41 the issue I'm having is the idea of interpreting combintory logic via a queue automata. it's mainly just confronting the idea of partial application/currying. 00:28:24 by combinatory logic, you mean that thing that birds like the Mockingbird do? 00:28:30 known birds at least 00:28:32 (if you're interested, the code for Modal's interpreter is at https://git.imode.tech ) 00:28:56 yes. the birds in that book represent predefined transformations on term trees. 00:29:37 https://git.imode.tech/?p=python/modal;a=blob;f=prelude.modal;h=d2ac42077ebee97a46937e18ef493338c021394a;hb=refs/heads/master some example Modal code. 00:30:51 my hope was to reduce Mode to just a bare queue automata with some special rules. i.e, cut away the pattern buffer. 00:31:10 err, cut away the dictionary and leave the pattern buffer. 00:31:42 so if modal is {Variable Bindings, Pattern Buffer, Expression Buffer}, mode is {Pattern Buffer, Expression Buffer}, and string rewriting is just {Expression Buffer}. 00:32:25 hmm, I think you'd mentioned this language before 00:32:42 Modal, that is 00:32:52 yeah, I've talked about it a bit in here. 00:35:13 the issue I'm encountering is the idea of partial application. normally, with queue-based evaluation, you check the head of the queue. depending on the combinator, dequeue its arguments in a special way into the pattern buffer, building up a new pattern. then, enqueue that pattern after you're done building it. 00:35:18 rinse and repeat. 00:37:43 but with partial application, the rules change. "``SK" in unlambda notation, for example, means "((S)K)". if we were to take this as a kind of rewriting system, we'd do something like the following to "represent" partially applied combinators: 00:38:05 ``SK -> ` 00:38:06 ​/srv/hackeso-code/multibot_cmds/lib/limits: line 5: exec: `SK: not found 00:38:10 crap, sorry. 00:38:50 my point is that in order to implement partial application, you need to have a distinction between what's partially applied and not partially applied. 00:41:32 you can do that by saying "`AB -> ". so "````skkk" -> "```kk" -> "``k" -> "`" -> "```kk`kk" -> "```kk" -> "``" -> "`>" -> "`" 00:41:52 you add delimiters to clarify that this part of the string of applications has been partially applied. 00:42:24 that's irritating because, queue/string-wise, you now have two types of "spans". 00:42:59 I'll be right back. gotta shower. highlight me and I'll read back. 00:57:22 -!- Melvar has quit (Quit: system upgrade). 00:58:58 -!- Sgeo_ has joined. 01:03:02 -!- Sgeo has quit (Ping timeout: 272 seconds). 01:04:07 -!- tromp has quit (Remote host closed the connection). 01:08:11 [[Talk:Language list]] https://esolangs.org/w/index.php?diff=58870&oldid=55677 * Areallycoolusername * (+376) /* Category? */ 01:09:36 [[Talk:Language list]] https://esolangs.org/w/index.php?diff=58871&oldid=58870 * Areallycoolusername * (+33) /* Category? */ 01:19:48 -!- tromp has joined. 01:24:30 -!- tromp has quit (Ping timeout: 250 seconds). 01:37:49 -!- b_jonas has quit (Quit: leaving). 01:46:04 -!- Galaxymeow has joined. 01:46:13 -!- Galaxymeow has quit (Client Quit). 01:54:54 -!- tromp has joined. 01:59:07 -!- tromp has quit (Ping timeout: 240 seconds). 02:11:19 [[PERPLEX]] N https://esolangs.org/w/index.php?oldid=58872 * Areallycoolusername * (+1023) Created page with "[[PERPLEX]] is an esolang created by [[Jussef Swissen]] (A pseudonym.) in 2014. It's basically a over-complicated version of BASIC. For example, PRINT is now INSCRIBE. Here's..." 02:13:00 [[Jussef Swissen]] N https://esolangs.org/w/index.php?oldid=58873 * Areallycoolusername * (+86) Created page with "Jussef Swissen is a programmer that made [[PERPLEX]]. The name he uses is a pseudonym." 02:26:37 [[Talk:Language list]] M https://esolangs.org/w/index.php?diff=58874&oldid=58871 * Oerjan * (+60) /* Category? */ No date in signature 02:31:31 -!- oerjan has joined. 02:35:30 @metar ENVA 02:35:32 ENVA 280150Z 26013KT 3300 RA SCT005 BKN009 OVC011 04/04 Q1013 RMK WIND 670FT 27018KT 02:35:45 yeah that's about how humid it feels 02:35:58 @mtear KOAK 02:35:58 KOAK 280153Z 01007KT 10SM FEW200 12/M03 A3016 RMK AO2 SLP214 T01221033 02:36:24 i take it california is pretty dry again 02:38:25 no smoke here at least 02:38:32 my standards are low now hth 02:38:49 no smoke, no fire 02:49:54 -!- Essadon has quit (Quit: Qutting). 02:50:07 `? descartes 02:50:10 descartes? ¯\(°​_o)/¯ 02:50:12 `? horse 02:50:14 A horse, a horse! My kingdom for a horse! 02:50:26 oh i guess we already have horses 02:50:27 -!- Sgeo__ has joined. 02:53:23 -!- Sgeo_ has quit (Ping timeout: 245 seconds). 03:10:55 -!- tromp has joined. 03:11:50 blorgh. 03:17:16 -!- tromp_ has joined. 03:17:16 -!- tromp has quit (Read error: Connection reset by peer). 03:18:20 the only flaw I can find in combinatory logic is that partial application and currying, at least from what I can see, requires you to to differentiate between partially applied sequences of combinators. 03:18:20 -!- tromp_ has quit (Read error: Connection reset by peer). 03:18:40 -!- tromp has joined. 03:25:32 -!- MDude has quit (Ping timeout: 246 seconds). 03:26:01 -!- tromp has quit (Ping timeout: 246 seconds). 03:27:25 -!- MDude has joined. 03:35:32 -!- MDead has joined. 03:36:39 imode: hmm, what is the task precisely? make a queue automaton that can reduce CL terms represented by strings generated by the grammar T ::= 'S' | 'K' | '`' T T? 03:37:59 (hmm, you had lower case s and k, but that hardly makes a difference) 03:38:12 -!- MDude has quit (Ping timeout: 272 seconds). 03:38:17 -!- MDead has changed nick to MDude. 03:38:26 essentially yeah. that's unlambda notation. 03:39:50 I like the Unlambda notation for application. I used it in https://www.isa-afp.org/browser_info/current/AFP/Rewriting_Z/CL_Z.html ;) 03:40:45 (well, something that resembles it... it needed extra spaces and occarional parentheses to really work) 03:41:01 -!- Lord_of_Life has quit (Ping timeout: 268 seconds). 03:41:13 I dig it as well. it solidifies that you always need at least two combinators, so to speak. "apply" is actually an operation in that notation, and that's actually derived from schonfinkel's paper. 03:43:46 -!- Lord_of_Life has joined. 03:46:57 * int-e wonders how one mistypes 'r' for 's'... 03:47:51 did I do that? :o 03:47:58 No, I did :P 03:47:59 oh no. 03:48:03 lmao. 03:48:08 the keys are like right there man. 03:48:48 They're not adjacent. So clumsiness is an unlikely reason :) 03:48:50 it'r eary to do 03:52:55 ruse, if you do it insentionally 04:00:23 hint-e 04:00:33 Do you like ZDDs? 04:05:23 maybe 04:23:41 -!- FreeFull has quit. 04:34:54 -!- arseniiv has joined. 04:39:20 Now I made the program to use Glk with JavaScript. 05:09:23 -!- tromp has joined. 05:14:10 -!- tromp has quit (Ping timeout: 250 seconds). 05:29:06 -!- doesthiswork has quit (Quit: Leaving.). 05:32:39 -!- Melvar has joined. 05:48:40 i see the people in girl genius are trying to raise a racket 05:50:28 -!- oerjan has quit (Quit: Nite). 06:03:14 -!- tromp has joined. 06:07:27 -!- tromp has quit (Ping timeout: 244 seconds). 06:47:15 -!- uplime has quit (Quit: /quit and /part are in a boat. /part jumps out of the boat. who is left in the boat?). 06:56:50 -!- tromp has joined. 07:01:16 -!- tromp has quit (Ping timeout: 246 seconds). 07:06:36 imode: ooph. http://paste.debian.net/1057746/ 07:24:18 int-e: interesting. unlambda interpreter? 07:24:46 wait... 07:25:02 is this a string rewriting system?! 07:26:53 holy shit. 07:35:39 imode: that's a queue automaton 07:35:59 -> 07:36:08 is the syntax I'm using 07:38:51 -!- Sgeo_ has joined. 07:39:01 interesting. so you only examine a single symbol at the head of the queue, then enqueue some string. 07:40:39 just wow 07:42:22 -!- Sgeo__ has quit (Ping timeout: 250 seconds). 08:00:52 that's really fascinating. how'd you whip that up so fast? 08:00:58 -!- tromp has joined. 08:04:35 golfing... saving 3 states: http://paste.debian.net/1057754/ 08:05:41 imode: hmm, having an interpreter is crucial; and I had an inspiration how skipping over a subterm could work (that logic uses the # and % symbols, and involves the first four states) 08:06:24 interesting... I've been trying to get subterm extraction working with the unlambda notation. 08:09:05 In that logic, a % preceding a # somewhere has the effect of pushing the # one whole subterm further ahead. 08:10:14 Having % makes skipping over `XY easy: we've read the `, so we put it back, put a % that will eventually push the # over the Y, then skip X. That's the logic of the # state. 08:10:33 thaaaat... makes sense. 08:10:34 (if # encounters an s, it'll just skip over that and drop the # marker; same for k) 08:13:35 the question I have is can this be made combinator-agnostic. like it looks like you have specific interactions between specific combinators. if we had a larger basis, the state count would blow up. 08:19:12 Well, you'll have to add logic for all those combinators anyway, which will already blow things up. That said, you /can/ make the copying agnostic by some counting scheme (assign numbers to each symbol; decrement the symbol to 0 while copying; then you don't have to remember a whole symbol in a state) 08:19:44 you can also do some binary encoding, at the cost of a logarithmic number of states in the %/# handling. 08:20:23 true. still is a little unweildy though. ideally we'd have some kind of "schema" that generates these state tables from equational definitions of combinators. 08:21:07 or, you just add one pass over the whole string that replaces each combinator by the corresponding SK expression. 08:21:24 true. 08:21:40 you might get smaller reduction times, though, with different bases. 08:22:54 I was semi-golfing. I wanted a small number of extra symbols (3 right now, #, %, $) and a reasonably small number of states (20 now, not counting the halting state) 08:23:41 translating this to an SRS would be trivial. 08:24:02 almost trivial... you have to take care of the cyclic nature of the queue. 08:24:33 or you rewrite cycles ala https://www.win.tue.nl/~hzantema/cycrew.pdf 08:25:00 then it is trivial, just need to keep the states separate from the other symbols. 08:25:23 something that I dreamt of (was napping earlier) was a reduction from combinatory logic to wang tilings and something like a counter machine. 08:26:04 Anyway, the only thing I might want to add is 'i' and that's almost trivial... needs one extra state, I think. 08:26:34 (and that extra state is for copying) 08:29:01 so you have states for Sk and SK, and these denote an explicit interaction between S and K, right? 08:29:13 -!- user24 has joined. 08:29:36 I notice you don't have any for K applied to S. 08:29:52 but you do have them for S applied to S. 08:30:16 imode: those are copying states. I got rid of SK, SS and S' in the latest paste. 08:30:22 09:04:35 golfing... saving 3 states: http://paste.debian.net/1057754/ 08:30:30 ahhh. 08:31:12 right. so if I were to add for example C, I'd need to show how C interacts with S and K. 08:36:32 C would be similar to S. 08:36:54 (moving a string over another one, or copying it, is basically the same amount of work) 08:39:02 http://paste.debian.net/1057755/ is what would be needed to implement `i`. So... basically all existing states get a new transition, and there's an Si state. This is atypical in that reducing `iX just removes the "`i" so that no marking of arguments or I* states are needed. 08:41:19 Anyway. Extensibility was not a goal. I wanted the default SK(optionally I) combinatory logic, nothing more. 08:42:10 it's awesome. :D 08:42:31 you've at least shown me a compact implementation. thank you! 08:56:27 -!- sprocklem has joined. 09:02:10 hm.. has anybody ever done wang tiling over arbitrary graphs, I wonder. 09:03:48 self-assembling graphs.. 09:15:06 wonder if there's a "background-agnostic" version of wang tiling, i.e "self-assembly" systems that don't rely on the idea of a planar backdrop to expand into. 09:38:59 -!- user24 has quit (Ping timeout: 250 seconds). 10:11:15 hm. now I'm curious... a CA/tiling that can generate its own backdrop. 10:12:26 for example, a CA that, initially, has a confined area of space for rules to be applicable in, but by way of local interactions, that space can grow. 10:23:42 -!- laerling has joined. 11:10:29 I just had an epiphany. any system of combinators can be encoded as a set of wang tiles. any set of wang tiles is essentially a "crystalline" CA, where one axis is time. combinatory logic thus may be able to be encoded pretty cleanly into something like a cellular automaton, and that just broke my brain. 11:11:11 I am all the hype. 11:21:10 i don't think any of that is true 11:21:14 have you tried this out in practice 11:23:42 justification for 1: a wang tiling is essentially a historical graph for any arbitrary cellular automaton or turing machine. along the Y axis is your history, along the X axis is your "tape", or your space. if you just keep a copy of the "most recent" piece of history, you can restrict yourself to one dimension. 11:24:44 justification for 2: there exist encodings of combinatory logic within the context of wang tiles, such that the tilings formed by those tiles encode transformations of CL terms. it's a proposed method to write useful programs for self-assembling DNA tiles. 11:27:34 result (and hypothesis): any system of combinators can be simulated as a 1D cellular automaton by encoding it as a set of wang tiles and discarding the history of the tiling formed by those tiles. 11:30:47 if I'm right and all those pieces fit together (I don't see why they wouldn't), then this kind of paves the way for a massively parallel reduction machine for combinatory logic, and thus may give a solid foundation in hardware for incredibly fast high level languages based on CL. 11:34:04 like, imagine you had a processor that just had a giant 1D array of parallel computing elements, each of which is just a glorified state machine. pre-load each element with the right FSM, provide the initial input (the CL expression you want to evaluate), and watch it run. 11:49:16 -!- S_Gautam has joined. 11:49:28 ok I see what you mean 12:01:40 -!- shikhin has quit (Changing host). 12:01:40 -!- shikhin has joined. 12:11:24 -!- laerling has quit (Ping timeout: 252 seconds). 12:15:35 -!- laerling has joined. 12:16:47 -!- imode has quit (Ping timeout: 240 seconds). 12:23:04 -!- rain2 has joined. 12:24:13 -!- rain1 has quit (Ping timeout: 245 seconds). 13:07:49 -!- laerling_ has joined. 13:07:52 -!- laerling has quit (Read error: Connection reset by peer). 13:19:25 -!- laerling_ has quit (Quit: Leaving). 13:20:13 * int-e yawns 13:23:36 In retrospect I should've gone to bed instead of playing with queue automata :) 13:44:24 -!- doesthiswork has joined. 13:44:26 -!- b_jonas has joined. 13:44:29 `? very exponential 13:44:30 very exponential? ¯\(°​_o)/¯ 14:31:13 -!- AnotherTest has joined. 14:38:04 Is this something like (10^100)^n ? 14:41:21 i'd say n^n 14:44:09 Meh, the two uses of "exponential"... 14:44:33 -!- AnotherTest has quit (Ping timeout: 252 seconds). 14:45:01 n^n = O(2^n^2) is EXP, but grows faster than any exponential function. 14:46:39 -!- AnotherTest has joined. 14:58:47 is that so? 14:59:25 isn't it just e^(n log n)? i can name a few exponential funktions that grow faster 15:00:04 here's what I mean by "exponential function": f(n) = a * b^n for constants a, b. 15:00:17 okay 15:01:03 so... a very exponential function is an exponential function that grows faster than exponential functions? 15:01:59 Complexity theorists mess this up because they close most their classes under polynomial time (or at least logspace) reductions. 15:03:35 -!- AnotherTest has quit (Ping timeout: 268 seconds). 15:15:06 -!- Essadon has joined. 15:27:26 -!- AnotherTest has joined. 15:31:51 -!- AnotherTest has quit (Ping timeout: 252 seconds). 15:38:36 -!- Lord_of_Life_ has joined. 15:41:54 -!- Lord_of_Life has quit (Ping timeout: 268 seconds). 15:41:54 -!- Lord_of_Life_ has changed nick to Lord_of_Life. 16:04:19 -!- AnotherTest has joined. 16:28:56 -!- S_Gautam has quit (Quit: Connection closed for inactivity). 17:09:55 -!- nchambers has joined. 17:16:50 `quote 17:16:51 76) I don't know that I've ever heard apocalypi described in terms of depth ... 17:19:07 `quote 17:19:08 459) I gave her the Noblesse Oblige rooms. She was happy with them even when they were behind 2 locked doors and a floodgate and full of water. 17:27:45 -!- derpy_ has joined. 17:29:58 -!- derpy has quit (Ping timeout: 250 seconds). 17:51:22 `quote 17:51:23 958) i don't think hitler made any bf derivatives 17:57:19 that's a good one 17:57:50 oh it's an unexplored area of fiction 17:59:06 int-e: maybe it's unexplored, maybe you just don't read far enough into the longer pornographic Hitler fanfiction pieces 17:59:20 ... 17:59:22 ouch. 17:59:27 fungot: help! 17:59:28 int-e: we have in fnord relationships, that co-operation, the committee recognised that the proposals also included the albert kennedy trust from the 1990s, and the time to be the one to which i can attest, is still part of the governments considerations, and the then secretary of state. 17:59:44 fungot: thanks. 17:59:45 int-e: the eu and, for too many, and the care of fnord peers, and the home secretary that the government would conduct a form, people end up in the same as the one the hon. and learned friend the minister for that, and i, and, 18:00:17 my hon. and learned friend fungot is still in Brexit mode? 18:00:18 b_jonas: the country is the second biggest in the uk. when i will be available. i have been a minister in the house, which is saving it some of those regulations, but when the government have 18:03:08 second biggest in UK? that must be Scotland 18:04:06 fungot: what are the other news? 18:04:07 arseniiv: on the important question of constitutional and economic implications. it was the right hon. and hon. and right hon. 18:05:07 fungot: all economy these days. Aren’t there something new in the field of prepromorphisms? 18:05:07 arseniiv: what i have said, that the government introduced the new, tougher system under the education act 1996, the government actuarys report and john stevenson be members, including 150,000 acres, the entire way of thinking, the type that the hon. member the leave of the house, 18:05:39 well, 18:06:41 `? albert kennedy trust 18:06:42 albert kennedy trust? ¯\(°​_o)/¯ 18:07:19 I would be surprised if prepromorphisms was even in fungot's vocabulary for this style. (Not sure about the irc style... it seems unlikely, but might just be there.) 18:07:19 int-e: i do. we are to be fnord. i am right, that being speaker of the fnord 18:07:37 Every style has expert knowledge on fnords though. 18:09:07 do they have a category-theoretic style? 18:10:15 or at least Oleg Kiselyov style maybe (hm but why him) 18:11:27 fungot: finally tagless eh? 18:11:27 arseniiv: to be as we all anticipate following a very few exceptional circumstances, i have to have some of the highest at 25,800. local government, local government, and working-age people, can be considerable, and the only people to have suffered fnord under the eu arrangements 18:11:56 at least there is another fnord 18:14:35 if somebody’s interested, the last OpenMPT version, 1.28, now supports all (printable, I think) ASCII chars in custom tunings’ note names, when using a custom font for the pattern editor 18:16:28 (though there’s possibly a bug when rendering &, for me it displays as a color-inverted pipe currently) 18:17:18 (but it seems it should be fixable easily if it’s really OpenMPT’s bug and not something with my font) 18:18:30 arseniiv: that's appropriate. & is just a | with the inputs and output negated 18:19:52 lol :D didn’t think about it 18:21:40 `quote 18:21:41 235) actually the first joke i thought elliott was making was that he's so small masturbation is gay pedophilia 18:38:40 -!- GeekDude has joined. 18:40:05 hmmmm beautiful documentation: http://bach.istc.kobe-u.ac.jp/iSATLib/doc/iSATLibrary/ISatLibrary.html 18:41:15 (I think this is just meta information, perhaps "list of classes", "list of interfaces"... the actual documentation (where present) seems to be in English... but still... 18:42:27 It's a pity that it's written in Java though. 18:43:01 -!- nchambers has changed nick to uplime. 18:46:52 no encoding specified in html code :( 18:48:23 for some reason the only cases a wrong encoding is detected the last decade or so is for Japanese webpages only 18:48:30 for me 18:48:58 suspicious 18:49:52 arseniiv: hmm, nor in the HTTP headers 18:51:22 arseniiv: are you sure it's wrong encoding detected, as opposed to text snippets in multiple encodings mixed into the same HTML? 18:53:36 because mixed or corrupt encoded text is annoyingly common 18:54:34 I don’t want to overgeneralize but these Japanese encodings are… I mean, why do they seem to not care to indicate them each time, it should just be a bad luck 18:54:34 b_jonas: maybe, but if I select “Japanese” in autodetect encoding menu in Firefox, it goes normal, Japanese + English. Originally this time it was detected as a Cyrillic mess (+ English) 18:55:06 arseniiv: yes, it is worse in japanese 18:55:48 so maybe this is one encoding all the way, just as it’s not specified the browser thinks it should better parse all text with settings for my default languages 18:58:47 actually... my browser does misidentify the encoding as well 18:59:34 b_jonas: a pity, really. I mean, there’s possible a ton of pages in Win-1251 with no encoding maybe even in headers, and there should also even be that DOS encoding 866 or something somewhere, but I can’t easily see and usually don’t visit those kinds of pages — but what did they do to Javadoc to strip the encoding data, is it trivial at all, and if it’s not, why?.. (rhetoric) 19:00:59 (Win-1251 and that DOS one are Cyrillic encodings, they should probably be preferred when autodetecting with my lang settings) 19:09:54 -!- tromp has quit (Remote host closed the connection). 19:10:26 -!- tromp has joined. 19:14:44 -!- tromp has quit (Ping timeout: 246 seconds). 19:26:01 -!- tromp has joined. 19:40:55 -!- ais523 has joined. 19:40:55 -!- ais523 has quit (Remote host closed the connection). 19:41:03 that was quick 19:41:39 ? 19:41:42 In a C code will 'xy' equal ('x'*'\1\0'+'y'*'\0\1') even though 'xy' may be different by different computers? 19:41:44 oh. 19:42:07 -!- ais523 has joined. 19:42:29 zzo38: I don't think that's promised. it's impl'n-defined behavior, so read the manual of your architecture or compiler. 19:43:18 zzo38: Well, that's a GCC extension anyways. 19:43:42 (multi-character char literals are not ISO C in the slightest) 19:44:28 hmm, "implementation-defined"... 19:44:41 all bets are off since compiler writers can't be trusted to be reasonable ;) 19:57:08 Do you like the program I made to use Glk with JavaScript? Later I had found a implementation of Glk in JavaScript (mine uses an implementation in C), although the API does not match, although I think that my API is look like better, in my opinion. 20:01:19 The "vm" mechanism in Node.js does not have a function to execute a code with a separate call stack. 20:17:10 -!- arseniiv has quit (Ping timeout: 246 seconds). 20:23:10 -!- FreeFull has joined. 20:24:53 -!- imode has joined. 20:25:27 What's a "Glk"? 20:25:30 `? Glk 20:25:31 Glk? ¯\(°​_o)/¯ 20:26:51 https://www.eblong.com/zarf/glk/glk-spec-075.html ... fits one of zzo38's many interests (IF) 20:34:58 -!- S_Gautam has joined. 20:40:17 imode: re: implementing combinatory logic, most methods I've seen have the concepts of an S1 closure (i.e. S partially applied to 1 argument), an S2 closure (i.e. S partially applied to 2 arguments), and a K1 closure (i.e. K partially applied to 1 argument) 20:40:34 you don't really need a general system, just those three types of closure specifically 20:41:07 -!- AnotherTest has quit (Ping timeout: 250 seconds). 20:43:05 yeah, that's the method http://www.madore.org/~david/programs/unlambda/ describes 20:43:16 the simplest general system I know is the Underload-style system where things /start out/ as closures and just get escaped and unescaped 20:44:06 and composed 20:44:44 (…) a * ^ are the important operations for an Underload-alike to behave like a combinator calculus 20:44:55 : is sort-of irrelevant except that you need it for TCness 20:45:16 you could replace it with some other operation (S serves this purpose in SK combinator calculus) 20:45:52 and obviously, ~ ! S are hardly necessary (and were some of the first operations to be minimized out) 20:45:55 ais523: I figured as much. I've recently discovered a method of encoding CL terms and applications in wang tiles, and they appear to use a similar encoding to underload. 20:46:15 imode: What method is that? 20:46:36 am I permitted to post sci-hub links here? 20:47:02 that'd come under Freenode rules, and I'm guessing no 20:47:04 I don't know, but you could post the doi perhaps 20:47:32 you can post the name or a unique identifier of the paper and people would be able to find it their own way (e.g. many people here may have legitimate access to it) 20:48:06 I found a publically available PDF version: http://ceur-ws.org/Vol-1032/paper-01.pdf 20:49:45 Glk does not seems to have a style that is matching TAVERN's "Reverse" style. However, it is possible to determine if the story requires it or not, without trying to execute it. 20:52:17 by way of discarding all but the current bottom-most row in a tiling, CL reduction can look like a cellular automaton. 20:52:48 something akin to a smart shift register can reclaim the "dead space" used by applications. 20:53:59 brb 20:56:21 hm. now I'm curious... a CA/tiling that can generate its own backdrop. ← that reminds me of the 0E0P metacell in the Game of Life, although it isn't exactly the same thing 20:59:30 massively parallel reduction algorithms for things like lambda calculus, combinatory logic, and Underload-alikes are pretty easy to express, the problem is "internal" infinite loops 21:00:16 like, if you have something like "if (0) { } else { while(1); }" (except written functionally rather than imperatively), these parallel algorithms will be sending some of their threads to try to normalize the loop body 21:00:30 so you need some way to kill computations from outside when they're no longer needed 21:01:36 ais523: yeah, but ! being unncessary is kind of a surprise, because you know how the Mockingbird book has a whole chapter on how discarding is necessary 21:02:18 I'm still looking for that thing which is somewhere between a macro and an inline function. I don't know if it makes sense or if any language has it. 21:02:39 b_jonas: I don't think the wiki has an article on bitbuckets yet 21:02:49 but it's not normally too hard to maintain one 21:02:52 back. ais523: an implementation of CL in terms of a cellular automaton would still enable you to do that, but there's no "threading" going on. 21:03:42 fwiw, this is one of the many problems underlying Feather, and probably the one I've put the most effort into 21:03:52 I think this one is solvable, although some of the others aren't 21:06:12 -!- uplime has quit (Ping timeout: 250 seconds). 21:07:04 ais523: yeah, the trick is probably that Mockingbird doesn't claim that you can't get Turing-completeness without discard. all it claims is that you can't get discarding combinators from non-discarding ones, so you can't get all combinators without one. 21:07:27 and that's what you found in Underload too: you can't get discard from the other primitives, instead you simulate it 21:08:14 right 21:08:17 sure, they're not really equivalent 21:08:21 Underload is a bit more powerful 21:10:14 now I'm wondering what an Underload→combinators compilation looks like 21:10:29 (the other way is fairly easy) 21:10:43 I think you might have to write a full interpreter including a Church-encoded stack 21:10:44 you'll probably have a linked list stack for that, plus optimize the top elements whenever you can resolve them at compile time 21:10:47 yeah, that 21:11:09 because Underload freely lets you write unbalanced loops 21:16:40 -!- uplime has joined. 21:22:37 are wang tiles generalizable to arbitrary graphs with a color requirement and out degree? 21:23:31 I guess it would just be degree. 21:36:37 -!- AnotherTest has joined. 21:38:58 -!- pikhq has quit (Read error: Connection reset by peer). 22:01:03 I'd expect it to have to be infinite graphs (although finite Wang tiles could potentially be interesting for things like SAT-solving), but apart from that they generalise pretty simply 22:01:43 one issue is that the square grid that's normally used isn't quite a graph, because the edges at each point have identities (you can't permute them arbitrarily, e.g. you can't connect the N, E, S, W sides of the tile to the N, S, E, W adjacent squares respectively) 22:07:23 ais523: do you know anything about #SAT? I'm wondering whether https://github.com/marcthurley/sharpSAT is still state of the art. 22:08:28 no, I'm not very up to date with SAT solvers 22:08:38 http://beyondnp.org/pages/solvers/model-counters-exact/ had an overview. 22:09:03 It's comparatively easy for SAT, because of the SAT competitions. 22:09:27 also the name #SAT reminds me of complexity classes like #P 22:09:31 But #SAT is not quite the same, the tradeoffs are quite different. 22:09:50 (One thing I've learned is that #SAT is often called "model counting" in the literature) 22:09:51 ah right, it /is/ in fact the defining problem of #P 22:10:13 hmm, now I'm confused, maybe this is what you were talking about in the first place 22:10:25 But never mind then, it's just something that could have been in your area of interest. :) 22:11:06 it's the sort of thing that I'm broadly interested in despite not knowing much about 22:12:36 wait, count or parity? 22:12:51 the wafer grid means exact count, right? 22:13:00 yes, # is exact count 22:13:10 so #SAT is "how many ways are there to solve this boolean satisfaction problem?" 22:13:16 it would be a screwdriver head with a plus-shaped groove for parity 22:13:45 hmpf 22:13:52 \oplus, as they say in LaTeX 22:13:59 yeah 22:14:00 or ⊕ in Unicode 22:14:05 `unidecode ⊕ 22:14:06 ​[U+2295 CIRCLED PLUS] 22:14:41 I'd *expect* that finding the parity of the number of solutions is essentially as hard as counting them, but how would one go about proving or refuting such a claim? 22:15:07 int-e: you refute it by making determinant-signed counting easier 22:15:19 int-e: for #P at lesat 22:15:47 create matrix whose permanent is the count, then observe that the determinant has the same parity as the permanent, 22:15:52 and that you can solve the determinant fast 22:16:17 b_jonas: I know about permanents, but that just means that this is not a hard problem for parity-#SAT. 22:16:36 int-e: that's for #P versus (+)P 22:16:47 I've no clue about #SAT versus (+)SAT 22:16:59 there are some problems which obviously have an even number of solutions, but you can't easily determine how many there are 22:17:18 e.g. via exploiting a symmetry of the problem 22:17:35 ais523: or just adding a 2-valued variable that takes place in no constraint 22:17:42 but does that help? 22:17:49 we're concerned about the hardest problems 22:18:21 it doesn't matter if one specific input behaves differently 22:19:40 Ah, permanent is #P-complete. Hmm hmm. I should find a proof. 22:21:01 -!- pikhq has joined. 22:21:48 1979. Let's see. 22:23:42 int-e: yeah, it's so long after Euler, because for a very long time, nobody rediscovered complexity theory and SAT and Cook-Levin 22:25:18 (It's not clear, a priori, that such a reduction has to preserve the parity.) 22:31:12 ais523: interesting, what would a generalization of wang tiles be then? 22:32:22 imode: But Is It Art?? 22:33:04 the most direct would be generalizations to arbitrary tilings 22:33:13 BIIA? is more of a special case than a generalization 22:33:32 ais523: yeah, it works either way 22:34:08 you can simulate BIIA with Wang tiles, one tile per character cell, or backwards, Wang tiles with BIIA, each BIIA tile roughly same sized square shaped with different edges 22:34:14 so it's both 22:34:22 I think of it the latter way 22:34:25 right, they can each implement the other fairly directly 22:35:34 something _like_ wang tilings over general topologies are what I'm kind of wondering about. I think something like port graphs have something to say about this... 22:35:55 tilings rely on a background "plane" to do their thing. what happens if you get rid of that. 22:36:12 now you've got me thinking about Wang Penrose tiles 22:36:57 ais523: so different grid, only it's not quite a "grid"? 22:37:18 kinda yeah. 22:37:40 wang tiles but the arity requirements can vary per tile. 22:45:50 you can also tile the hyperbolic plane 22:46:08 right, tilings do generalize to non-Euclidean topologies 22:46:28 does the elliptic plane have infinite tilings? I'd expect them to all be finite 22:46:44 err, uniform tilings, that is 22:46:56 obviously you can create a non-uniform infinite tiling just by drawing lines at random 22:47:12 although it wouldn't be well-defined 22:47:23 http://int-e.eu/~bf3/tmp/moebius.html - spot the heptagons :) 22:48:38 -!- pikhq has quit (Read error: Connection reset by peer). 22:48:46 (I could make a version that has 4 regular pentagons meet at every vertex, hmm. Maybe some other time.) 22:50:51 -!- pikhq has joined. 22:53:21 int-e: https://commons.wikimedia.org/wiki/Category:Order-4_pentagonal_tiling ? 22:53:49 Non-Euclidean geometries are awkward though in that translations generate rotations. 22:54:15 b_jonas: yep 22:55:35 can you make a better drawing of what I'm trying to show on http://math.bme.hu/~ambrus/pu/randvoronoi.html ? 22:57:58 int-e: I happen to be listening to the soundtrack to HyperRogue at the moment, and that + the font in the title + the hyperbolic geometry in the link left me somewhat confused for a moment 23:00:02 hehe 23:00:29 Ruxor also has a web javascript thingy for showing a kind of Penrose aperiodic tiling too somewhere 23:00:56 Hmm, I'm lost... font in the title? 23:01:16 the font my browser uses to render the title on the page is the same font HyperRogue happens to use for all its in-game text, including titles 23:01:38 yeah, http://www.madore.org/~david/weblog/d.2018-04-24.2512.html 23:02:11 ais523: title on which page? my page? my page doesn't set the font, it leaves it as the client default 23:02:33 my page doesn't set a font either. http://roguetemple.com/z/hyper/ has an image in the headline. 23:02:41 b_jonas: the page int-e linked 23:02:58 I think my browser is probably set to use the same font as HyperRogue for titles if no font is specified by coincidence 23:03:14 hmm, let me check. I usually have font overrides disabled, so I don't see original fonts on webpages 23:03:23 font changes on webpages are abused more often than they're used well 23:03:30 I think it is, specifically, DejaVu Sans 23:03:35 and when they're used well, that's because of limitations of web infrastructure 23:04:33 yeah, default font 23:04:35 DejaVu Serif here (I may have selecte "serif" as a standard somewhere) 23:04:49 I think it might be interesting to see what the Web would look like if sites had no method of forcing layout at all 23:04:54 just semantic tags and the browser chooses layout 23:04:54 wait, int-e.eu ? is this a new domain? 23:05:05 new? 23:05:12 but it's not possible, people will always try to find a way to force layout 23:05:14 dunno, I don't recall seeing it 23:06:03 Well, there's not all that much there. But it should appear in the logs. I've had it for some years. 23:06:29 ais523: yeah. you can't have fancy scripting and images and canvases but no fonts. that'd just lead to webpages emulating fonts the slow way. 23:06:45 people used to force layout back before CSS was widespread… 23:07:01 ais523: yes, and table is still very useful, because CSS gets complicated 23:07:07 Almost 6 years by now. 23:07:19 before flex were supported, we definitely needed tables to do some sorts of layout on the web 23:07:23 b_jonas: not for layout, please don't do that as it makes it very hard for end users to make styling tweaks 23:07:23 no matter what the CSS guys said 23:07:31 and I think even now with flex supported, tables might still be useful 23:07:36 and for screen readers and the like to understand the page 23:07:39 but I could be wrong in that, I don't yet understand how the heck flex works 23:07:53 ais523: but some layouts are just impossible to write without tables 23:07:55 CSS flex is missing lots of features I'd like to use, but those features generally aren't possible with tables either 23:07:57 or very hard at least 23:09:33 I think that not only fonts, but also fancy images, scripts, canvas, and layout are also abused much. Forcing layout (and perhaps also fonts) are probably more useful for paged media than continuous anyways, I should think (but even for paged media the user may wish to override them). 23:09:45 there's a reason the bottom-right corner of The Waterfall Model Online isn't used for anything, for example 23:10:02 I have font overrides disabled on my web browser, although I would want to enable font overrides for SVG and PDF but disabled for HTML; but, it doesn't seems to do that. 23:10:23 (it has a few abuses of CSS Flex to automatically adapt to small screens, but the effects that that has on z-order makes that area unusable in a large-screen layout without making it show up on top of other text in a small-screen layout) 23:10:45 zzo38: also overlapping stuff, truncating stuff, and line-height. seriously, line-height! have you EVER seen an actually good use of line-height in a webpage, as opposed to in a non-HTML printed document? 23:11:23 one thing I dislike is the way that styles are seen as something for the site to provide, rather than something for the user to provide 23:11:33 but sites are forced into adding at least minimal styling because most default stylesheets are terrible 23:11:39 ais523: yeah, and CSS conditionals just aren't powerful enough yet to handle all the things you want for adapting to different heigths 23:11:46 ais523: Yes, although with suitable extensions the user can provide. 23:12:14 also many webpages abuse adapting to different screen sizes by changing their webpage on small sizes to hide important interface elements 23:12:17 I have ranted about that, right? 23:12:41 about that webpage that hides the password change option unless you view it in a wide browser window 23:13:06 b_jonas: Yes, that is true, too. When I design webpages there usually is no or minimal CSS, and rarely any images, but I use the accesskey attribute more often. Scripts are rare except for stuff which is used optionally (such as the MD5 calculation on my database of Magic: the Gathering cards; you can just as well use a different MD5 implementation if you want an account, too). 23:13:39 I rarely use CSS except to override the CSS to webpages that already have CSS. For webpages that do not have CSS it is rare to need to add any. 23:14:27 Do you think so? 23:15:30 Tables are useful for making a table or grid of data. 23:15:42 what I'd still like to find out is how to add both mathml and legacy html for non-mathml-capable browsers in a sane way 23:15:55 why doesn't mathml has a built-in way to add fallbacks, like img and script do? 23:16:20 I hate whoever designed them without a fallback 23:16:27 makes the whole thing worthless 23:16:28 b_jonas: Not sure whether those images can be improved. One thing that might be interesting to exhibit difference is to choose the color based on the area of each polyhedron... and perhaps the number of vertices. 23:16:58 int-e: they could be improved by rendering them more precisely and at a larger area. only my code is very simple and too slow to do that. 23:17:05 it wouldn't be hard to compute it properly 23:17:17 Oh are you brutally computing nearest neighbours? 23:17:28 but yes, choosing color well in some way is also a hard problem 23:17:32 int-e: yeah :-( 23:17:35 it was a quick experiment 23:18:05 b_jonas: Sorry that may have come across as far more judgemental than it should be... I'd probably do the same. 23:18:16 well, it's a good first pass to check how it works 23:18:26 but then I could optimize it if I spent some time on it 23:18:48 -!- AnotherTest has quit (Ping timeout: 250 seconds). 23:19:10 * int-e isn't really into computational geometry. 23:20:31 But actually... you can estimate the area based on pixels. Counting corners is harder :) 23:21:11 I don't think you should color just according to number of corners or area. You could compute it, but I don't think that's the output I want. 23:23:51 the idea is that in 2D you tend to have clusters of several small polygons, while in higher dimensions you actually get isolated small polygons much more frequently. 23:24:19 And that's something that may become visible when coloring by area. I may also be completely wrong. 23:24:58 int-e: yeah, but I'd prefer not to have adjacent areas with a similar color 23:25:10 my random coloring fails that 23:27:54 Ideally it should be a vector graphic and then one could actually draw edges... 23:28:19 But I'd be too lazy to actually do it. 23:32:42 int-e: you coudl do it, but you needn't. you can just optimize the pixel graphics properly. 23:47:47 -!- ais523 has quit (Quit: quit). 23:57:19 b_jonas: So the 1979 paper (Valiant, "The complexity of computing the permanent") is inconclusive about the relation between (+)SAT and #SAT. The reduction to permanent multiplies the number of solutions by some 4^e where e = Theta(|F|), F being the input which is a formula in CNF with no unit clauses.