|
65 | 65 |
|
66 | 66 | ; 定义函数 get-key-by-value
|
67 | 67 | ; 输入一个 Hash 表和一个 a-value (用于反向查找 key 的 value)
|
68 |
| -; 输出相 value 等于 a-value 的那些 key, |
| 68 | +; 输出 value 等于 a-value 的那些 key, |
69 | 69 | ; 换言之, 此 key 满足条件 (hash-ref key) == a-value.
|
70 | 70 | (define (get-key-by-value a-hash a-value)
|
71 | 71 | (hash-for-each a-hash
|
72 |
| - (lambda (k v) |
73 |
| - (if (= a-value (hash-ref a-hash k)) |
74 |
| - (printf "~a: ~a~n" k v) '())))) |
| 72 | + (lambda (k v) |
| 73 | + (if (= a-value (hash-ref a-hash k)) |
| 74 | + (printf "~a: ~a~n" k v) '())))) |
75 | 75 |
|
76 | 76 | ; 定义函数 char-cmp
|
77 | 77 | ; 输入一个 preset-char (预设字符)
|
78 | 78 | ; 返回一个的匿名函数 (其内部包含 preset-char)
|
79 | 79 | ; > 其输入为 char-to-be-compared (待比较的字符)
|
80 |
| -; > 当其 char-to-be-compared 与 preset-char |
81 |
| -; > 一致时输出 true, 否则输出 false |
| 80 | +; > 当 char-to-be-compared 与 preset-char |
| 81 | +; > 相等时输出 true, 否则输出 false |
82 | 82 | (define (char-cmp preset-char)
|
83 | 83 | (lambda (char-to-be-compared)
|
84 | 84 | (if (char=? preset-char char-to-be-compared) true false)))
|
|
88 | 88 | ; 输出 a-string 中出现次数最多的字符, 及其出现次数
|
89 | 89 | (define (most-character-number a-string)
|
90 | 90 | (let*
|
91 |
| - ([all-chars-list (string->list a-string)] |
92 |
| - [key-chars-list (delete-duplicates all-chars-list)] |
93 |
| - [result-hash (make-hash)]) |
94 |
| - (begin |
95 |
| - (for ([key-char key-chars-list]) |
96 |
| - (hash-set! result-hash |
97 |
| - key-char (count (char-cmp key-char) all-chars-list))) |
| 91 | + ([all-chars-list (string->list a-string)] |
| 92 | + [key-chars-list (delete-duplicates all-chars-list)] |
| 93 | + [result-hash (make-hash)]) |
| 94 | + (for ([key-char key-chars-list]) |
| 95 | + (hash-set! result-hash |
| 96 | + key-char (count (char-cmp key-char) all-chars-list))) |
98 | 97 | (get-key-by-value
|
99 |
| - result-hash |
100 |
| - (apply max (hash-values result-hash)))))) |
| 98 | + result-hash |
| 99 | + (apply max (hash-values result-hash))))) |
101 | 100 |
|
102 |
| -; 以下函数调用在正常运行之后, 应该显示 f:3 d:3 a: 3 |
| 101 | +; 以下函数调用在正常运行之后, 应该显示 |
| 102 | +; f: 3 |
| 103 | +; d: 3 |
| 104 | +; a: 3 |
103 | 105 | (most-character-number "ssfdaa dffda ")
|
104 | 106 | ```
|
105 | 107 |
|
|
0 commit comments