我是Scheme语言的新手,目前正在使用Simply Scheme教科书。我正在尝试一些程序,我注意到当我执行这些功能时(下面),它会在"口语"时尚:
(define (display-all sep . vs)
(for-each display (insert-between sep vs)))
(define (insert-between v xs)
(cond ((null? xs) xs)
((null? (cdr xs)) xs)
(else (cons (car xs)
(cons v (insert-between v (cdr xs)))))))
(代码使用How to 'display' multiple parameters in R5RS Scheme)
然后命令:
(display-all "" 'w 'o 'w " " 't 'h 'i 's " " 'i 's " " 'c 'o 'o 'l)
这些字母是一个接一个地打印出来的,好像有人在打字一样。我想知道是否有任何方法可以让我更容易输入要说出的这些单词,而不是逐字输入。我打算做这样的事情:
(define (speak . wds)
(...))
其中wds
是一个字符串。在上面的示例中,我希望它是这样的:(speak "wow this is cool")
并返回"wow this is cool"
,但每个字母都是逐个显示的。
提前感谢您的帮助!
答案 0 :(得分:1)
如何将字符串作为输入传递?在这种情况下,不需要使用变量参数,请尝试:
(define (display-all sep vs)
(for-each display (insert-between sep (string->list vs))))
(display-all "" "wow this is cool")