Haskell 和函数式编程是我不熟悉的东西,这学期我第一次见到 Haskell。当我尝试进行递归时,我得到了无限循环(不是很自豪)
这是代码
import Data.List
import System.IO
mrLoop :: Int -> Int -> IO()
mrLoop a b = do
if b == 10 then return ()
else
print(a*b)
mrLoop a (b+1)
main = do mrLoop 2 0
Run Code Online (Sandbox Code Playgroud)
所以我试着玩它,不知何故它起作用了
mrLoop :: Int -> Int -> IO()
mrLoop a 10 = return()
mrLoop a b = do
print(a*b)
mrLoop a (b+1)
Run Code Online (Sandbox Code Playgroud)
但是我的一个朋友说这不是 Haskell 的方式。那么我如何以 Haskell 的方式做到这一点呢?为什么第一个代码不起作用?
haskell ×1