String 在函数中将列表转换为字符串的方案
我不知道在递归调用函数时如何将列表转换为函数中的字符串。例如,我的代码如下所示:String 在函数中将列表转换为字符串的方案,string,recursion,scheme,binary-tree,binary-search-tree,String,Recursion,Scheme,Binary Tree,Binary Search Tree,我不知道在递归调用函数时如何将列表转换为函数中的字符串。例如,我的代码如下所示: (define (pre-order T) (define (conv x) (cond ((number? x) (number->string x)) ((char? x) (string x)))) (map-diff (lambda (x) (conv x)) T) (cond ((null? T) "") ((eq? (value T) #\+)
(define (pre-order T)
(define (conv x)
(cond ((number? x) (number->string x))
((char? x) (string x))))
(map-diff (lambda (x) (conv x)) T)
(cond ((null? T) "")
((eq? (value T) #\+)
(cons "+" (pre-order (right T))(pre-order (left T))))
((eq? (value T) #\*)
(cons "*" (pre-order (right T))(pre-order (left T))))
((eq? (value T) #\-)
(cons "-" (pre-order (left T))))
((eq? (value T) #\/)
(cons "/" (pre-order (left T))))
(else (cons (value T) (pre-order (left T))))))
假设我的map函数对此工作正常。我正在处理树,还想知道如何用前缀表示法编写算术解析树。我对算术解析树进行了研究,并编写了一个函数来计算它们的值,但我不知道如何正确地遍历它们来解决这个问题。字符串是一个字符序列。字符列表可以很容易地转换为字符串
(define charlst '(#\H #\e #\l #\l #\o))
(list->string charlst); ==> "Hello"
如果您有一个字符串列表,您可以string-append
它们:
(define stringlst '("A" "B" "C"))
(apply string-append stringlst) ; ==> "ABC"
因为你似乎在处理字符,所以在列表和
list->string
结果中使用字符会更容易,因为与类似于添加列表的string append
相比,这是一项轻松的任务。在这里回答我关于字符串的问题,我正在写一篇关于预排序遍历的新文章。