Carl Love

Carl Love

24663 Reputation

25 Badges

10 years, 56 days
Natick, Massachusetts, United States
My name was formerly Carl Devore.

MaplePrimes Activity

These are questions asked by Carl Love

Why does the following code return a vector containing x rather than containing 1 and how can I correct it?

proc() local x, v:= <x>; x:= 1; rtable_eval(v) end proc();

My actual goal is to have a Matrix with a parameter inside a procedure and to create different instantiations of the Matrix in a loop by changing the parameter. 

I just noticed with chagrin that one of my favorite menu commands, Edit -> Remove output -> From worksheet, is missing from Maple 2019's Standard GUI. Is there a keyboard command or toolbar item to replace it?

I vaguely recall others complain about disappearing Code Edit Regions. Does anyone else recall that? I had one disappear from the very top of the attached worksheet (right after the restart), causing me to lose about 15-30 minutes of work. I've totally recreated the work, so I have no interest in this worksheet being repaired. I'm merely posting it in case anyone wants to do an autopsy on it.

Another issue that happened twice with this worksheet is that when I unchecked the "Expanded" box on the Code Edit Region menu (pull out from the right side of the screen) and copied the text to my clipboard (for posting on MaplePrimes), that copied text was missing my most-recent changes to the code. They reappeared when I expanded again. (But it's really difficult to copy-and-paste a multi-screen Code Edit Region when it's expanded.)

My final issue (and this has bothered me for years), is how the heck are you supposed to find the line with the syntax error in a several-hundred-line Code Edit Region? Unlike with inline code, the cursor is not placed near the error

I hate it when a user bumps every Question that they've ever asked over the past five years to the top of Recent (aka Active Conversations) stack! This is not the first time that this has happened. I rely heavily on that stack being truly the threads with the most-recent material. Can't something be done about this short of deleting the threads? That seems too drastic: While this user has occasionally been a pest in the past, they've also posted some decent material. There should be some way for a moderator to just reset the stack positions to what they were previously.

Here's a slightly reduced form of a little module from some code that I posted recently:

KandR:= module()
   a, b, c, e, #parameters

   #procedure that lets user set parameter values:
   ModuleApply:= proc({
       a::algebraic:= KandR:-a, b::algebraic:= KandR:-b, 
       c::algebraic:= KandR:-c, e::algebraic:= KandR:-e
   local k;
      for k to _noptions do thismodule[lhs(_options[k])]:= rhs(_options[k]) od;
   end proc
end module:

The purpose of the module is simply to be a container for the four parameters and to provide a simple ModuleApply interface by which they can be set, reset, and/or unset. 

I very often use a procedure parameter of a ModuleApply to set a local variable of same name in the module. Because of the name conflict, thismodule needs to be used in these situations. I see this as the primary use of thismodule. In the module above, the purpose of the line 

for k to _noptions do thismodule[lhs(_options[k])]:= rhs(_options[k]) od;

is to avoid the need to explictly use the parameters yet a third time. First off, I am amazed that this works! I've had many disappointments with thismodule (which is essentially undocumented---its miniscule help page is nearly worthless). I am using Maple 2018, release 1. Another Maple 2018 user (not sure which release) reports that the above line gives an error (when executed) that thismodule's index must be a name.

Question 1: What's up with that?

[Edit: It's been determined that the problem was due to an unfortunate global assignment in that user's initialization file rather than different behavior of thismodule. So, I consider Question 1 to be completely answered, and it should be ignored.]

Question 2: The for loop is not entirely satisfying to me. Is there a better way?

[Status: Answered, see below.]

Question 3: Ideally, I'd like to explicity use the four parameters once, not two or three times. Is there a way? If I need to use a container for the parameters (such as a Record), to achieve that, I'd be happy to do that, and I wouldn't mind needing to invoke that container's name any number of times.

[Status: Answered, see below.]

Note that op and exports can be applied to thismodule to extract the module's operands. I have found this occasionally useful.

Question 4: What are some other good uses for thismodule? The one and only example given on its help page seems ridiculous to me.

1 2 3 4 5 6 7 Page 3 of 9