2012-04-09 16 views
1

スキームにnビットALUを作成していますが、これまでのところ1ビットALUがあります。 誰かがこの問題にアプローチする方法を教えてもらえますか?ここにするための命令である:スキームのnビットALU

手順の形式は

(ALUn selection x1 x2 n)  

最初のパラメータであり、selectionは、値のいずれかを取ることができる:'add'sub'and'or、又は'xor。第2および第3のパラメータx1およびx2は、リスト形式の2つのnビット2進数です。

答えて

1

ここでのコードと、またはXORです:

(define (ALUn selection x1 x2 n) 
    (cond 
    [(or (not (= (length x1) n)) (not (= (length x2) n))) (error "Wrong register length!")] 
    [(equal? selection 'and) (map bitwise-and x1 x2)] 
    [(equal? selection 'or) (map bitwise-ior x1 x2)] 
    [(equal? selection 'xor) (map bitwise-xor x1 x2)])) 

あなた自身を追加し、サブ行う方法を見つけ出す必要があります!