2011-12-30 4 views
5

Возьмите это, например: http://www.haskell.org/haskellwiki/99_questions/Solutions/32Как запустить эту программу haskell в WinGHCi?

(**) 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?

Спасибо!

ответ

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 
    

Тип :help для получения дополнительной информации или см. Chapter 2: Using GHCi of the GHC User's Guide.

+0

Aha .. вот как вы играете с функцией. Спасибо!! : D – Amjad

Смежные вопросы