我对球拍很陌生,我很难把一根线投到一张单子上。我现在正在为一个类做一个基本的游戏,我一直从下面的代码中得到这个错误:
汽车:合同违约预期:成对?给予:“奥胡斯”<--错误
(define (word-is-in? a-word a-rand-list)
((cond
[(string? a-word)(string->list a-word)]
)
(cond
[(empty? a-word) #t] ;; Found all letters in a-word
[(empty? a-rand-list) #f]
[(is-in (car a-word) a-rand-list)
(word-is-in? (cdr a-word)
(remove-item (car a-word) a-rand-list))
]
[else #f] ;; first letter of a-word not in a-list
)
)
)这个函数应该做的是从单词列表( a-word )中读取一个单词,返回#t IFF -单词中的所有字母都在一个列表中。我想我的问题是一个词被读成一个字符串。所以我才加进去
(cond
[(string? a-word)(string->list a-word)]
)在功能的顶端。我希望它能将字符串转换成一个列表,但是我仍然会收到这个错误。有什么想法?
发布于 2015-09-26 23:27:32
问题就在这里,[(is-in (car a-word) a-rand-list) ...]。a-word仍然是一个string,因此您不能在它上调用car。
我想您有两个独立的条件,第一个“将”字符串“强制”为一个列表,在第二个条件使用该列表?
((cond
[(string? a-word)(string->list a-word)]
)如果这是你想要做的,你应该做(set! a-word (string->list a-word))。这是因为string->list将以列表的形式返回字符串,但不会将其分配给a-word。
PS :在本例中,我会将第一个条件更改为when语句。
https://stackoverflow.com/questions/32802964
复制相似问题