2024-11-24 07:00:03 been rethinking the string concatenation approach for the specification of my equations - as i said when i first asked about it, i didn't like it, but i still want to abstract things a little - currently thinking that this is perhaps a step in the right direction: y= x ; x-loop y= x 2e f** ; x-loop x= y fnegate y-loop etc 2024-11-24 07:00:40 (typo in there - should have ; before y-loop) 2024-11-24 07:06:48 the y= and x= words are still a bit of a hack using an evaluate : y= ( -- colon-sys ) s" :noname { F: x }" evaluate ; immediate - no user provided strings, so no messing around with free - and i kinda like the way the input to equation is abstracted away, so there's no reason to use fpick/froll type operations (which are fine for programming, but not necessarily the most natural way to specify an 2024-11-24 07:06:50 equation in rpn) 2024-11-24 07:13:14 couple of things i dislike about it - the continued use of evaluate and the requirement to coordinate y= with x-loop/x= with y-loop - the latter feels wrong to me and trivial to consolidate in one xy-loop by having y= and x= leave a loop indicator (an int for example) and sys-colon on the stack iyswim 2024-11-24 07:16:33 global x/y values are the only things i can think of, but that that feels clunkier than the evaluate 2024-11-24 07:20:54 also, been trying to get my head round the introduction of polar coordinates but i'm not really sure of the use cases - would resolve r from theta or theta from r seem sensible? 2024-11-24 08:08:11 went for the xy-loop thing - current stuff looks like https://gitlab.com/lilo_booter/plotify/-/blob/main/src/graph.fs - am curious about what people think of my imeplementations of Breshenham's and Cohen Sutherland too if anyone cares to take a look :) 2024-11-24 08:11:59 (they're more or less direct translations of psuedo code found found on wikipedia) 2024-11-24 10:19:44 hmm - maybe this is prettier? y=(( x x fsin f* )) xy-loop 2024-11-24 10:30:56 y=(( x x fsin f* )) :D 2024-11-24 18:49:33 lilo_booter: that's cool 2024-11-24 18:58:36 xentrac: cheers :) 2024-11-24 19:52:48 is the return stack a must? 2024-11-24 20:00:59 no, a must is what you get after crushing grapes 2024-11-24 20:01:31 no that's a mush 2024-11-24 20:01:58 nmz: factor doesn't have an explicit return stack 2024-11-24 20:02:21 i'm sure it has /something/ because its words are capable of returning, but the programmer doesn't get to manipulate it 2024-11-24 20:03:59 guess its a must 2024-11-24 20:04:20 i think the question is incomplete 2024-11-24 20:04:26 a must for what? 2024-11-24 20:05:38 was thinking of writing a transpiler 2024-11-24 20:06:09 surely your target language has a return stack 2024-11-24 20:07:14 sure 2024-11-24 20:07:20 well, thanks 2024-11-24 21:47:53 for polar coordinate stuff, i came to the conclusion that there's no way to derive theta :) - only r (which is already checked in - r=(( 10e )) <- draws a circle with radius of 10, r=(( 1e theta fsin - )) <- heart shaped equation, r=(( theta )) <- basic archemedian spiral etc etc) 2024-11-24 21:50:53 general issue with them is that i don't really know how to control theta - currently it just loops from 0 to 2 pi, but the archimedian spiral should allow for controllable bounds (so, like i have x-range/y-range, i guess i could add theta-range?) 2024-11-24 21:53:37 amazing how a joke actually made me think about stuff :)