Как я могу добавить число к строке в Racket? - PullRequest
5 голосов
/ 24 ноября 2011

Python: xx = "p" + "y" + str(3) => xx == "py3"
Как я могу получить тот же результат, используя Racket?

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

Есть ли другой способ в Racket, похожий на приведенный выше пример с Python, добавлять число в строку?

Ответы [ 2 ]

8 голосов
/ 24 ноября 2011

Python автоматически преобразует число в строку, в то время как Racket не делает это. Ни Racket, ни Python не преобразуют число в строку.Вот почему вы должны явно использовать number->string в Racket, и str() в Python ("p" + str(3)).Вы также можете обнаружить, что функция format в Racket ведет себя так же, как в некоторых случаях использования оператора % в Python:

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

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

Но не существует ни Racket , ни Python , эквивалентного "foo" + 3, которыйЯ знаю о.

[Ответ отредактирован за мою ошибку.Я путал поведение Python с JavaScript, введенным в заблуждение OP]

7 голосов
/ 21 ноября 2014
$ racket
Welcome to Racket v5.3.5.
-> (~a "abc" "def")
"abcdef"
-> (~a "abc" 'xyz 7 )
"abcxyz7"
-> 
...