←2018-09-09 2018-09-10 2018-09-11→ ↑2018 ↑all
00:05:51 -!- S_Gautam has joined.
00:09:33 -!- tromp has joined.
00:09:58 -!- oerjan has joined.
00:13:18 <oerjan> @tell wob_jonas <wob_jonas> Um, strangest so far, I must qualify. <-- i think the idiom "i've had the strangest ..." doesn't imply really being the strangest
00:13:18 <lambdabot> Consider it noted.
00:13:54 -!- tromp has quit (Ping timeout: 252 seconds).
00:27:42 <oerjan> `url %
00:27:43 <HackEso> https://hack.esolangs.org/repo/file/tip/%25
00:27:47 <oerjan> `url #
00:27:48 <HackEso> https://hack.esolangs.org/repo/file/tip/%23
00:30:46 <zzo38> I used the mknod command to make extra copies of /dev/null, but how commonly are you going to use such things? Sometimes it is helpful if different filenames are needed but still needing to be null, but probably usually you don't need such thing.
00:39:50 <zzo38> Do any television sets have a caption scrollback function?
00:57:27 -!- pimlu has quit (Ping timeout: 240 seconds).
01:02:41 -!- tromp has joined.
01:05:11 -!- pimlu has joined.
01:07:42 -!- tromp has quit (Ping timeout: 264 seconds).
01:40:08 -!- pimlu has quit (Ping timeout: 272 seconds).
01:47:16 -!- rain1 has joined.
02:11:37 -!- XorSwap has joined.
02:18:55 -!- user24 has joined.
02:21:52 -!- pimlu has joined.
02:23:23 -!- sebbu has quit (Read error: Connection reset by peer).
02:23:51 -!- sebbu has joined.
02:47:51 -!- tromp has joined.
02:52:42 -!- tromp has quit (Ping timeout: 264 seconds).
03:23:40 -!- pimlu has quit (Read error: Connection reset by peer).
03:24:03 -!- pimlu has joined.
03:28:48 -!- pimlu has quit (Ping timeout: 252 seconds).
03:30:54 -!- erkin has quit (Remote host closed the connection).
04:32:41 -!- tromp has joined.
04:35:26 -!- S_Gautam has quit (Quit: Connection closed for inactivity).
04:36:48 -!- tromp has quit (Ping timeout: 244 seconds).
04:44:19 <zzo38> I read in some book of history of chess the possibility to derive chess moves from a magic square, but I do not know how. Do you know if such thing is possible, and if so, how?
05:02:54 -!- XorSwap has quit (Ping timeout: 264 seconds).
05:16:53 -!- S_Gautam has joined.
05:17:40 -!- Vorpal has joined.
05:17:51 -!- Vorpal has quit (Changing host).
05:17:51 -!- Vorpal has joined.
05:22:32 -!- pimlu has joined.
05:25:49 -!- tromp has joined.
05:28:04 -!- variable has joined.
05:30:03 -!- tromp has quit (Ping timeout: 245 seconds).
05:55:03 -!- tromp has joined.
05:57:47 -!- user24 has quit (Quit: Leaving).
05:59:22 -!- tromp has quit (Ping timeout: 246 seconds).
06:02:34 -!- variable has quit (Ping timeout: 240 seconds).
06:03:45 -!- variable has joined.
06:10:13 -!- pimlu has quit (Ping timeout: 246 seconds).
06:38:33 -!- variable has quit (Ping timeout: 252 seconds).
06:39:00 -!- trout has joined.
06:47:21 -!- xkapastel has quit (Quit: Connection closed for inactivity).
06:47:34 -!- johnsonraj has joined.
06:48:11 -!- tromp has joined.
06:48:49 -!- johnsonraj has left.
06:53:00 -!- tromp has quit (Ping timeout: 272 seconds).
06:54:38 -!- oerjan has quit (Quit: Nite).
07:14:54 -!- trout has quit (Ping timeout: 264 seconds).
07:17:03 -!- variable has joined.
07:21:03 -!- variable has quit (Client Quit).
07:30:00 -!- AnotherTest has joined.
07:39:07 -!- AnotherTest has quit (Ping timeout: 250 seconds).
07:40:19 -!- tromp has joined.
07:44:38 -!- tromp has quit (Ping timeout: 245 seconds).
07:54:04 -!- tromp has joined.
08:03:14 -!- Phantom_Hoover has joined.
08:03:15 -!- Phantom_Hoover has quit (Changing host).
08:03:15 -!- Phantom_Hoover has joined.
08:08:50 -!- spiegelau has quit (Quit: leaving).
08:10:14 -!- AnotherTest has joined.
08:35:28 -!- S_Gautam has quit (Quit: Connection closed for inactivity).
08:55:53 -!- tromp has quit (Remote host closed the connection).
09:17:30 -!- S_Gautam has joined.
09:28:53 -!- tromp has joined.
09:33:07 -!- tromp has quit (Ping timeout: 240 seconds).
09:36:45 -!- wob_jonas has joined.
09:39:07 <wob_jonas> zzo38: chess and magic square => I haven't heard of such a thing, but tic-tac-toe can be played with a 3x3 magic square: instead of squares the players alternatingly play numbers from 1..9 inclusive that have not yet been played in the game, a player wins if that player has played any three numbers whose sum is exactly 15, and the game is draw if t
09:39:07 <wob_jonas> here's no valid move.
09:40:31 <wob_jonas> zzo38: I read that observation on tic tac toe from the book Csákány Béla, ''Diszkrét matematikai játékok'', but it might not be original to that
09:46:46 -!- tromp has joined.
09:58:53 -!- arseniiv has joined.
10:01:04 -!- linxsd has joined.
10:01:36 -!- linxsd has quit (Read error: Connection reset by peer).
10:12:19 <esowiki> [[Special:Log/newusers]] create * Ustin.fitc * New user account
10:14:54 <wob_jonas> oerjan: re browser url bar autocomplete, try to fiddle with the about:config settings containing urlbar.
10:15:11 <wob_jonas> there's like a dozen booleans there, you just have to guess the right combination
10:17:54 <esowiki> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=57543&oldid=57541 * Ustin.fitc * (+83)
10:23:10 <wob_jonas> lol. "Use of this site also constitutes acceptance of its <a ...>Terms of Service and Privacy Policies</a>, which are known to medical science as a cure for insomnia."
10:26:20 <Taneb> I could have done with that last night...
10:26:33 <Taneb> Went to bed at half ten, didn't get to sleep until after 1
10:26:39 <esowiki> [[Talk:NULL]] https://esolangs.org/w/index.php?diff=57544&oldid=8218 * Ustin.fitc * (+569) /* Is that "Hello World" number correct? */
11:28:13 <esowiki> [[Talk:NULL]] https://esolangs.org/w/index.php?diff=57545&oldid=57544 * Ustin.fitc * (+491)
12:06:36 -!- Phantom_Hoover has quit (Ping timeout: 252 seconds).
13:08:48 -!- sleepnap has joined.
13:33:36 -!- xkapastel has joined.
13:37:08 -!- S_Gautam has quit (Quit: Connection closed for inactivity).
14:15:37 -!- AnotherTest has quit (Ping timeout: 250 seconds).
14:43:37 <esowiki> [[ESOPUNK]] https://esolangs.org/w/index.php?diff=57546&oldid=57520 * Blacksilver * (-94) Change the spec for I/O.
14:44:09 <esowiki> [[ESOPUNK]] https://esolangs.org/w/index.php?diff=57547&oldid=57546 * Blacksilver * (-16) Moving the commands header to the subpage
14:44:25 <esowiki> [[ESOPUNK/Commands]] https://esolangs.org/w/index.php?diff=57548&oldid=57513 * Blacksilver * (+16)
14:45:14 <esowiki> [[ESOPUNK/Commands]] https://esolangs.org/w/index.php?diff=57549&oldid=57548 * Blacksilver * (-2) ADDI does not concatenate keywords.
14:51:06 -!- SopaXorzTaker has joined.
14:53:21 -!- erkin has joined.
15:05:10 -!- pimlu has joined.
15:15:21 -!- AnotherTest has joined.
15:18:06 -!- pimlu has quit (Ping timeout: 252 seconds).
15:39:52 -!- bradcomp has joined.
16:01:05 -!- wob_jonas has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client).
16:44:27 -!- Essadon has joined.
17:35:11 -!- Phantom_Hoover has joined.
17:35:12 -!- Phantom_Hoover has quit (Changing host).
17:35:12 -!- Phantom_Hoover has joined.
17:37:05 -!- ais523 has joined.
17:52:41 -!- wob_jonas has joined.
17:53:04 <wob_jonas> ohi
17:53:56 <wob_jonas> So, I understand why Wizards wants to put "Ravnica" in the set names, but don't you think that "Guilds of Ravnica" and "Ravnica Allegiance" are a bit confusing as set names because they're too similar to existing ones?
17:54:55 <wob_jonas> And yes, I know "allegiance" means something different from "alliance" (which the Guildpact is) but still.
17:57:38 <wob_jonas> I mean, can't they just find something _unique_ about that set that they can put in a concise set name? Those names would work for half of the previous six Ravnica sets.
17:58:24 <wob_jonas> "Guilds of Ravnica" -- Ravnica is returning. And, guess what, it's returning and showing that it has _guilds_. What a surprise.
18:00:18 <wob_jonas> Wizards is usually creative in giving card names
18:03:02 <wob_jonas> I mean, I know they have over 200 set names by now, but if they can find over 10000 unique English card names (does anyone happen to know if it's reached 20000 yet?), how can set names be harder?
18:05:22 <wob_jonas> Even with the fact that they may try to be more conservative, because a really bad set name could have a worse effect than a really bad card name.
18:15:28 <wob_jonas> Are there golf languages that try to support imperative style, as in, that have lots of built-ins to mutate mutable containers in place in various ways, as well as mutable global or scope-local variables, and control structures useful in such programs? This could be in addition or mixed with functional style in a less concise golf language like bur
18:15:29 <wob_jonas> lesque.
18:15:41 <wob_jonas> Which golf languages are like that?
18:17:10 <wob_jonas> Arthur Whitney's K could sort of count, but I'd like a bit more than that.
18:23:22 -!- Phantom_Hoover has quit (Ping timeout: 252 seconds).
18:25:53 -!- Phantom_Hoover has joined.
18:31:39 <Phantom_Hoover> wob_jonas, k basically doesn't support mutable objects at all
18:32:23 <Phantom_Hoover> mutable global variable bindings, sure, but that's very different
18:35:37 <wob_jonas> PH: doesn't it also have mutable local bindings, and... um, either mutable dictionaries passed by reference or cow-mutating operations on hashes? or something
18:35:57 <wob_jonas> yes, it's not really ideal, especially since it also has no closures, but still much better than what J has
18:36:21 <wob_jonas> anyway, I'd like something more imperative-centered than K
18:45:32 <Phantom_Hoover> i don't have an authoritative source or anything but my strong impression after working on it for a year is that there is absolutely no mutation of anything anywhere
18:45:55 <wob_jonas> ok
18:46:09 <Phantom_Hoover> except perhaps as a transparent abstraction
18:46:29 <wob_jonas> so it's, like, all reference-counted and you can only mutate the root namespace, like in J?
18:46:34 <Phantom_Hoover> yes
18:46:41 <wob_jonas> well, J has a flat namespace hierarchy, but still
18:46:46 <wob_jonas> you get the idea
18:46:49 <wob_jonas> ok
18:47:13 <Phantom_Hoover> well you can mutate function local variables and write while loops in functions
18:47:29 <Phantom_Hoover> but, like, from a performance/optimisation point of view you can't do anything that counts
18:47:37 <wob_jonas> ok
18:48:05 <wob_jonas> because the function-local variables are on a plain stack, right? no mutable closures?
18:48:14 <Phantom_Hoover> yep
18:48:18 <Phantom_Hoover> no closures at all
18:48:20 <wob_jonas> I still don't understand how K's lambdas and local variables actually work
18:48:47 <Phantom_Hoover> local variables are absolutely local to one function, if you want them passed down the stack they have to be passed explicitly as arguments
18:48:55 <Phantom_Hoover> it's easy to understand tbh because it's totally bare-bones
18:49:21 <wob_jonas> ok
18:49:49 -!- SopaXorzTaker has quit (Remote host closed the connection).
18:49:55 <Phantom_Hoover> k function objects are basically maximally stripped down for interpreter simplicity and the semantics reflect that
18:50:18 <wob_jonas> and how do verbs formed by binding like (+1) behave? can you assign them to a value? what happens if you try to write something like p:(+k) where k is not a number but a local variable?
18:50:42 <wob_jonas> because J at least has immutable closures formed by binding
18:50:51 <wob_jonas> (not by lambda expressions, only by binding)
18:52:15 <wob_jonas> (and... well, it's complicated. actually there's like fifty primitive ways to compose stuff, but the point is, they are always immutable, but they do effectively capture some constants)
18:53:28 <wob_jonas> (and how some of it works isn't explained well in tutorials, but I think I understand most of it from experiments, and could explain it, except for how namespaces work, where I only have guesses)
18:53:38 <Phantom_Hoover> partial application is just an object with a tag saying 'this is a partial application' and then a list of (function;arg1;arg2;etc...)
18:54:08 <Phantom_Hoover> so you can return it and bind it and whatever the same as any other object
18:55:13 <wob_jonas> PH: so you can create, at runtime without eval, an array containing multiple instances of syntactically the same binding but capturing different constants, like an array of length 1000 whose first element is (+0) and second element is (+1) and so on with code much shorter than 1000, and then shuffle that array and invoke any of the captures form th
18:55:14 <wob_jonas> at array?
18:55:40 <Phantom_Hoover> yeah
18:56:13 <wob_jonas> right. I sort of have the impression that such manipulations have a more easy syntax to write in K than in J, even if the power is effectively the same.
18:56:16 <Phantom_Hoover> q)(rand (+)@'til 10)5
18:56:16 <Phantom_Hoover> 13
18:56:36 <Phantom_Hoover> that's q not k ofc.
18:57:25 <Phantom_Hoover> (*1?+@'!10)5 in k
18:57:49 <wob_jonas> mind you, K has nice dictionaries, immutable according to what you said, but still, that's nice and not easy to emulate in J
18:58:08 <wob_jonas> not that I know how K dictionaries work, but still
18:59:14 <Phantom_Hoover> they're lists but indexed by arbitrary objects rather than ints, basically
18:59:25 <wob_jonas> they sound convenient
18:59:27 <Phantom_Hoover> except with some weird fuckery if you're stupid enough to use lists as your indices
18:59:28 <wob_jonas> for brevity
19:00:22 <Phantom_Hoover> one thing k does that maybe other APLoids don't (idk) is that function application, list indexing and dict lookup are the exact same operation
19:00:27 <wob_jonas> huh? but aren't most of the composite objects lists or dictionaries? that makes it sound like you can only use numbers or characters or dictionaries as keys
19:01:00 <Phantom_Hoover> well if you use atoms as keys dict lookup will automatically vectorise
19:01:19 <Phantom_Hoover> e.g. (`a`b`c!1 2 3) `a`b ==> 1 2
19:02:39 <Phantom_Hoover> you definitely *can* use composite objects as keys but you will prob. shoot yourself in the foot unless you do so in a regimented way
19:03:13 <wob_jonas> at one point I was thinking of a hypothetical extension of J that would support first-class mutable cells, but with refcounting only like in perl (this would be a small extension over what namespaces can already do, so needs little syntax, but a new basic atom type),
19:03:24 <Phantom_Hoover> lmao right check this shit out:
19:03:37 <Phantom_Hoover> q)((`d`e;`a;`b;`c)!1 2 3 4)`a`b
19:03:37 <Phantom_Hoover> 0N
19:03:51 <Phantom_Hoover> q)((`a;`b;`c;`d`e)!1 2 3 4)`a`b
19:03:51 <Phantom_Hoover> 1 2
19:03:58 <Phantom_Hoover> q)((`a;`b;`c;`d`e)!1 2 3 4)`d`e
19:03:58 <Phantom_Hoover> 0N 0N
19:04:04 <wob_jonas> and also a first-class lambda expressions (this one needs a new syntax rule that makes the syntax impractical to describe in the terms the J dictionary uses, but can still be made fully backwards compatible, and also matching the spirit)
19:04:07 <Phantom_Hoover> q)((`d`e;`a;`b;`c)!1 2 3 4)`d`e
19:04:07 <Phantom_Hoover> 1
19:04:24 <Phantom_Hoover> like many edge-cases in k it basically comes down to pure guesswork
19:05:39 <wob_jonas> Phantom_Hoover: I don't really understand K to know what's you're trying there. (`a;`b;`c;`d`e) makes a list whose last element is a list, the first four elements are symbols. But what does ! do there?
19:08:24 <wob_jonas> let me check the manual...
19:12:50 <wob_jonas> um... I don't understand even after checking the manual. It seems as if you're calling ! dyadically with the left argument (`d`e;`a;`b;`c) and the right argument (1 2 3 4) . But the K manual seems to imply that that's not defined, ! is only defined if either the left or the right argument is a number atom.
19:12:53 <wob_jonas> Is that some Q addition?
19:13:00 <wob_jonas> Or am I parsing something wrong?
19:20:38 <Phantom_Hoover> wob_jonas, list!list creates a dictionary
19:20:46 <Phantom_Hoover> with the left list as the keys and the right as the values
19:20:51 <wob_jonas> ah
19:20:55 <wob_jonas> so is that a Q addition?
19:21:25 <wob_jonas> I don't know where the full Q manuals are, if they exist
19:21:36 <wob_jonas> maybe they're not available for free
19:21:39 <Phantom_Hoover> no it's k
19:21:47 <wob_jonas> hmm
19:21:52 <Phantom_Hoover> q docs are all here http://code.kx.com/q/
19:22:09 <Phantom_Hoover> note that k3, k4 and k5/k6 are all significantly different languages
19:22:43 <Phantom_Hoover> and k4 is the undocumented implementation language for q (but all the operators are the same, at least in their 2-argument form)
19:23:02 <wob_jonas> that's bad, because I'm looking at this old short K2 reference manual
19:24:34 <wob_jonas> oh, so in Q, (.) or (@) aren't the most overloaded verbs, (!) is? interesting
19:26:49 <wob_jonas> wow. that looks... historically related to K, but very different at the same time
19:26:57 <wob_jonas> like, it probably evolved in steps from K
19:27:11 <wob_jonas> but the end result is hard to recognize
19:29:54 <Phantom_Hoover> i think ? or $ are the most overloaded when you factor in the triadic and tetradic forms and all the per-type overloads
19:30:15 <Phantom_Hoover> and \ technically isn't a verb but does a ridiculous variety of shit
19:31:16 <wob_jonas> also, Q looks like a bigger and more complicated language than K
19:31:24 <wob_jonas> with lots more builtins
19:31:44 <Phantom_Hoover> yeah i think the additions mostly fall under
19:32:18 <Phantom_Hoover> 1) bunch of verbs which are predefined k functions
19:33:00 <Phantom_Hoover> 2) rudimentary standard library in the .Q namespace
19:33:10 <Phantom_Hoover> 3) q-sql syntax for table manipulation
19:35:47 <wob_jonas> perhaps Q's creators felt nostalgy for some old APLs that were full of special cases in all sorts of orthogonal directions, and wanted to recreate that general feelintg
19:37:08 <Phantom_Hoover> i get the impression k has always made heavy use of overloading operators to do completely orthogonal things based on type
19:38:20 <wob_jonas> and either it makes a worse job hiding that complexity than J, or I absorbed how crazy J actually is (despite how the manuals try to imply it's simple and regular) slowly over years, and K presents much of it naked in a manual
19:39:47 <Phantom_Hoover> when i look at j docs i'm struck by the giant zoo of operators
19:40:32 <Phantom_Hoover> vs k which only really has the ones above the number keys
19:42:03 <wob_jonas> I guess I shouldn't be surprised. I've seen other programming language evovle towards being more complex over 15 or 20 years, even if they start out as trying to be simple.
19:42:49 <wob_jonas> I find J ugly too, but _not_ because of the zoo of operators you first see, but because of the stuff that's more hidden
19:42:56 <ais523> wob_jonas: most golf languages are stack-based, they tend to be bad at named mutable globals (rather, you just keep changing the same stack slot repeatedly)
19:43:25 <ais523> the more advanced ones often use some sort of SSA, which is good for writing imperative code despite the lack of named globals
19:44:03 <wob_jonas> I mean, the zoo of operators doesn't look too bad if you just think of it as a prelude or core library
19:44:10 <wob_jonas> with strange names
19:46:11 <Phantom_Hoover> yeah
19:46:30 <Phantom_Hoover> well k also very much does not have j's love for pointfree style
19:46:40 <wob_jonas> ais523: what is "SSA"?
19:46:47 <Phantom_Hoover> single static assignment
19:46:50 <ais523> single static assignment
19:46:56 <Phantom_Hoover> the wikipedia article is pretty good, worth reading
19:47:04 <ais523> it's imperative-ish but each variable gets a new name each time you assign to it
19:47:21 <Phantom_Hoover> also fun fact: go didn't have it for the first few years of its existence despite it being standard practice for compilers for decades
19:47:37 <Phantom_Hoover> because go really was written by idiots whose brains are stuck in 1979
19:47:52 <ais523> it makes imperative programs much easier to read about
19:47:54 <ais523> *reason about
19:48:03 <ais523> as you can effectively talk about a particular "version of a variable"
19:48:18 <ais523> but it's a pain to write manually so it's normally only seen in compiler backends
19:50:21 <wob_jonas> I see
19:50:57 <ais523> I guess another way to think about it is that SSA does for data what continuation passing style does for control flow
19:55:03 <wob_jonas> right. I more or less know what that is, because mathematics proofs are usually written with SSA syntax, and I've seen quite a few of those, I just didn't know the name.
19:56:25 <int-e> "proofs are usually written with SSA syntax" - no?
19:56:28 <wob_jonas> I mean, technically you have to be careful with that, to make sure there's no dependence loops, and everything you define in crazy infinite loop form can be translated to proper transfinite induction and transfinite recursion and stuff
19:57:21 <int-e> This really doesn't match my experience. Not even in a formalization context.
20:11:42 <ais523> int-e: well proofs tend not to repeatedly redefine the same term to mean something new
20:13:59 <wob_jonas> ais523: yes, although they can shadow names by using the same letter for an entirely new variable when it doesn't cause a confusion, assign values localized into a foreach-exists arbitrarily nested scope, or define indexed sequences recursively as long as there's no dependence loops to translate an imperative loop without reassigning
20:14:00 <int-e> True, but IME they most of the text is actually about establishing properties and relationships. The SSA is an almost insignificant fragment.
20:15:02 * int-e shrugs
20:15:37 <wob_jonas> int-e: we were probably reading the same general style of mathematics, but viewing it from a different angle
20:16:11 <wob_jonas> have different intuitions of the same thing
21:27:13 -!- bradcomp has quit (Ping timeout: 246 seconds).
21:36:57 -!- sleepnap has left.
21:38:54 -!- tromp has quit (Ping timeout: 264 seconds).
21:56:40 -!- Phantom_Hoover has quit (Remote host closed the connection).
21:57:15 -!- tromp has joined.
21:59:23 -!- Phantom_Hoover has joined.
22:05:28 -!- Vorpal has quit (Ping timeout: 245 seconds).
22:10:41 -!- Vorpal has joined.
22:10:41 -!- Vorpal has quit (Changing host).
22:10:41 -!- Vorpal has joined.
22:10:45 -!- tromp has quit.
22:14:51 -!- rainbowfossil has joined.
22:14:54 -!- AnotherTest has quit (Ping timeout: 264 seconds).
22:24:19 -!- tromp has joined.
22:26:28 -!- tromp has quit (Remote host closed the connection).
22:35:25 -!- rainbowfossil has quit (Quit: Page closed).
23:19:46 -!- wob_jonas has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client).
23:56:40 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
←2018-09-09 2018-09-10 2018-09-11→ ↑2018 ↑all