,因爲昨天我一直在試圖編程實現方案的特例聲明,將做到以下幾點:定義的語法使用的方案
(define (sort x)
(cond ((and (list? x) x) => (lambda (l)
(sort-list l)))
((and (pair? x) x) => (lambda (p)
(if (> (car p) (cdr p))
(cons (cdr p) (car p))
p)))
(else "here")))
,而不是使用所有的和的和電導率的說法,我將有:
(define (sort x)
(scase ((list? x) => (lambda (l)
(sort-list l)))
((pair? x) => (lambda (p)
(if (> (car p) (cdr p))
(cons (cdr p) (car p))
p)))
(else "here")))
我到目前爲止做的,是這樣的:
(define (sort x)
(scase (list? x) (lambda (l)
(sort-list l)))
(scase (pair? x) (lambda (p)
(if (> (car p) (cdr p))
(cons (cdr p) (car p))
p))))
與此代碼:
(define-syntax scase
(syntax-rules()
((if condition body ...)
(if condition
(begin
body ...)))))
我想現在要做的,只是讓scase語句有多個參數是這樣的:
(scase ((list? (cons 2 1)) 'here)
((list? '(2 1)) 'working))
,但我似乎無法弄清楚我如何能做到這一點。也許你們可以給我一點幫助?
在此先感謝;)
如果這回答了你的問題,你應該[接受它](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)。 –