Difference between revisions of "Cum scriu functia main ca sa pot compila si obtine un executabil ?"

From HaskellWiki
Jump to navigation Jump to search
(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 "text"''
+
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 ''<stringul de intrare>'' :: ''<tipul rezultatului asteptat>''
+
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 trebuie sa fi stiut deja !!
+
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