我必須解決的一個問題自然數的一個獨特的定義:類型化球拍:自然數
(define-type Nat (U 'Zero Succ))
(define-struct Succ ([prev : Nat]) #:transparent)
所以基本上,0 = 'Zero, 1 = (Succ 'Zero), 2 = (Succ (Succ 'Zero))....
等
使用這種形式,而不將其轉換爲整數,我寫了遞歸函數來添加,減去和乘以自然數。對於附加功能,我已經試過這
(: nat+ : Nat Nat -> Nat)
(define (nat+ n m)
(match '(n m)
['('Zero 'Zero) 'Zero]
['((Succ p) 'Zero)
n]
['('Zero (Succ p))
m]
['((Succ p) (Succ t))
(nat+ p (Succ m))]))
,但我得到的錯誤
號碼:未綁定的標識在模塊中:P。
有沒有人有寫這種類型的遞歸函數的任何建議。