我是计划的初学者。
我在下面写了一个简单的查找除数的程序,并尝试将其加载到scheme intepreter中,但只得到一个没有行号的简单警告。我可以知道出了什么问题吗?感谢。
; Loading "test_euler3.scm"...
;The object (quote test-divisor), passed as an argument to identifier->symbol, is not an identifier.
(define (find-divisor' test-divisor n)
(cond ((= test-divisor 1)
1)
((divides? n test-divisor)
test-divisor)
(else
(find-divisor' (- test-divisor 1) n))))
答案 0 :(得分:2)
与Rptx的评论一样,find-divisor'
不是有效的标识符,因为'
不是有效的标识符字符。如果您确实想要使用它,则必须使用|find-divisor'|
。
但最好只坚持使用有效标识符的字符。哎呀,只要使用智能引用(例如,find-divisor’
)或素数(例如,find-divisor′
),如果你想要看起来的内容,如find-divisor'
。但是,我不会保证使用智能引号的任何代码的可读性。 :-P