我得到了這個練習,但我不知道如何開始和解決它。
一個軸上的點
- 判斷一個坐標所代表的點是否在坐標系中的某個軸上!
- 使用模式匹配!不要使用相等測驗或分支。
- 還要指定函式型別!
- 以下每個測驗用例都必須給出 True:
onAxis (0, 0)onAxis (0, 100)onAxis (50, 0)onAxis (-12, 0)not (onAxis (4, 5))
uj5u.com熱心網友回復:
Haskell 的模式匹配是一個強大而有用的特性。例如,您的函式可以有多個公式,Haskell 將選擇其中一個,例如,引數模式匹配:
isZero :: Int -> Bool
isZero 0 = True
isZero _ = False
這個簡單的小函式應該只是告訴我我的引數是否等于零。我這樣做沒有任何比較,只是通過模式匹配。0匹配......好吧,字面意思0。但_匹配一切。這里的順序很重要,選擇第一個匹配的公式。
那么你的積分呢?它們表示為元組:(x, y)。我們可以使用模式匹配“查看”值:
isZeroPoint :: (Int, Int) -> Bool
isZeroPoint (0, 0) = True
isZeroPoint _ = False
好的,那么我們如何知道(二維)點是在 X 軸還是 Y 軸上呢?看看給出的例子,現在應該很明顯了!
有了這個,你應該能夠解決你的運動!如果您這樣做了或仍有問題,請報告;)
PS:我沒有詳細說明完整的解決方案,因為如果我為您做功課,我認為這對您沒有幫助。
PPS:Int為了簡單起見,我只是選擇了具體型別,因為我不知道你已經學過的關于 Haskell 型別的其他內容。可以使用不同的數字型別(例如,Integer)或更一般的東西。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/316870.html
上一篇:為什么這個定點計算不停止?
