List 在Scheme中使用字符集

List 在Scheme中使用字符集,list,function,scheme,character,punctuation,List,Function,Scheme,Character,Punctuation,此函数必须找到!“#%&'()*,-./:;?@[\]\{}字符在给定列表中。如果至少找到一次这些字符,则必须返回true。但我找不到适合此目的的预定义函数 (define (is-symbol lst) (if (null? (car lst)) #f (if (char-set:punctuation (car lst)) #t (is-symbol (cdr lst))) )) (is-symbol '(#\A #\b #\t #\R #\f 3 5

此函数必须找到
!“#%&'()*,-./:;?@[\]\{}
字符在给定列表中。如果至少找到一次这些字符,则必须返回true。但我找不到适合此目的的预定义函数

(define (is-symbol lst)
  (if (null? (car lst))
  #f
  (if (char-set:punctuation (car lst)) #t
           (is-symbol (cdr lst)))
  ))

(is-symbol '(#\A #\b #\t #\R #\f 3 5 4 7 8 9 #\A #\G #\w #\q $ & ?))

我相信您正在寻找:

或者更简单:

(define (is-symbol? lst)
  (ormap char-punctuation? lst))

您使用的是
字符集:标点符号
,它看起来像SRFI-14。相应的成员谓词是
字符集包含?

我在学生语言模式中提前使用DrRacket。它给出了以下错误:字符标点符号?:此函数未定义更改语言,然后使用#racket。否则您必须实现程序本身。欢迎到堆栈溢出,我把你的问题的文本拉到代码片段上,使问题更容易阅读。这是一种叫做底线的技术。有一个,请考虑阅读它,并编辑你的问题,让你更清楚你想要什么。
(define (is-symbol? lst)
  (ormap char-punctuation? lst))