2011-12-30 53 views
5

dar esto por ejemplo: http://www.haskell.org/haskellwiki/99_questions/Solutions/32¿Cómo ejecutar este programa haskell en 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) 

¿Cómo puedo probar esto en WinGHCi? ¿Cuáles son los pasos/flujo de trabajo para ejecutar los programas de Haskell?

Gracias!

Respuesta

11
  1. Guarde el código en un archivo .hs algún lugar, por ejemplo C:\Haskell\MyGCD.hs.

  2. inicio WinGHCi y vaya al directorio donde lo guardó con :cd luego cargarla con :load:

    Prelude> :cd C:\Haskell 
    Prelude> :load MyGCD.hs 
    [1 of 1] Compiling Main    (MyGCD.hs, interpreted) 
    Ok, modules loaded: Main. 
    
  3. Ahora se puede jugar con la función:

    *Main> myGCD 12 10 
    2 
    

Escriba :help para obtener más información, o vea Chapter 2: Using GHCi of the GHC User's Guide.

+0

Ajá ... así es como juegas con la función. ¡¡Gracias!! :RE – Amjad

Cuestiones relacionadas