Changeset 4102 for src/Pugs/Prim/Keyed.hs
- Timestamp:
- 05/29/05 18:05:01 (3 years ago)
- svk:copy_cache_prev:
- 5515
- Files:
-
- 1 modified
-
src/Pugs/Prim/Keyed.hs (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Pugs/Prim/Keyed.hs
r4085 r4102 16 16 17 17 pairsFromVal :: Val -> Eval [Val] 18 pairsFromVal (PerlSV sv) = do 19 keys <- hash_fetchKeys sv 20 return $ VList (map castV keys) 21 elems <- mapM (hash_fetchElem sv) keys 22 return $ map (VRef . MkRef . IPair) (keys `zip` elems) 18 23 pairsFromVal v = do 19 24 ref <- fromVal v … … 22 27 23 28 keysFromVal :: Val -> Eval Val 29 keysFromVal (PerlSV sv) = do 30 keys <- hash_fetchKeys sv 31 return $ VList (map castV keys) 24 32 keysFromVal (VList vs) = return . VList $ map VInt [0 .. (genericLength vs) - 1] 25 33 keysFromVal (VRef ref) = do 26 34 vals <- keysFromRef ref 27 35 return $ VList vals 28 keysFromVal (PerlSV sv) = do29 keys <- hash_fetchKeys sv30 return $ VList (map castV keys)31 36 keysFromVal v = retError "Not a keyed reference" v 32 37 … … 37 42 vals <- valuesFromRef ref 38 43 return $ VList vals 44 valuesFromVal (PerlSV sv) = do 45 pairs <- hash_fetch sv 46 return . VList $ Map.elems pairs 39 47 valuesFromVal v = retError "Not a keyed reference" v 40 48
