comparison modules/dict.tp @ 202:cea671c4056c

Add map method to linear dict
author Mike Pavone <pavone@retrodev.com>
date Wed, 28 Aug 2013 01:05:29 -0700
parents a868a2aec930
children 96fdc5b37ceb
comparison
equal deleted inserted replaced
201:d2e0664ba73e 202:cea671c4056c
1 #{ 1 {
2 //requires only that keys support equality 2 linearWithEls <- :els {
3 linear <- {
4 key:val <- :k v { 3 key:val <- :k v {
5 #{ 4 #{
6 key <- k 5 key <- k
7 val <- v 6 val <- v
8 } 7 }
9 } 8 }
10 els <- #[]
11 find <- :tofind { 9 find <- :tofind {
12 idx <- 0 10 idx <- 0
13 while: { 11 while: {
14 if: idx < (els length) { 12 if: idx < (els length) {
15 ((els get: idx) key: ) != tofind 13 ((els get: idx) key: ) != tofind
62 foreach: els :idx el { 60 foreach: els :idx el {
63 l: (el key) (el val) 61 l: (el key) (el val)
64 } 62 }
65 } 63 }
66 64
65 map <- :fun {
66 newels <- #[]
67 foreach: els :idx el {
68 newels append: (key: (el key) val: (fun: (el val)))
69 }
70 linearWithEls: newels
71 }
72
67 length <- { els length } 73 length <- { els length }
68 } 74 }
69 } 75 }
70 76 #{
77 //requires only that keys support equality
78 linear <- {
79 linearWithEls: #[]
80 }
81 }
71 } 82 }