Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.soft-sys.math.mathematica > #2975
| From | DrMajorBob <btreat1@austin.rr.com> |
|---|---|
| Newsgroups | comp.soft-sys.math.mathematica |
| Subject | Re: Question about function construction |
| Date | 2011-06-06 10:24 +0000 |
| Organization | Steven M. Christensen and Associates, Inc and MathTensor, Inc. |
| Message-ID | <isi9ta$m10$1@smc.vnet.net> (permalink) |
Clear[pairs, hashTable]
constructHashTable[] :=
Module[{p = {{"key1", "value1"}, {"key2", "value2"}, {"key3",
"value3"}, {"key4", "value4"}}},
hashTable[key_String] := ((hashTable[#[[1]]] = #[[2]]) & /@ p;
hashTable@key); p]
pairs = constructHashTable[];
hashTable@"key1"
"value1"
hashTable /@ pairs[[All, 1]]
{"value1", "value2", "value3", "value4"}
or simpler:
Clear[pairs, hashTable]
constructHashTable[
pairs_List] := (Clear@hashTable; (hashTable[#[[1]]] = #[[2]]) & /@
pairs);
pairs = {{"key1", "value1"}, {"key2", "value2"}, {"key3",
"value3"}, {"key4", "value4"}};
constructHashTable[pairs];
hashTable@"key1"
"value1"
hashTable /@ pairs[[All, 1]]
{"value1", "value2", "value3", "value4"}
or more flexible:
Clear[pairs, hashTable]
constructHashTable[
pairs_List] := ((hashTable[pairs][#[[1]]] = #[[2]]) & /@ pairs);
pairs = {{"key1", "value1"}, {"key2", "value2"}, {"key3",
"value3"}, {"key4", "value4"}};
constructHashTable[pairs];
hashTable[pairs]@"key1"
"value1"
hashTable[pairs] /@ pairs[[All, 1]]
{"value1", "value2", "value3", "value4"}
Bobby
On Sun, 05 Jun 2011 06:04:29 -0500, ZiYuan Lin <ziyuang@gmail.com> wrote:
> Hi, there.
> I want to construct a function serving as a hash table. This is how I
> make it:
>
> ConstructHashtable[] :=
> Module[{pairs = {{"key1", "value1"}, {"key2", "value2"}, {"key3",
> "value3"}, {"key4", "value4"}}}, Clear[Hashtable];
> Hashtable[key_?StringQ] := (Hashtable[#[[1]]] = #[[2]]) & /@ pairs;]
>
> And then I run the code above together with a test:
>
> ConstructHashtable[]; Hashtable["key1"]
>
> Yet it returns all values:
>
> {"value1", "value2", "value3", "value4"}
>
> But if I run it again:
>
> Hashtable["key1"]
>
> It will get normal:
>
> "value1"
>
> What is the reason for this? Thank you~
>
--
DrMajorBob@yahoo.com
Back to comp.soft-sys.math.mathematica | Previous | Next | Find similar | Unroll thread
Re: Question about function construction DrMajorBob <btreat1@austin.rr.com> - 2011-06-06 10:24 +0000
csiph-web