我在scheme48中使用以下函数来计算一个数字是偶数还是奇数。
(define (odds? x)
(if (= x 0) #f
((evens? (- x 1))
)))
(define (evens? x)
(if (= x 0) #t
((odds? (- x 1))
)))但是,在这样做后,我会收到以下错误:
错误:尝试调用非过程(#t)
如果有人能解释这个错误到底意味着什么,以及如何修复它,我将不胜感激。
发布于 2014-12-04 23:50:50
围绕最后一个函数调用有几个错误的(),格式可以改进。请记住,在Scheme中,一对()的意思是“函数应用程序”(这说明了错误消息attempt to call a non-procedure),所以您必须小心放置它们。试一试:
(define (odds? x)
(if (= x 0)
#f
(evens? (- x 1))))
(define (evens? x)
(if (= x 0)
#t
(odds? (- x 1))))https://stackoverflow.com/questions/27306367
复制相似问题