gpt4 book ai didi

scheme - Racket 中的gensym

转载 作者:行者123 更新时间:2023-12-05 08:35:15 25 4
gpt4 key购买 nike

我知道 gensym 可以生成符号,但似乎有一个全局计数器,它可以非常大,例如 (define s (gensym 's)) s 可以以 s12345 结尾。我想知道是否有一种方法可以重置计数器,生成的数字可以很小?比如 s14

最佳答案

没有办法做到这一点,否则它会在 docs 中提到.您只能为新符号提供一个“基础”。如果你真的需要一个小计数器,那么很容易使用 string->unreadable-symbol 组成你自己的 gensym ,例如:

(define gensym
(let ([counter 0])
(lambda ([x 'g])
(if (number? x)
(set! counter x)
(begin0 (string->unreadable-symbol
(format "~a~a" x counter))
(set! counter (add1 counter)))))))

关于scheme - Racket 中的gensym,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5590073/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com