我對haskell很陌生。
如何回傳 (x1,x2) 并從我的代碼中列印出來?
qqq x
| x < 0 x1 = mod (-x) 10
| 1 < x && x < 99 x1 = mod x 10
| x2 = mod x 10
謝謝你的幫助。
uj5u.com熱心網友回復:
您以錯誤的方式使用警衛。您似乎將這些視為if陳述句,然后您可以將其用于assignments。在 Haskell 中,您不必為變數賦值,而是宣告這些值。您可以使用:
qqq :: Integral a => a -> (a, a)
qqq x
| x < 0 = (mod (-x) 10, x2)
| 1 < x && x < 99 = (mod x 10, x2)
where x2 = mod x 10
因此,這里每個守衛在等式符號 ( =) 之前都有一個條件,并且在右側回傳一個 2 元組,其中第一項是 的運算式x1,第二項是x2。
您還應該為x == 1and實作額外的案例x >= 99,這兩個守衛沒有涵蓋這些案例。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/488475.html
標籤:哈斯克尔
上一篇:Python理解執行緒和競爭條件
