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]