[OpenSCAD] Digging into search( )
runsun at gmail.com
Mon Apr 20 18:49:46 EDT 2015
@ Michael, I didn't explain too much in details about the context, I guess
that's why you (and Andrew) misunderstood.
The reason that I have this argument,
search( "def", [ "abc","def","def",1 ] )
will cause confusion is that, the whole discussion stems from a discussion
on other thread about hash parameter mapping. This includes the example you
gave using lookup.
Then search() was mentioned. Search() was not designed for this type of
key-value mapping, but I tried to use it that way, by applying search() on a
flat list as above. Note that all examples on the doc about search() are
either against strings :
search( ... "abcdef")
or against list of vectors:
search( ... [["abc",1],["def",2] ...])
but not flat list.
So if search() is to be use as a key-value type mapping against a flat list
like I like it to be, it has to be able to find every other item to map,
search( "def", ["abc", "def", "def", 1] )
def has to map item 0, that is "abc", and skip item 1 (which is a value
associates to item 0), then item 2, that is "def".
In this case, it should have returned . Or, if return all, [1,2].
But, like I said, search() can't do that, and when set to return only one
item, it will return , but not , which is not what I want. So using
search() in a key-value mapping manner will fail.
This can be solved if search() can match every other item (see my previous
But I understand that this is probably just my way of using it, so I leave
the decision to Andrew. It would probably make it too complicated, anyway.
So this is not the problem of mistaking the base indexing. Guess I was just
too lazy to explain the entire context. :( :(
> I think you missed the point @runsun.
> "Very briefly, vector and string 'index' counting starts at 0, not 1. "
> This explains why you had so much difficulty understanding it.
> search("a",[ "d", "c", "b", "a"); // returns 
> 0 1 2 3
$ Runsun Pan, PhD
$ -- OpenScad_DocTest: doc and unit test ( Github , Thingiverse )
$ -- hash parameter model: here , here
$ -- Linux Mint 17.1 Rebecca x64 + OpenSCAD 2015.03.15/2015.04.01.nightly
View this message in context: http://forum.openscad.org/Digging-into-search-tp12421p12452.html
Sent from the OpenSCAD mailing list archive at Nabble.com.
More information about the Discuss