我有一个这样定义的列表:

(define testlist '((Dog <=> Cat)
                   (Anne <=> Dodd))

有没有办法把:(car testlist)变成一个字符串,这样我就可以在上面使用regexp来搜索“”?

最佳答案

让我从这句极为相关的杰米·扎温斯基的名言开始:
有些人遇到问题时会想,“我知道,我会用正则表达式。”现在他们有两个问题。
你真的不想在这里使用正则表达式一方面,当标识符中间有<=>时,基于regexp的解决方案将中断。
另一方面,不使用正则表达式就很容易解决这个问题。
这里有一大堆“正确的答案”,这取决于您到底想做什么,但是让我首先指出,您可以使用“member”函数来查看列表是否包含符号'<=>

#lang racket

(define testlist '((Dog <=> Cat)
                   (Anne <=> Dodd)))

(cond [(member '<=> (car testlist)) "yep"]
      [else "nope"])

我怀疑您正试图将它们解析为逻辑等价物,在这种情况下,您需要定义语句的可能结构,然后从那里开始,但让我们从不使用正则表达式开始:)。

关于regex - 在 Racket 中列出字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22291904/

10-08 23:10