我有一个函数在从哈希表中提取的两个元素上调用 hash-ref。第一个是 hashkey 的 cdr,第二个是来自 hashkeys 数据的随机列表。但是数据以点列表的形式返回,这会导致 hashref 失败,因为没有一个键是点对。有没有一种简单的方法可以让点对更改为列表?
这是我的函数调用
(let ((data ( list-ref(hash-ref Ngram-table key) (random (length (hash-ref Ngram-table key))))))
我收到一条错误消息,说 '("was" . "beginning") 不在哈希表中,有没有办法将键从 '("was" . "beginning") 更改为 '("was" "beginning") ?
(define (startup key value)
(cond
[(> value 0)
;(cons (car key) (cons (cdr key) null))
(let ((data ( list-ref(hash-ref Ngram-table key)
random (length (hash-ref Ngram-table key))))))
(display data)
(startup (list*(cons (cdr key) (cons data null))) (- value 1)))])
;(append (cdr key) data)
[(= value 0)
(display "END")])
; this function calls the startup function
(define (run-prog)
(test)
(display "ALICE was ")
(startup '("ALICE" "was") 100))