Skip to content

Commit 70588b6

Browse files
committed
Improves implementation of hash-table->alist
1 parent d84911d commit 70588b6

2 files changed

Lines changed: 6 additions & 6 deletions

File tree

rosetta-test/interpreter-tests.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,5 +113,7 @@
113113
{"input": "(hash-table-exists? ht 'b)", "expected": true},
114114
{"input": "(hash-table-map ht (lambda (key value) key))", "expected": ["b"]},
115115
{"input": "(hash-table-walk ht (lambda (key value) key))", "expected": null},
116-
{"input": "(begin (hash-table-ref! ht 'c 3) (hash-table-ref ht 'c))", "expected": 3}
116+
{"input": "(begin (hash-table-ref! ht 'c 3) (hash-table-ref ht 'c))", "expected": 3},
117+
{"input": "(hash-table->alist ht)", "expected": [["b", 2], ["c", 3]]},
118+
{"input": "(hash-table->alist (make-hash-table))", "expected": []}
117119
]

rosetta-test/stdlib.scm

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -223,12 +223,10 @@
223223
ht)
224224

225225
(define (hash-table->alist ht)
226-
(define alist '())
227-
(for-each
226+
(map
228227
(lambda (key)
229-
(set! alist (cons (list key (hash-table-ref ht key)) alist)))
230-
(hash-table-keys ht))
231-
alist)
228+
(list key (hash-table-ref ht key)))
229+
(hash-table-keys ht)))
232230

233231
; Aliases
234232
(define hash-ref hash-table-ref)

0 commit comments

Comments
 (0)