Cum scriu functia main ca sa pot compila si obtine un executabil ?
. Problema
Am scris functia care transforma gradele Celsius in grade Farenheit si Kelvin.
temp :: Float -> String
temp x = (show (x * 1.8 + 32) ++ " Fahrenheit, " ++ show (x + 273.15) ++ " Kelvin")
Cum scriem functia main ca sa putem:
- citi date - aplela functia noastra de transformare - scrie rezultatul,
iar codul sa-l transformam in executabil ?
. Raspuns
module Main where
main :: IO ()
main = do { putStrLn "Dati nr de grade Celsius :";
strbuf <- getLine;
print $ temp (read strbuf::Float ) ;
return ();
}
temp :: Float -> String
temp x = (show (x * 1.8 + 32) ++ " Fahrenheit, " ++ show (x + 273.15) ++ " Kelvin")
Ce trebuie sa cunoasteti:
1. actiunea de IO pentru scris texte este putstr "<string>"
2. actiunea de IO pentru citit un string din tastatura este getLine. Se foloseste ca in exemplu.
3. Functia read se aplica textului din buffer -- un string -- dar trebuie sa stie in ce tip de data il va transforma. Se foloseste deci ca: read <stringul de intrare> :: <tipul rezultatului asteptat>
4. Conversiile din alt tip in string se fac cu functia show, daca bineinteles tipul este din clasa Show. Iar tipurile simple si compuse din tipuri predefinite -- liste, n-uple -- sunt din clasa Show. Dar asa ceva stiati! :)
5. actiunea de IO pentru scrierea la iesire este print si este polimorfica , fiind produsul dintre putStr si show.
6. Pentru a compila fara probleme numiti modului Main , fisierul Main.hs si compilati cu: ghc --make Main.hs
Alte comenzi penmtru compilat pot include librarii: vedeti OpenGl in Haskell.