如何在Racket中的字符串中附加数字?

时间:2011-11-24 14:27:54

标签: python racket string-concatenation

Python:xx = "p" + "y" + str(3) => xx == "py3"
如何使用Racket获得相同的结果?

(string-append "racket" (number->string 5) " ")  

在Racket中是否有另一种方法,类似于上面的Python示例,将数字附加到字符串中?

2 个答案:

答案 0 :(得分:8)

Python自动将数字强制转换为字符串,而Racket将这样做。 Racket和Python都不会将数字强制转换为字符串。这就是为什么你必须在Racket中明确使用number->string,在Python (str())中使用"p" + str(3)。您还可以找到Racket的format函数,其行为类似于Python的%运算符的某些用法:

# Python
"py %d %f" % (3, 2.2)

;; Racket
(format "rkt ~a ~a" 3 2.2)

但是我知道没有与"foo" + 3相当的Racket 和Python

[根据我的错误编辑了答案。我把Python行为与JavaScript混淆,被OP误导了

答案 1 :(得分:7)

$ racket
Welcome to Racket v5.3.5.
-> (~a "abc" "def")
"abcdef"
-> (~a "abc" 'xyz 7 )
"abcxyz7"
->