我在這裏遇到一些麻煩,希望你們可以幫忙。運營商在球拍/方案中重載
基本上,我想要做的就是重載球拍中的+符號,這樣它會添加兩個向量而不是兩個數字。另外,我想保留舊的+運營商,以便我們仍然可以使用它。我知道這應該是在計劃中工作,所以我被告知我需要使用模塊*在球拍中進行。我仍然不完全確定它是如何工作的。
這是我到目前爲止有:
#lang racket
(module* fun scheme/base
(define old+ +)
(define + new+)
(define (new+ x y)
(cond ((and (vector? x) (vector? y))
(quatplus x y))
(else (old+ x y))))
(define (quatplus x y)
(let ((z (make-vector 4)))
(vector-set! z 0 (old+ (vector-ref x 0) (vector-ref y 0)))
(vector-set! z 1 (old+ (vector-ref x 1) (vector-ref y 1)))
(vector-set! z 2 (old+ (vector-ref x 2) (vector-ref y 2)))
(vector-set! z 3 (old+ (vector-ref x 3) (vector-ref y 3)))
z)))
但它似乎並沒有做任何事情。如果有人對此有所瞭解,我會非常感激。
謝謝。
作爲警告,不要污衊您的問題。如果您再次這樣做,我會鎖定問題並暫停您的帳戶。 –
瑕疵問題是什麼? – koziez
玷污意味着大幅修改帖子以改變其含義。在這種情況下(http://stackoverflow.com/posts/21768408/revisions)OP試圖混淆整個帖子。 – GoZoner