【发布时间】:2014-10-11 21:26:47
【问题描述】:
我知道我想做什么,但我无法到达那里。我正在寻找一些指导。我或多或少地强迫我想要做的事情,并且必须有比我尝试创建此功能的方式更好的方法。 我目前在调用 (set! nadj) 和 (set! count) 时遇到未绑定变量错误。
我正在尝试创建一个用户输入句子的功能。如果该句子的 25% 以上由形容词组成,则该函数返回 false。
这是我目前所拥有的:
(define OK
(lambda (x)
(cond
((adj? (car x))
(set! count (+ count 1)))
((not (adj? (car x))
(set! nadj (+ nadj 1))))
((not (null? (OK (cdr x)))))
((null? x)
(set! sum (+ nadj count)))
;;(set! div (/ count sum))
;;(* 100 div)
;;(< div 25))
((else #f)))))
我想做的是为形容词的单词和不是形容词的单词做一个计数器。然后我试图把所有的词加起来,然后除以形容词的数量。然后我想将它乘以 100,如果它小于 25%,则返回 true。我不是在寻找答案,或多或少我只是想要一些指导。
这里是adj? 函数,如果您需要查看它。
(define adjectives '(black brown fast hairy hot quick red slow))
(define adj?
(lambda(x)
(if ( member x adjectives) #t #f)))
我确信这不是正常的 Scheme 表示法。我经常使用 C++ 和 Java 进行编程,但我很难过渡到 Scheme。
【问题讨论】:
标签: variables functional-programming scheme lisp scope