Personal tools

Cum scriu functia main ca sa pot compila si obtine un executabil ?

From HaskellWiki

Revision as of 22:39, 18 January 2011 by Ha$kell (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

1 . 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 ?


2 . 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 "text"

2. actiunea de IO pentru citit un string din tastatura este getLine

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 !!

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]

[Category:RoHaskell]