Cum scriu functia main ca sa pot compila si obtine un executabil ?
From HaskellWiki
(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: | + | 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
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 "<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
