2023-09-14 00:00:13 0 or -1 traditionally 2023-09-14 00:06:17 I mean, lots of my professors stressed the importance of checking unis, using units working out as a way of having confidence in your answer, and that kind of thing. Before finding that paper I'd have told you that's what dimensional analysis *was*. But it turns out that hardly scratches the surface. 2023-09-14 00:06:52 You can simplify the numerical complexity of a problem (for simulation purposes and what not) by systematically reformulating in terms of dimensionless parameters, etc. I was just blown away. 2023-09-14 00:08:18 xelxebar: You ever hear of bond graphs? 2023-09-14 00:42:55 Never heard of them! Related at all to dimensional analysis? 2023-09-14 00:58:52 super dimensional analysis, meanwhile, looks into the properties of Macross fortresses 2023-09-14 01:46:22 Not specifically, but... a little. bond graphs are "domain independent" method for expressing the dynamical equations of a system. They're particularly good when you have pieces in a system from different areas of technology, like electrical circuit mixed with pneumatics mixed with mechanical stuff etc. 2023-09-14 01:47:02 The idea is that you don't have voltage and current, force and motion, etc. You have "through variables" and "across variables." Through*across is always power, regardless of the underlying tech. 2023-09-14 01:47:37 It's really just the usual business of writing down differential equations from a model of a system, just with care given to not 'focus in' on a particular type of system. 2023-09-14 01:48:02 The dimensional analysis discussion made me think of it, since it's a sort of "specific units independent" thing. 2023-09-14 01:48:58 Voltage is an across variable, so is pressure. Current is a through variable, so is flow rate. 2023-09-14 01:49:42 I've never actually done much with it, but I learned about it from a colleague in the UT Austin research lab I worked in in the early 1990's. 2023-09-14 01:50:08 I just always thought it seemed like a cool idea. 2023-09-14 02:30:42 Wait. You're located in Texas? I grew up in Corpus Christi. 2023-09-14 02:51:54 Oh, cool. 2023-09-14 02:52:24 Yes, I live a bit west of the metro Houston area. Technically in a little town called Fulshear, but the other nearby small town Katy is a lot more well known. 2023-09-14 02:52:40 I lived in Austin from 1981 through 1996. 2023-09-14 02:53:00 Went there in 1981 to go to school. 2023-09-14 02:53:06 I grew up in Alabama. 2023-09-14 02:57:41 It's been several years since I've been down to Corpus. 2023-09-14 02:58:01 Long enough drive to "notice," you know? 2023-09-14 02:59:15 Ugh. You know, I actually do see Norman Wildberger's points re: his concerns about irrationals. But some aspects of it seems overly pedantic to me. 2023-09-14 03:00:02 He takes hte position that not just ANY quadratic ax^2 + bx + c = 0 can be factored into (x-r1)(x-r2)=0 form, because r1 and r2 don't necessarily exist (i.e., if they're irrational). 2023-09-14 03:00:17 But... I can get as close them as I want to, without limit. 2023-09-14 03:01:03 I think he should just propose that we replace ax^2+bx+c=0 with |ax^2+bx+c| Because you can ALWAYS find rational solutions that satisfy that. 2023-09-14 03:01:47 That makes it a completely rigorous problem AND still leaves you able to find solutions to any equation. 2023-09-14 03:04:12 I mean, that's basically how we approach it anyway. Because if r1 and r2 are irratoinal then you never write them down and you never store them in your computer's RAM. 2023-09-14 03:04:25 We're "effectively" solving the epsilon problem as it is. 2023-09-14 03:04:51 So this would just be saying "state the problem the way we actually can solve it." Instead of leaving to just kind of hum and look the other way. 2023-09-14 03:05:02 leaving "us" 2023-09-14 03:13:17 is there a common forth word to select from two values? 2023-09-14 03:13:40 : FOO IF SWAP THEN DROP ; 2023-09-14 03:25:15 MrMobius: in 2016, Zarutian suggested a :? word: : :? ( conseq altern bool ) NOT IF SWAP THEN DROP ; 2023-09-14 03:26:15 that's the only thing I see in the logs matching this 2023-09-14 03:29:15 MAX and MIN usually are around as special cases of that. 2023-09-14 03:30:59 That seems like something easy to do if you code a word that "contains" your criterion. Somehow passing a generic criterion in to a general purpose word seems harder. 2023-09-14 03:36:03 Oh, I switched my phone's calculator ap from WP34S to Plus42. 2023-09-14 03:36:44 https://www.thomasokken.com/plus42/images/plus42-iphone.png 2023-09-14 04:17:53 KipIngram: Dang. My parents now live in Huntsville, which sounds like it mike be close to you. 2023-09-14 04:30:22 Yes, Huntsville is an hour or so north on I45. One of my daughters went to college there. 2023-09-14 04:30:59 She's in grad school in North Carolina now. 2023-09-14 05:16:31 That's nuts. My mom worked for Sam Houston for 10+ years in admissions. Not unlikely that your daughter spoke with her. 2023-09-14 05:19:03 small something something world something after all 2023-09-14 06:02:03 Wow - that really is a small world. 2023-09-14 10:19:10 Huh cannot ssh from work anymore 2023-09-14 10:19:22 They're onto me lol 2023-09-14 10:27:05 Oh no looks like my VM just lost internet/interest 2023-09-14 10:27:14 (work VM, not oracle) 2023-09-14 11:49:14 MrMobius: mux is one such word, it is a bit more generic 2023-09-14 11:49:54 : mux dup >r and swap r> invert and or ; ( x1 x2 mask -- x ) 2023-09-14 11:50:45 Short for "multiplex", based off of the operator 2023-09-14 11:50:53 You can define min/max with them 2023-09-14 11:51:27 2dup mux 2023-09-14 12:21:04 I think someone called is CHOOSE 2023-09-14 12:21:07 it* 2023-09-14 12:21:17 I think this same question gets asked at least once a year as well 2023-09-14 12:41:02 dup is ( x1 -- x1 x1 ) and 2dup is ( x1 x2 -- x1 x2 x1 x2 ), in my forth i'm adding dup2 which is ( x1 -- x1 x1 x1 ) and dup3 which is ( x1 -- x1 x1 x1 x1 ) ...with this notation also 2dup2 would be contemplated, thoughts? 2023-09-14 13:09:26 Depending on how true/false are represented, PICK might get you part way to a choose. 2023-09-14 13:10:30 : CHOOSE ( x y cond -- x|y ) PICK NIP NIP ; 2023-09-14 13:18:19 CHOOSE or CHOICE 2023-09-14 13:33:01 Tangential, but IMHO, some traditional Forth naming choices are kind of clunky. Like `... STATE IF ... THEN` doesn't read particularly well. 2023-09-14 13:53:21 xelxebar: well, you can change that 2023-09-14 13:53:29 xelxebar: how would you like it to read? 2023-09-14 13:54:24 You mean Forth Inc, because fig Forths used ENDIF 2023-09-14 13:54:37 Precisely because they thought it read weird 2023-09-14 13:54:45 KipIngram: re solving for it's vitally important to know how to work out things like Ohm's Law 2023-09-14 13:55:02 I personally think it makes sense as long as you understand it's "THEN" in a different semantic meaning to "THEN" in most if statements 2023-09-14 13:55:05 it's even more important to know what you can get away with 2023-09-14 13:56:58 veltas: Well, I was mostly thinking STATE IF, more than THEN. Wouldn't a dumb rename to COMPILING? or whatnot would make sense? 2023-09-14 14:18:04 xelxebar: Or IMM or something, I suppose you're right that STATE's quite generic 2023-09-14 14:18:21 But you can always hide STATE if you want to use the name for something else 2023-09-14 16:58:12 xelxebar: COMPILING would make more sense given what STATE actually is used for. 2023-09-14 16:59:25 But STATE has been in Forth for so long that everyone is just "used to it" - it's absorbed its meaning pretty thoroughly. 2023-09-14 20:47:37 Oh, earlier I suggested s[i] as a way for an APL expression to access the Forth stack. Along with that, I might use f[i] to access specific slots in an open stack frame. Two slightly different but quite similar ideas. 2023-09-14 21:59:12 dup is ( x1 -- x1 x1 ) and 2dup is ( x1 x2 -- x1 x2 x1 x2 ), in my forth i'm adding dup2 which is ( x1 -- x1 x1 x1 ) and dup3 which is ( x1 -- x1 x1 x1 x1 ) ...with this notation i was thinking 2dup2 possible, do you think its clear? 2023-09-14 22:01:42 is that something you do enough to need a core word for? 2023-09-14 22:03:51 well, yes 2023-09-14 22:03:57 otherwise i didn't 2023-09-14 22:04:14 i have functions that pushes 2 things into the stack, so drop2 is very usefsul instead of drop drop 2023-09-14 22:05:09 sorry, i meant dup, not drop 2023-09-14 22:21:31 I think it's very much an individual call whether to have double precision int words. 2023-09-14 22:21:53 Made a lot of sense in 16-bit systems, and a little even in 32-bit systems. I've never seen the need in 64-bit systems. 2023-09-14 22:22:00 But... ymmv. 2023-09-14 23:06:06 KipIngram: Good point about the vectors like 1 2 3. Are you familiar with strand notation? It's a kind of generalization. Back-to-back expressions create an vector with those elements, e.g. (1 2 3) (4 5 6) or 'APL' 'in' 'Forth' or even (1 2 3) 'APL'. 2023-09-14 23:07:43 J doesn't have strand notation and recognizes strings of space-separated numbers as a single *token*. 2023-09-14 23:08:43 BQN (https://mlochbaum.github.io/BQN/) decides to make space always mean "function application" and offers a couple different decorations for array notation. 2023-09-14 23:10:12 https://mlochbaum.github.io/BQN/doc/arrayrepr.html#array-literals 2023-09-14 23:11:04 That's probably a relatively tractable problem. 2023-09-14 23:11:23 The bigger issue, as you have mentioned a couple times, seems to be infix notation. 2023-09-14 23:12:54 Removing infix like you mention is way too drastic, I think. It would really disrupt the way APL expressions read. 2023-09-14 23:14:14 What about going the other way? Forth syntax is so regular that it's probably easier to have a "Forth mode" inside APL. 2023-09-14 23:15:32 If one could stomache Polish Notation instead of RPN, then a "put array elements on stack" operation, say ARR->STK, might work 2023-09-14 23:17:05 Visually, it'd be something like this: ... R@ >R DUP ARR->STK (+/÷≢) ⍳100 2023-09-14 23:18:17 The RPN to PN switch is in Forth is equally disorienting, though. It's like we're bumping up against the problem of mixed RTL and LTR orthographies.