从scheme中的数字列表创建数字字符串

时间:2014-04-11 08:11:13

标签: string list numbers scheme racket

所以我刚想通了你可以使用string-> number将字符串365转换为int 365。但现在我有另一个问题:

我如何处理(1 2 3),并将其转换为字符串123,以便我可以将string->number应用于它?任何帮助,将不胜感激。谢谢!

如果有帮助:我正在使用drracket 6.0

2 个答案:

答案 0 :(得分:1)

我将回答你的original question,而不是你当前的回答,这只是一种可能的解决方案。

有很多方法可以解决这个问题。像你在这个问题中提到的那样,一种方法是将传入的数字列表转换为字符串,然后将它们连接起来:

(require srfi/13)
(define (number-concatenate nums)
  (string->number (string-concatenate (map number->string nums))))

这是另一种方法,首先不涉及到字符串的转换:

(require srfi/1 srfi/26)
(define (number-concatenate nums)
  (define (expand num)
    (if (< num 10)
        (list num)
        (unfold-right zero? (cut modulo <> 10) (cut quotient <> 10) num)))

  (fold (lambda (num result)
          (fold (lambda (digit result)
                  (+ digit (* result 10)))
                result (expand num)))
        0 nums))

答案 1 :(得分:0)

如果你有数组,你可以这样做(javascript代码) -

 [1,2,3].join('');
    o/p=>"123"