0
나는 gensym이 심볼을 생성 할 수 있다는 것을 알고 있지만, 매우 큰베이스가있는 글로벌 카운터가있는 것 같습니다. 예를 들어, (define s (gensym 's))
은 s12345
으로 끝날 수 있습니다. 숫자가 작을 수있는 카운터를 재설정하는 방법이 있는지 궁금합니다 (s14
과 같은)?gensym 라켓에
나는 gensym이 심볼을 생성 할 수 있다는 것을 알고 있지만, 매우 큰베이스가있는 글로벌 카운터가있는 것 같습니다. 예를 들어, (define s (gensym 's))
은 s12345
으로 끝날 수 있습니다. 숫자가 작을 수있는 카운터를 재설정하는 방법이 있는지 궁금합니다 (s14
과 같은)?gensym 라켓에
이렇게 할 방법이 없습니다. 그렇지 않으면 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)))))))
NICE는 ... 그건 도움이 작은 도구입니다! –