我有一個摺疊函數,我想用於許多不同的結構,每個結構都帶有任意命名的字段。因此,我需要告訴fold函數傳遞了哪種結構,以及訪問哪個字段。我需要的是這樣的:球拍,函數中的訪問結構字段
(define-struct test (element))
(define test_struct (make-test 0))
(define (getfield elementname structure)
((typeof structure)-elementname structure))
(getfield element test_struct)
最後一行則等同於:
(test-element test_struct)
當然以上都不是正確的語法,但它應該顯示我什麼都對。基於一些其他問題在這裏stackoverflow,似乎答案與syntax
有關,但我不知道如何工作。
非常感謝您的回答。我最終選擇了第一個選項。它有點像黑客,但是嘿,有時候這只是需要的! – NickO 2013-05-06 02:06:27
@NickO我應該提到在Racket中有這樣的先例:可選的'#:key sort-key'作爲'sort'的參數。這是適用於該項目以獲得「有趣」價值的功能。 –
2013-05-06 12:05:11