【问题标题】:Replacing a String in a List in Racket替换球拍列表中的字符串
【发布时间】:2019-03-29 01:06:38
【问题描述】:

我试图用另一个给定的字符串替换列表中的字符串,仅使用抽象列表函数和 lambda。 该函数使用 lst(字符串列表)、str(要替换的字符串)和 rep(要替换 str 的字符串)。 这是一个例子: (替换 (list "hi" "how" "are" "you") "hi" "bye") -> (list "bye" "how" "are" "you")

下面写的是我递归写的代码,它可以工作。

(define (replace lst str rep)
  (cond [(empty? lst) empty]
        [(equal? match (first lst))
           (cons rep (replace-all (rest lst) match rep))]
        [else (cons (first lst) (replace-all (rest lst) match rep))]))

下面的代码是我尝试过的,但我不确定如何修复它以使其产生我想要的。

(define (replace lst str rep)
   (map (lambda (x) (string=? x str)) lst))

感谢您的任何帮助,谢谢!

【问题讨论】:

    标签: scheme racket


    【解决方案1】:

    快到了!对于每个字符串,您只需要问:这是我要替换的字符串吗?然后替换它 - 否则保持不变:

    (define (replace lst str rep)
      (map (lambda (x) (if (string=? x str) rep x)) 
           lst))
    

    【讨论】:

    猜你喜欢
    • 2021-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-02
    • 2021-05-22
    • 1970-01-01
    • 2012-11-26
    相关资源
    最近更新 更多