The following warnings occurred:
Warning [2] count(): Parameter must be an array or an object that implements Countable - Line: 795 - File: showthread.php PHP 7.4.33 (FreeBSD)
File Line Function
/showthread.php 795 errorHandler->error





Post Reply 
Dynamic local variables
03-13-2015, 07:59 PM
Post: #1
Dynamic local variables
Here's an example of how to create dynamic local variables:

Code:
locvars:={};
locname:={};

NEWLOC();
LSTO();
LRCL();
LSTON();
LRCLN();

EXPORT DYNLOC()
BEGIN
  // an example
  local mylocal;

  mylocal:=1;
  NEWLOC("cool",0);
  LSTO("cool",-5);
  NEWLOC("alist",1);
  LSTO("alist",{1,2,3});

  mylocal:=LRCL("cool")*3;
  LRCL("alist")*mylocal+LRCLN("alist",1);
END;

// name is a string
// vtype = 0 --> atomic; 
NEWLOC(name,vtype)
BEGIN
  local j;

  j:=POS(locname,name); 

  if vtype then
    locvars(j):={0};
  else
    locvars(j):=0;
  end;
  locname(j):=name; 
END;

// name is a string
// val is the value to store
// n is the index (0 if atomic) 
LSTON(name,val,n)
BEGIN
  local j;

  j:=POS(locname,name);
  if j then
    if n then
      if n>size(locvars(j)) then
        MSGBOX("Invalid index: " + name + "(" + n + ")");
        kill;
      end;
      locvars(j,n):=val;
    else
      locvars(j):=val;
    end;
  else
    MSGBOX("Error: no such local var (" + name + ")");
    kill;
  end;
END;

// name is a string
// n is the index (0 if atomic)
LRCLN(name,n)
BEGIN
  local j;

  j:=POS(locname,name);
  if j then
    if n then
      if n>size(locvars(j)) then
        MSGBOX("Invalid index " + name + "(" + n + ")");
        kill;
      end;
      return(locvars(j,n));
    else
      return(locvars(j));
    end;
  else
    MSGBOX("Error: no such local var (" + name + ")");
    kill;
  end;
END;

LSTO(name,val)
BEGIN
  local j;

  j:=POS(locname,name);
  if j then
    locvars(j):=val;
  else
    MSGBOX("Error: no such local var (" + name + ")");
    kill;
  end;
END;

LRCL(name)
BEGIN
  local j;

  j:=POS(locname,name);
  if j then
    return(locvars(j));
  else
    MSGBOX("Error: no such local var (" + name + ")");
    kill;
  end;
END;

Explanation to come a bit later; heading home from work.

Graph 3D | QPI | SolveSys
Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
Dynamic local variables - Han - 03-13-2015 07:59 PM
RE: Dynamic local variables - salvomic - 03-14-2015, 10:56 AM
RE: Dynamic local variables - Han - 03-15-2015, 07:44 PM
RE: Dynamic local variables - tom234 - 05-19-2019, 08:35 PM
RE: Dynamic local variables - Han - 05-20-2019, 04:52 AM



User(s) browsing this thread: 1 Guest(s)