boo*_*ife 5 python string-concatenation racket
Python:xx = "p" + "y" + str(3)=> xx == "py3"
如何使用Racket获得相同的结果?
(string-append "racket" (number->string 5) " ")
Run Code Online (Sandbox Code Playgroud)
在Racket中是否有另一种方法,类似于上面的Python示例,将数字附加到字符串?
Python会自动将数字强制转换为字符串,而Racket 则不会这样做.Racket和Python都不会将数字强制转换为字符串.这就是你必须number->string在Racket 和str()Python("p" + str(3))中明确使用的原因.你可能还会发现Racket的format函数与Python %运算符的某些用法类似:
# Python
"py %d %f" % (3, 2.2)
;; Racket
(format "rkt ~a ~a" 3 2.2)
Run Code Online (Sandbox Code Playgroud)
但是没有Racket 和Python等同于"foo" + 3我所知道的.
[根据我的错误编辑答案.我把Python行为与JavaScript混淆,被OP误导了]
$ racket
Welcome to Racket v5.3.5.
-> (~a "abc" "def")
"abcdef"
-> (~a "abc" 'xyz 7 )
"abcxyz7"
->
Run Code Online (Sandbox Code Playgroud)