如何在WinGHCi中运行这个haskell程序?

时间:2011-12-30 15:46:33

标签: haskell

以此为例: http://www.haskell.org/haskellwiki/99_questions/Solutions/32

(**) Determine the greatest common divisor of two positive integer numbers. Use Euclid's algorithm.

gcd' 0 y = y
gcd' x y = gcd' (y `mod` x) x
myGCD x y | x < 0     = myGCD (-x) y
          | y < 0     = myGCD x (-y)
          | y < x     = gcd' y x
          | otherwise = gcd' x y
The Prelude includes a gcd function, so we have to choose another name for ours. The function gcd' is a straightforward implementation of Euler's algorithm, and myGCD is just a wrapper that makes sure the arguments are positive and in increasing order.

A more concise implementation is:

myGCD :: Integer -> Integer -> Integer
myGCD a b
      | b == 0     = abs a
      | otherwise  = myGCD b (a `mod` b)

如何在WinGHCi中测试?运行haskell程序的步骤/工作流程是什么?

谢谢!

1 个答案:

答案 0 :(得分:11)

  1. 将代码保存在某个.hs文件中,例如C:\Haskell\MyGCD.hs

  2. 启动WinGHCi并转到使用:cd保存的目录,然后使用:load加载:

    Prelude> :cd C:\Haskell
    Prelude> :load MyGCD.hs
    [1 of 1] Compiling Main             ( MyGCD.hs, interpreted )
    Ok, modules loaded: Main.
    
  3. 现在您可以使用该功能:

    *Main> myGCD 12 10
    2
    
  4. 输入:help了解详情,或参阅Chapter 2: Using GHCi of the GHC User's Guide