在球拍中如何使用string-> list或list->字符串函数替换字符串中的单词?

时间:2016-10-15 17:36:17

标签: string list racket racket-student-languages

所以当我提出这个问题时,我正在练习球拍初学者语言。

编写一个消耗字符串,目标字符和a的函数str-replace 替换角色。该函数生成一个新字符串,该字符串与消耗的字符串相同,并且所有出现的目标字符(如果有)都替换为替换字符。例如,(string-replace "word" #\o #\y) ⇒ "wyrd"

注意: 我可能不会使用string->listlist->string以外的任何内置字符串函数。

所以我开始使用代码现在我卡住了,我现在如何使用包装器函数来实现这个代码

;; los is list of string      
(define(str-replace los)
   (+(first los)
   (first (rest los))
   (first (rest (rest los)))
   (first (rest (rest (rest los))))))

1 个答案:

答案 0 :(得分:2)

定义一个对列表进行操作的转换函数:

(define (replace-in-list input-list from-char to-char)
  (if (null? input-list)
      ...
      (cons ... 
            (replace-in-list ... from-char to-char))))

(您必须填空...

从另一个人那里打电话:

(define (str-replace input-string from-char to-char)
  (list->string 
    (replace-in-list 
      (string->list input-string) from-char to-char)))