我需要从列表中获取一个数字并将其转换为一个数字,以便我可以将其作为参数传递。
我试图在方案中制作一个 1 位加法器。我已经为或门和异或门以及半加器编写了代码,现在我试图将它们全部组合成一个全加器。我不确定我是否以正确的方式去做。任何输入将不胜感激谢谢。
(define or-gate
(lambda (a b)
(if (= a 1)
1
(if (= b 1)
1
0))))
(define xor-gate
(lambda (a b)
(if (= a b)
0
1)))
(define ha
(lambda (a b)
(list (xor-gate a b)(and-gate a b))))
(define fa
(lambda (a b cin)
(or-gate (cdr(ha cin (car (ha a b))))(cdr(ha a b)))))
我在运行程序时遇到的问题是半加法器 (ha) 函数将列表作为值输出,这使得这些值与我的其他程序不兼容,因为它们需要数字而不是列表。我觉得有一个简单的解决方案,但我不知道。