Mercurial > hg > xemacs-beta
comparison lisp/oobr/hash-test.el @ 0:376386a54a3c r19-14
Import from CVS: tag r19-14
author | cvs |
---|---|
date | Mon, 13 Aug 2007 08:45:50 +0200 |
parents | |
children | 4103f0995bd7 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:376386a54a3c |
---|---|
1 ;;!emacs | |
2 ;; | |
3 ;; FILE: hash-test.el | |
4 ;; SUMMARY: Interactively test functions from hasht.el. | |
5 ;; USAGE: GNU Emacs Lisp Library | |
6 ;; KEYWORDS: extensions, maint, tools | |
7 ;; | |
8 ;; AUTHOR: Bob Weiner | |
9 ;; ORG: Motorola Inc. | |
10 ;; | |
11 ;; ORIG-DATE: 16-Mar-90 at 03:38:48 | |
12 ;; LAST-MOD: 14-Apr-95 at 15:37:49 by Bob Weiner | |
13 ;; | |
14 ;; Copyright (C) 1990-1995 Free Software Foundation, Inc. | |
15 ;; See the file BR-COPY for license information. | |
16 ;; | |
17 ;; This file is part of the OO-Browser. | |
18 ;; | |
19 ;; DESCRIPTION: | |
20 ;; DESCRIP-END. | |
21 | |
22 (setq hs (hash-make '((("a1" "a2") . "a") (("b1" "b2") . "b") (("c1" "c2") . "c")))) | |
23 ; => (hasht . [a b c]) | |
24 | |
25 (setq cpy (hash-copy hs)) | |
26 ; => (hasht . [a b c]) | |
27 (eq hs cpy) | |
28 ; => nil | |
29 (equal hs cpy) | |
30 ; => t | |
31 (eq (hash-get "b" hs) (hash-get "b" cpy)) | |
32 ; => t | |
33 | |
34 (setq deep-cpy (hash-deep-copy hs)) | |
35 ; => (hasht . [a b c]) | |
36 (eq hs deep-cpy) | |
37 ; => nil | |
38 (equal hs deep-cpy) | |
39 ; => nil ;; Yes, this really should be nil since the symbols in the obarrays | |
40 ;; are not equal for some reason. | |
41 (eq (hash-get "b" hs) (hash-get "b" deep-cpy)) | |
42 ; => nil | |
43 | |
44 (hash-lookup "d" hs) | |
45 ; => nil | |
46 | |
47 (hash-add '("d1" "d2") "d" hs) | |
48 ; => ("d1" "d2") | |
49 | |
50 (hash-map 'car hs) | |
51 ; => (("a1" "a2") ("d1" "d2") ("b1" "b2") ("c1" "c2")) | |
52 | |
53 (hash-delete "d" hs) | |
54 ; => d | |
55 | |
56 (hash-map 'car hs) | |
57 ; => (("a1" "a2") ("b1" "b2") ("c1" "c2")) | |
58 | |
59 (hash-key-p "a" hs) | |
60 ; => a | |
61 | |
62 (hash-key-p "d" hs) | |
63 ; => nil | |
64 | |
65 (hash-lookup "a" hs) | |
66 ; => ("a1" "a2") | |
67 | |
68 (setq hs2 (hash-make '((("e1" "e2") . "e") (("f1" "f2") . "f")))) | |
69 ; => (hasht . [f e]) | |
70 | |
71 (setq hs3 (hash-merge hs hs2)) | |
72 ; => (hasht . [0 e f b c]) | |
73 (hash-lookup "e" hs3) | |
74 ; => ("e1" "e2") | |
75 (hash-lookup "b" hs3) | |
76 ; => ("b1" "b2") | |
77 | |
78 (hash-make -3) | |
79 ; => (error ("(hash-make): Initializer must be >= 0, not '-3'")) | |
80 | |
81 (hash-replace '("e11" "e22") "e" hs3) | |
82 ; => ("e11" "e22") | |
83 (hash-lookup "e" hs3) | |
84 ; => ("e11" "e22") | |
85 | |
86 (setq hs3 (hash-resize hs3 11)) | |
87 ; => (hasht . [0 0 a b c 0 e f 0 0 0]) | |
88 | |
89 (hash-lookup "c" hs3) | |
90 ; => ("c1" "c2") | |
91 (hash-lookup "e" hs3) | |
92 ; => ("e11" "e22") | |
93 | |
94 (hash-count hs3) | |
95 ; => 5 | |
96 | |
97 (hash-prin1 hs3 (current-buffer)) | |
98 ; => ( | |
99 ; (("f1" "f2") . "f") | |
100 ; (("e11" "e22") . "e") | |
101 ; (("c1" "c2") . "c") | |
102 ; (("b1" "b2") . "b") | |
103 ; (("a1" "a2") . "a") | |
104 ; ) | |
105 | |
106 | |
107 | |
108 | |
109 | |
110 | |
111 | |
112 | |
113 |