Difference between revisions of "Cum scriu functia main ca sa pot compila si obtine un executabil ?"
(New page: ==. Problema == Am scris functia care transforma gradele Celsius in grade Farenheit si Kelvin. <haskell> temp :: Float -> String temp x = (show (x * 1.8 + 32) ++ " Fahrenheit, " ++ s...) |
|||
Line 51: | Line 51: | ||
Ce trebuie sa cunoasteti: |
Ce trebuie sa cunoasteti: |
||
− | 1. actiunea de IO pentru scris texte este ''putstr " |
+ | 1. actiunea de IO pentru scris texte este ''putstr "<string>"'' |
− | 2. actiunea de IO pentru citit un string din tastatura este ''getLine'' |
+ | 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 |
+ | 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 |
+ | 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. |
+ | 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: |
6. Pentru a compila fara probleme numiti modului Main , fisierul Main.hs si compilati cu: |
||
ghc --make Main.hs |
ghc --make Main.hs |
||
− | Alte comenzi penmtru compilat pot include librarii: vedeti [openGl] |
+ | Alte comenzi penmtru compilat pot include librarii: vedeti [[openGl]] |
− | [Category:RoHaskell] |
+ | [[Category:RoHaskell]] |
Revision as of 22:42, 18 January 2011
. 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