Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 多次从字符串X中删除字符_String_Chicken Scheme - Fatal编程技术网

String 多次从字符串X中删除字符

String 多次从字符串X中删除字符,string,chicken-scheme,String,Chicken Scheme,我需要从字符串中删除一个字符,但我不知道如何指定计数,这是一个限制,限制在Chicken中从字符串中删除字符的次数 下面是我在Common Lisp中的操作方法: (let ((a "abca")) (delete #\a a :count 1)) ;=> "bca" 在鸡肉计划中我该怎么做 我曾尝试在Chicken中使用delete,但Chicken的delete似乎不支持count之类的东西,因此下面的不起作用: (let ((a "abca")) (list->string

我需要从字符串中删除一个字符,但我不知道如何指定
计数
,这是一个限制,限制在Chicken中从
字符串
中删除
字符
的次数

下面是我在Common Lisp中的操作方法:

(let ((a "abca")) (delete #\a a :count 1))

;=> "bca"
在鸡肉计划中我该怎么做

我曾尝试在Chicken中使用
delete
,但Chicken的
delete
似乎不支持
count
之类的东西,因此下面的不起作用:

(let ((a "abca")) (list->string (delete #\a (string->list a) :count 1)) ))
只要在字符串上运行
delete
,就会删除所有出现的
char

(let ((a "abca")) (list->string (delete #\a (string->list a)) ))

;=> "bc"
(define myfilter
  (lambda (lst char cnt)
    (if (null? lst)
      '() 
      (if (and (eq? (car lst) char) (> cnt 0)) 
        (myfilter (cdr lst) char (- cnt 1)) 
        (cons (car lst) (myfilter (cdr lst) char cnt))))))

(define delnchars
  (lambda (str char count)
    (list->string (myfilter (string->list str) char count))))

> (delnchars "3 i's will be removed, the last -> is here" #\i 3)
"3 's wll be removed, the last -> s here"