gpt4 book ai didi

string - Racket 语言:如何将字符串转换为变量名

转载 作者:行者123 更新时间:2023-12-02 04:39:08 25 4
gpt4 key购买 nike

我在Racket中是一个新手,我尝试运行Chris Jester-Young的解决方案(How to convert string to variable-name in scheme)将字符串转换为变量名(及其相反,也就是将变量名转换为字符串):

#lang racket
(define-syntax string->variable-name
(lambda (stx)
(syntax-case stx ()
((_ str)
(string? (syntax->datum #'str))
(datum->syntax #'str (string->symbol (syntax->datum #'str)))))))

(define-syntax variable-name->string
(lambda (stx)
(syntax-case stx ()
((_ id)
(identifier? #'id)
(datum->syntax #'id (symbol->string (syntax->datum #'id)))))))
variable-name->string很好,下面是一个示例:
>(define myvar 10)
>(variable-name->string myvar)
"myvar"

但是,我对 string->variable-name没有成功:
>(define (string->variable-name "myvar2") 4)
error define: not an identifier, identifier with default, or keyword
for procedure argument in: "myvar2"

我正在使用 Racket 6.6,Linux mint 17.3 64bits。

我的主要目标是如何将字符串转换为变量名(标识符)。

我在想:
  • 读取文本文件;
  • 从该文本文件中获取变量的名称(字符串);和
  • 使用define设置具有随机整数的变量名称。

  • 任何帮助,我将不胜感激。

    最佳答案

    您可以从here检查答案。

    建议我不要使用字符串,而要使用标识符。因此,除了使用纯文本文件之外,您还可以使用其他带有您要使用的标识符的Racket源,然后导入该源。

    关于string - Racket 语言:如何将字符串转换为变量名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38994906/

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