-2
A
回答
2
假設inc
和dec
是你的職責:
add x y | y > 0 = add (inc x) (dec y)
add x y | y < 0 = add (dec x) (inc y)
add x y | otherwise = x
,類似的還有subtract
。
3
inc :: Int -> Int
inc n = n + 1
dec :: Int -> Int
dec n = n - 1
add :: Int -> Int -> Int
add n 0 = n
add n m = add (inc n) (dec m)
所以,你只是增加一個數字,每次你減少其他。如果你遞歸你基本上重複這個過程,直到你遇到一些邊緣條件。這是減少的數字下降到0(注意:只適用於自然數,而不是負整數)。您可以使用if-then-else將其擴展爲負數並與0進行比較(<,>)。
邏輯上你可能有一個函數s
。
add(x,y) = add(y,x)
add(x,0) = x
add(x,s(y)) = add(s(x),y)
相關問題
- 1. 彈性搜索:能夠搜索'n1'並匹配'N°1'
- 2. 使用SetWindowText()添加新行功能
- 3. 如何避免使用will_paginate進行N + 1查詢?
- 4. 如何避免必須使用sed添加'\ n'(1)
- 5. 如何避免在爲行(n-1)添加行(n)進行隨機遊動時出現循環
- 6. 使用功能添加WebPartZone
- 7. 添加功能
- 8. 如何使用兩級1-N關係對CGridView列進行排序和搜索?
- 9. 如何驗證在jQuery中使用ID添加行功能
- 10. 如何使用Python向JSON添加換行符功能
- 11. 如何使用jQuery執行添加功能
- 12. 如何fork()n子進程執行不同的功能?
- 13. 如何添加功能
- 14. 使用n + = 1和n = n + 1之間的區別
- 15. 如何爲功能和功能參數添加說明?
- 16. 進行功能後追加
- 17. 如何使用key ++將x-1和x + 1添加到HashMap?
- 18. [n&1]和[n%2]如何工作?
- 19. 我該如何添加成功功能?
- 20. 如何1值添加到一個update_post_meta功能
- 21. 如何將1添加到每秒功能?
- 22. 如何添加向上滾動功能滑動1點擊?
- 23. 如何添加和SqlCommand進行比較?
- 24. SML:如何使用+1和-1遞歸地減半整數n
- 25. ArrayList使用array.add()添加行和列,如何添加行或列?
- 26. IIS:添加功能
- 27. 如何添加樣式附加功能
- 28. 如何使用Simplepie添加「加載更多」RSS提要功能
- 29. 如何使rowspan添加1和新行添加與JavaScript的jQuery的最後?
- 30. 如何使用DataGrid和MVVM添加行
我投票關閉這一問題作爲題外話,因爲它並沒有顯示什麼,筆者迄今嘗試和他們卡住了:那麼,你會公理化功能
add
例如。 – dfeuer歡迎來到Stack Overflow。請參閱幫助中心,獲取有關如何在此提出良好問題的建議。 – dfeuer
@dfeuer我認爲屬於「太寬泛」... – Bakuriu