lib for developers : libList
|
10-08-2016, 09:37 PM
(This post was last modified: 09-17-2017 03:06 PM by primer.)
Post: #1
|
|||
|
|||
lib for developers : libList
Hello,
The hpprime provide already many usefull list functions, mostly for math, But I'm sharing with you my libList v1 that provide some basic list functions for programming. LibList.hpprgm (Size: 5.05 KB / Downloads: 34) see next post for version 2. API list : L_GET, L_SET, L_INS, L_DEL, L_MAP, ARR2LST and LST2VECT L_INS(lst,pos,item) Insert an item to a list. Retruns the new list if pos is null, insert at the end if pos<0, count -pos from right to insert at ex : Code: L_INS({11,22,33},1, 99); // returns {99,11,22,33} L_SET(lst,pos,item) Set (change) an item from a list. Retruns the new list. note : it does not add item, list size does not increase if pos is null, change the last item if pos<0, count -pos from right to change ex : Code: L_SET({11,22,33},1, 99); // returns {99,22,33} L_DEL(lst,pos) Remove an item from a list. Returns the new list if pos is null, remove the last item if pos<0, remove by counting -pos from the right ex : Code: L_DEL({11,22,33},1); // returns {22,33} L_GET(lst,pos) Get an item from a list. Returns the item if pos is null, get last item if pos<0, count -pos from right if pos exceed list size, return last ex : Code: L_GET({11,22,33,44},2); // returns 22 L_MAP(lst,userfunction) Call a function on each list item. Returns the list of function returns ex : Code: EXPORT myfct(a) // a userfunction ARR2LST(array) Convert vector or matrix to list resulting list have embeded lists in case of matrix ex : Code: ARR2LST([1,2,3]); // returns {1,2,3} LST2VECT(lst) Convert a simple list to a vector note : list items must be numbers ex : Code: LST2VECT({1,2,3}); // returns [1,2,3] primer |
|||
10-16-2016, 09:46 AM
(This post was last modified: 10-16-2016 10:14 AM by primer.)
Post: #2
|
|||
|
|||
RE: lib for developers : libList
version 2
added : the split() command SPLIT(string,separator) Split a string into a list separator can be any size. ex : Code:
LibList.hpprgm (Size: 5.8 KB / Downloads: 24) primer |
|||
10-16-2016, 07:46 PM
Post: #3
|
|||
|
|||
RE: lib for developers : libList | |||
09-17-2017, 05:10 PM
Post: #4
|
|||
|
|||
RE: lib for developers : libList
(10-16-2016 07:46 PM)Guenter Schink Wrote: I guess it should read "count -pos from right to insert ..."Hello Günter, you are right, I fixed it on first post. (10-16-2016 07:46 PM)Guenter Schink Wrote: I'd suggest that "-1" should be the first element from right, like "1" does address the first element from left, for consistency.It makes sense, really good idea. But I don't know if it worth to break API compatibility. primer |
|||
10-02-2017, 09:02 PM
(This post was last modified: 10-05-2017 07:39 AM by StephenG1CMZ.)
Post: #5
|
|||
|
|||
RE: lib for developers : libList
L_INS({1,2,3},0,99) = {1,2,3,99} ?? (From your example)
I am unsure how an index of 0 should be parsed in this case. When a value is read, 0 refers to the last value, and when it is written, the new value about to be added. Does this mean it should be inserted before the value yet to be written (i.e. appended at the end)? Or does it mean that it should be inserted before {1,2,3}(0) i.e. 3, giving {1,2,99,3}? Given that {1,2,3,99} is trivial {1,2,3}(0):=99 Perhaps {1,2,99,3} is more useful? Of course, it should also be offset by 1 from your -1 position. For comparison: In Java and Python, lists are indexed from 0, so "insert before position 0" would be {99,1,2,3} Although (0) is a useful syntax in PPL, here it is less obvious to me what it should refer to. Stephen Lewkowicz (G1CMZ) https://my.numworks.com/python/steveg1cmz |
|||
« Next Oldest | Next Newest »
|
User(s) browsing this thread: 2 Guest(s)