好的元素列表數量最多,所以我定義3名列表:使用argmax找到
(define mylist '((pause 5 5 5)(note 3 4 5)(pause 3 4 4)))
(define myseqlist '(sequential-music-element (note 5 5 5) (note 4 3 4) (note 5 3 4)))
(define myparlist '(parallel-music-element (note 5 2 5) (note 4 2 4) (note 5 3 1)))
我有謂詞note?
和pause?
,本質上它檢查是否名單開始的'note
或'pause
然後返回true或錯誤。 但是我可以有含註釋和暫停清單,這是callled順序音樂元素(見上文myseqlist
)或平行音樂元素(見上文myparlist
)
如何可以定義返回的程度的函數複音,它將4個元素中的一個作爲參數? (參見下面的我的嘗試)
pause
度複音= 0
note
度複音= 1
序列音樂元件的? 返回度數最大的孩子
平行音樂元素? 返回度兒童
如何完成這個功能的總和:
(define (degree-of-polyphony elem)
(cond [(note? elem) 1]
[(pause? elem) 0]
[(sequential-music-element? elem) (argmax ???)]))
我不知道如何利用argmax在這種情況下。它應該檢查degree-of-polyphony
作爲參數的整個元素列表的最高複音。
實例:(學位的複音myseqlist)應該返回1,因爲它具有至少一個註釋,如果所有的暫停,應該返回0
請不要破壞你的帖子。一旦你發佈了一個問題,它就一般屬於Stack Overflow社區(在CC-by-SA許可下)。如果您想取消關聯該帳戶與您的帳戶的關聯,請參閱[解除關聯請求的正確途徑](http://meta.stackoverflow.com/q/323395/584192)? –