00:07:29 -!- augur has joined.
00:09:52 -!- sleffy has joined.
00:11:57 -!- augur has quit (Ping timeout: 252 seconds).
00:53:41 -!- Phantom_Hoover has quit (Remote host closed the connection).
01:01:58 -!- augur has joined.
01:06:09 -!- augur has quit (Ping timeout: 248 seconds).
01:09:20 -!- sprocklem has joined.
01:20:41 -!- sleffy has quit (Ping timeout: 256 seconds).
01:56:22 -!- augur has joined.
02:00:33 -!- augur has quit (Ping timeout: 240 seconds).
02:05:05 -!- sleffy has joined.
02:24:33 -!- sprocklem has quit (Ping timeout: 248 seconds).
02:26:40 -!- sprocklem has joined.
02:28:03 -!- variable has joined.
02:32:04 -!- imode has quit (Quit: WeeChat 2.0.1).
02:32:28 -!- imode has joined.
02:45:00 -!- wob_jonas has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client).
02:45:21 -!- variable has quit (Quit: /dev/null is full).
02:46:26 -!- augur has joined.
02:48:52 -!- augur has quit (Remote host closed the connection).
02:53:07 <imode> why are there no usable languages implemented using a queue?
02:53:19 <imode> stacks have had it too good for too long.
02:58:08 <ais523> imode: usable as in not a tarpit?
02:58:32 <imode> something like a queue-based forth.
02:59:09 <ais523> I think it's because queue-based languages tend to be inherently O(n) slower than other languages
02:59:22 <ais523> because once you put something into the queue you have to wait for it to get back to the front before you can use it
03:00:03 <imode> well, you encounter some of the same problems with stacks via stack juggling.
03:00:25 <imode> and doing deep peeks into the queue is just a matter of shifting.
03:00:29 <ais523> the thing about stacks, though, is that they're good for temporaries
03:00:43 <ais523> that said, I've been considering the idea of using a /call/ queue rather than a call stack
03:00:51 <imode> telnet into imode.tech, port 1338.
03:01:06 <ais523> it tends to lead to a naturally concurrent language, as opposed to call stacks which tend to lead to sequential languages
03:01:06 <imode> (the UI may be broken.)
03:01:54 <imode> this is a prefix expression evaluator.
03:02:07 -!- sleffy has quit (Ping timeout: 256 seconds).
03:02:23 <imode> you can do simple things like `+ 1 + 2 3`. repeatedly hitting enter steps through the queue and performs operations.
03:02:48 <imode> you can also do definitions. `define square * dup end`.
03:07:12 <ais523> how do definitions work recursively?
03:07:20 <ais523> that's obvious with a stack, less so with a queue
03:07:47 <imode> if you do something like `square 4`, the queue turns into `4 * dup`.
03:08:31 <imode> try defining something recursive! there's no conditionals (yet), so you can't define useful things..
03:10:09 <ais523> well, not even recusion
03:10:11 <ais523> just one function calling another
03:11:04 <imode> any definition gets its content enqueued.
03:11:56 <imode> so if you have `define foo bar end` and `define bar foo end`, and you type `foo` and hit enter, it'll be replaced with `bar`. likewise, `bar` will be replaced with `foo`. it'll oscillate back and forth.
03:12:31 <ais523> this isn't really a queue-based language
03:12:41 <ais523> it's basically lambda calculus with a weird evaluation roder
03:12:58 <ais523> as operations stay unevaluated unless all their arguments are fully evaluated
03:12:59 <imode> it's definitely a queue-based language. everything is held in a queue.
03:13:39 -!- augur has joined.
03:13:52 <ais523> it's basically a circular string on which rewrite rules run
03:14:19 <ais523> whereas lambda calculus can be seen as a string on which rewrite rules run
03:14:47 <imode> it's definitely the first thing. I don't see how else you'd interpret "queue-based language" aside from... everything's in a queue.
03:15:13 <ais523> imode: I'd expect its nature as a queue to have some impact on the semantics of the language
03:15:29 <ais523> you could literally evaluate this language in a different order other than circular scan and get the same result
03:15:59 <imode> ...you could evaluate any RPN language in a different order and get the same result, I don't see your point
03:16:25 <ais523> here, imagine evaluating the language like this: pick a random instance of an operator, see if it has the right number of operands to its right (wrapping round), if it does evaluate it, if it doesn't reroll
03:16:34 <ais523> I believe that's 100% equivalent
03:16:46 <ais523> likewise, RPN (the notation) is not inherently tied to a stack (the data structure)
03:16:53 <ais523> it's a common way to implement it because it's efficient
03:17:10 <imode> rrrrright, as opposed to rewrite rules.
03:17:25 <ais523> but barring metaprogramming facilities like Underload has, you could implement it using rewrite rules or translation to imperative code or even a queue
03:18:01 <imode> also, wait, you just described what my interpreter does.
03:18:18 -!- augur has quit (Ping timeout: 268 seconds).
03:18:30 <imode> like, verbatim. try evaluating `+ + 1 2 + 3 4`. type it, then hit enter a couple times.
03:18:43 <ais523> imode: yes, what you have is basically a polish notation evaluator that uses a queue to determine the eval order
03:19:00 <imode> yyyyyes. how else would you really define a queue-based language.
03:19:09 <imode> in fact, how else would you really define a stack-based language?
03:19:58 <imode> forths (and really any RPN languages) kind of imply a stack as an eval order. both of these things imply some kind of rewrite mechanism. again, I don't see your point.
03:20:26 <ais523> normally you say the language is inherently stack-based when you go beyond what you can do with just rewrite rules for defining the semantics
03:20:32 <ais523> although it's quite hard to find an operation that requires that
03:20:44 <imode> roll comes to mind.
03:20:54 <ais523> Underload works entirely with rewrite rules, for example (but tends to cause a "virtual stack" to come into being of operands collecting at the left hand side of the program)
03:21:05 <ais523> even roll can be defined as a multiple-in multiple-out operator
03:21:07 <imode> I have `get` in my language.
03:22:07 <imode> so by your logic, RPN langs aren't really stack-oriented languages because there aren't, by default ("canonically, we'll say), operations that explicitly rely on the idea of an underlying stack.
03:22:21 <imode> what would you do to make them actually stack-oriented?
03:23:02 <ais523> I think something like Befunge is inherently stack-oriented because the operands must, by the semantics of the language, be calculated (and thus enstacked) before the operators are even known
03:23:23 <imode> so the idea of a hidden stack that's not reflected in the syntax?
03:23:53 <ais523> from another point of view, C is inherently stack-oriented, despite not mentioning a stack anywhere in the spec, because the way that functions work inherently requires a call stack to exist
03:24:11 <imode> ahhh. I get where you're going now.
03:24:37 <imode> I guess that's just a division of rewrite-based languages and things where rewrite rules don't really fit.
03:27:14 <imode> so, a call queue...
03:28:05 <imode> if you're in a procedure, and you call other procedures, do they just get added to the call queue and then called at return from said procedure?
03:28:19 <imode> doesn't that just reduce to something like what I have?
03:29:17 <imode> I mean imagine something built up like `foo(); bar(); baz(); return;`. when that return hits, `foo` is called, then `bar`, then `baz`. but `foo` can also enqueue stuff that will be executed after `baz`.
03:33:17 <imode> ais523: any ideas other than that? those are the assumptions I had when I walked into this.
03:34:43 <ais523> well, my language with a call queue was trigger-based
03:35:02 <ais523> procedures ran automatically when variables gained particular values
03:35:16 <ais523> but a procedure couldn't trigger twice if there was already a copy pending
03:54:32 -!- augur has joined.
03:59:10 -!- augur has quit (Ping timeout: 264 seconds).
04:18:29 -!- heroux has quit (Ping timeout: 240 seconds).
04:19:06 -!- heroux has joined.
04:21:36 -!- ais523 has quit (Quit: quit).
04:25:44 -!- doesthiswork has joined.
05:09:30 -!- augur has joined.
06:27:03 -!- xkapastel has quit (Quit: Connection closed for inactivity).
06:56:01 -!- augur has quit (Ping timeout: 252 seconds).
07:39:45 -!- doesthiswork has quit (Quit: Leaving.).
07:53:20 -!- sleffy has joined.
08:08:45 -!- sleffy has quit (Ping timeout: 268 seconds).
08:15:02 -!- variable has joined.
10:03:49 -!- imode has quit (Ping timeout: 260 seconds).
10:44:38 <esowiki> [[Special:Log/newusers]] create * Brokenlagorithm * New user account
10:56:35 <esowiki> [[Esolang:Introduce yourself]] M https://esolangs.org/w/index.php?diff=54310&oldid=54305 * Brokenlagorithm * (+106)
10:58:54 -!- AnotherTest has joined.
14:00:31 -!- doesthiswork has joined.
15:02:58 -!- HereToAnnoy has joined.
15:14:34 -!- HereToAnnoy has quit (Ping timeout: 260 seconds).
15:33:29 -!- Sgeo_ has joined.
15:35:36 -!- Sgeo has quit (Ping timeout: 245 seconds).
16:11:46 -!- doesthiswork has quit (Ping timeout: 264 seconds).
16:25:06 -!- xkapastel has joined.
16:26:13 -!- incomprehensibly has quit (Read error: Connection reset by peer).
16:26:35 -!- incomprehensibly has joined.
17:20:45 -!- imode has joined.
17:55:22 -!- ais523 has joined.
18:17:54 -!- ais523 has quit (Quit: sorry for my connection).
18:18:06 -!- ais523 has joined.
18:21:07 -!- danieljabailey has joined.
18:36:21 -!- ais523 has quit (Quit: sorry for my connection).
18:36:34 -!- ais523 has joined.
19:12:01 -!- sprocklem has quit (Ping timeout: 248 seconds).
19:14:01 -!- sprocklem has joined.
19:36:12 <esowiki> [[Special:Log/newusers]] create * Unfixable * New user account
19:41:33 -!- Sgeo__ has joined.
19:43:59 -!- Sgeo_ has quit (Ping timeout: 256 seconds).
19:54:45 -!- variable has quit (Quit: Found 1 in /dev/zero).
19:55:06 -!- laerling has joined.
19:55:27 -!- sprocklem has quit (Ping timeout: 268 seconds).
19:57:21 -!- sprocklem has joined.
20:06:23 -!- sprocklem has quit (Ping timeout: 276 seconds).
20:07:45 -!- sprocklem has joined.
20:17:57 -!- sprocklem has quit (Ping timeout: 240 seconds).
20:20:04 -!- sprocklem has joined.
20:42:41 -!- wob_jonas has joined.
20:43:56 <wob_jonas> On ebay, after submit the feedback form on an item I bought, the site just asked me "Do you want to sell another item?". I never sold anything on ebay. This is such a nonsequitur.
20:54:17 -!- laerling has quit (Ping timeout: 255 seconds).
20:55:29 -!- erkin has joined.
21:00:53 <int-e> wob_jonas: well, at least they didn't ask whethet you've stopped beating your wife...
21:09:04 <shachaf> they're suggesting that your feedback is implausible and they don't buy it hth
21:09:58 -!- sprocklem has quit (Ping timeout: 264 seconds).
21:14:16 -!- augur has joined.
21:32:09 -!- grumble has quit (Read error: Connection reset by peer).
21:34:55 -!- grumble has joined.
21:40:45 -!- augur has quit (Remote host closed the connection).
21:53:27 -!- variable has joined.
22:06:11 <HackEgo> `learn creates a wisdom entry and tries to guess which word is the key. Syntax (case insensitive): `learn [a|an|the] <keyword>[s][punctuation] [...]
22:06:13 <HackEgo> A study is mostly useless until backed up by further studies. See studies.
22:06:34 <HackEgo> Studies show lots of things. Nobody reads them, though. Also: this study contradicts this other study. These two studies agree, but were secretly paid for by the same company.
22:09:25 <HackEgo> Mario is a classic PSPACE-complete problem invented by Nintendo.
22:10:35 <HackEgo> 1/3:false//false is a very old stack-based language. For an authentic experience, run it on an Amiga. It's also not true. \ fsm//An FSM is a state machine with noodly appendages. \ blæg//Blæg is a color that cannot exist under the current understanding of physics. It is used on the #esoteric flag, along with ultraviolet and whatever is conv
22:10:43 <HackEgo> 2/3:enient. It is a nullary color, meaning that it can be mixed with itself to produce the primary colors. \ norway//Norway is the suburb capital of Sweden. It's where the Nobel Peace Prize is announced. It's a warm, dry place, at least compared to Québec. \ remavas//Remavas is a revolution in human biology. He's cofriends with oerjan. He's ap
22:10:45 <HackEgo> 3/3:parently from Frankfurt, Germany, but he's actually from Mars. His typing skills are so incredibly bad, some say he writes in a different orthography designed for a different language.
22:26:21 -!- erkin has quit (Quit: Ouch! Got SIGIRL, dying...).
22:31:17 -!- sleffy has joined.
22:43:31 -!- sprocklem has joined.
22:43:57 -!- ais523 has quit (Remote host closed the connection).
22:44:57 -!- digitalcold has quit (Ping timeout: 240 seconds).
22:45:06 -!- digitalcold has joined.
22:56:03 <HackEgo> Mathematical tanebventions include D-modules, Chu spaces, the torus, Stephen Wolfram, Klein bottles, string diagrams, the reals, Lambek's lemma, Curry's paradox, Stone spaces, algebraic geometry, locales, and histograms.
22:56:36 <HackEgo> Histograms are diagrams showing histamine levels. Taneb invented them.
22:56:41 <shachaf> `slwd tanebventions: maths//s/ms,/& linear logic,/
22:56:49 <shachaf> `slwd tanebventions: math//s/ms,/& linear logic,/
22:56:51 <HackEgo> tanebventions: math//Mathematical tanebventions include D-modules, Chu spaces, the torus, Stephen Wolfram, Klein bottles, string diagrams, linear logic, the reals, Lambek's lemma, Curry's paradox, Stone spaces, algebraic geometry, locales, and histograms.
22:57:16 <shachaf> Oh, I guess Taneb dually invented antihistograms.
22:57:26 <int-e> . o O ( histograms are diagrams often found in ancient caves? )
22:57:48 <shachaf> Aren't those prehistograms?
23:10:07 <shachaf> https://twitter.com/stevecheckoway/status/972540498282975234
23:11:04 -!- wob_jonas has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client).
23:38:20 -!- AnotherTest has quit (Ping timeout: 256 seconds).