2
A
回答
2
Scheme沒有基於類型``Java/C++的重載,它是動態類型的,所以它沒有意義。
你可以做雖然幾件事情:
可以重載基礎上的參數結構:
(define overload1
(case-lambda
((x y) (+ x y))
((x y z) (+ (- x y) z))))
這並不能真正幫助你,儘管因爲display
只會採取一個不管發生什麼事
(define (overload-kinda x)
(cond
((list? x) (do-list x))
((symbol? x) (do-sym x))
;etc
))
這是hacky,但有時是必要的。
我通常的做法是高階函數和的情況下拉姆達
(define my-display
(case-lambda
((x) (display x))
((x f) (display (f x)))))
現在,如果我們需要顯示任何事情,我們在一個函數傳遞給使其特別處理。
相關問題
- 1. 超載方法
- 2. 超載方法
- 3. 運算符超載解決方案
- 4. 超載內置(內在?)功能
- 5. 它是超載還是超載?
- 6. 調用超載主方法
- 7. 超載方法(關閉)
- 8. STL:超載和getter方法
- 9. 如何超載的方法
- 10. Swift - 超載靜態方法
- 11. 方法c沒有超載#
- 12. 運算符超載的錯誤答案
- 13. 如何超載一個方法
- 14. Codeigniter加載程序超時已過期
- 15. 實現一般的超時
- 16. 宏超載
- 17. 在JavaScript超載
- 18. 矩陣超載
- 19. 超載$()函數
- 20. MYSQL超載
- 21. C++超載
- 22. ostream的超載
- 23. 澄清超載
- 24. Ruby + =超載
- 25. 衝突超載
- 26. 超載類
- 27. RedirectToAction htmlAttribute超載
- 28. 用java超載
- 29. jNetPcap超載openOffline()
- 30. 超載List.Sort