我想實現這樣的事情:遞歸哈斯克爾
mymin (x:[]) = x
mymin (x:y:xs) = mymin ((if x < y then x else y):xs)
mysort [] = []
mysort (x) = mymin x (mysort othervalues)
我知道這個代碼是錯誤的,但它只是想法。我怎麼可以連接其餘的值與返回遞歸的最小值。 輸入會像
mysort [7,9,3,7,1,2]
[1,**7,9,3,7,2**]
[1,2,**7,9,3,7**]
[1,2,3,**7,9,7**]
[1,2,3,7,**7,9**]
[1,2,3,7,7,**9**]
[1,2,3,7,7,9]
謝謝。我總是需要定義一個類型的一個問題? – Urah
@Urah不,你不需要。 'a'只是屬於類型'Ord'的任何類型。這只是使你的函數在'Ord'類中變得多態。但編寫函數定義之前編寫類型更好。同樣,通過編寫類型,您可以爲編譯器提供某些提示,以便它可以執行某些類型的優化。 – Satvik