Personal tools

Programati si zambiti !

From HaskellWiki

(Difference between revisions)
Jump to: navigation, search
m
 
(4 intermediate revisions by one user not shown)
Line 1: Line 1:
  +
[[Category:Ro]]
  +
 
http://www.haskell.org/happy/Happy.gif
 
http://www.haskell.org/happy/Happy.gif
==. Este plus un nume de functie ca si f , g sau x ? ==
+
Click pe show pentru a expanda cuprinsul.<br>
  +
Operatia inversa se face cu click pe hide. <br>
  +
==. Este plus un nume de functie ca si f , g sau x ? Dar $ ?==
 
Prelude> ( \ (+) -> 1 +2 ) (-) <br>
 
Prelude> ( \ (+) -> 1 +2 ) (-) <br>
 
-1 <br>
 
-1 <br>
Line 28: Line 30:
 
57 <br>
 
57 <br>
   
Nu incercati cu (*) !! <br>
+
Daca definiti (#) = (\ a b -> 8 * a + b) puteti scrie numerele octale in maniera : 3#4#7 <br>
  +
Nu incercati cu (*) in loc de (#) deoarece * apare in definitie cu vechiul sau sens, deci nu trebuie redefinit. Incercarea de a evalua ''let (*) = (\ a b -> 8 * a + b) in 7#1'' a reusit sa dea interpretorul Hugs peste cap. <br> <br>
   
 
==.Cum transformam un string in numar octal in maniera traditionala ? ==
 
==.Cum transformam un string in numar octal in maniera traditionala ? ==
Line 38: Line 40:
 
Baza8> let (+) = (*) in 2 + 3 <br>
 
Baza8> let (+) = (*) in 2 + 3 <br>
 
6 <br>
 
6 <br>
  +
  +
==. Cum transform o cifra in caracterul corespunzator ? ==
  +
Baza8> head $ show 1 <br>
  +
'1' <br>
  +
Baza8>
 
----
 
----
 
Nota: figurina de mai sus este simbolul unui generator de parsere care produce surse Haskell, numit Happy.
 
Nota: figurina de mai sus este simbolul unui generator de parsere care produce surse Haskell, numit Happy.
Line 47: Line 54:
 
http://www.haskell.org/happy/Happy.gif
 
http://www.haskell.org/happy/Happy.gif
 
----
 
----
+
Pagina indexata la indexul [[Category:Ro]] [http://www.haskell.org/haskellwiki/Category:Ro Categories:Ro]
[http://www.haskell.org/haskellwiki/Ro/Haskell <= Inapoi la pagina principala Ro/Haskell ]
+
----
  +
[http://www.haskell.org/haskellwiki/Ro/Haskell <= Inapoi la pagina principala Ro/Haskell. ]<br> <br>
  +
[http://www.haskell.org/haskellwiki/Intrebarile_incepatorului <'''-''' Inapoi la inceputul paginii 'Intrebarile incepatorului Ro/Haskell'. ]

Latest revision as of 14:35, 10 February 2008


Happy.gif Click pe show pentru a expanda cuprinsul.
Operatia inversa se face cu click pe hide.

Contents

[edit] 1 . Este plus un nume de functie ca si f , g sau x ? Dar $ ?

Prelude> ( \ (+) -> 1 +2 ) (-)
-1
Prelude> ( \ x -> x 1 2 ) (-)
-1
Prelude> ( \ x -> x 1 2 ) (-)
-1
Prelude> ( \ ($) x y -> y $ x ) (+) 1 2
3

[edit] 2 .Ce tipuri au: $ aplicat lui $, "punct" aplicat lui "punct" si alte combinatii ?

Prelude> :t ($ ($) )
flip ($) ($) :: (((a -> b) -> a -> b) -> c) -> c
Prelude> :t (. (.) )
flip (.) (.) :: (((a -> b) -> a -> c) -> d) -> (b -> c) -> d
Prelude> :t ((.). )
((.) .) :: (a -> b -> c) -> a -> (d -> b) -> d -> c
Prelude> :t ($)
($) :: (a -> b) -> a -> b

[edit] 3 .Cum putem scrie numere octale ?

let (//) = (\ a b -> 8 * a + b) in 7//1
57

let (#) = (\ a b -> 8 * a + b) in 7#1
57

Daca definiti (#) = (\ a b -> 8 * a + b) puteti scrie numerele octale in maniera  : 3#4#7
Nu incercati cu (*) in loc de (#) deoarece * apare in definitie cu vechiul sau sens, deci nu trebuie redefinit. Incercarea de a evalua let (*) = (\ a b -> 8 * a + b) in 7#1 a reusit sa dea interpretorul Hugs peste cap.

[edit] 4 .Cum transformam un string in numar octal in maniera traditionala ?

Baza8> foldl (\ a b -> 8 * a + b) 0 $ map (\ a -> ord a - ord '0') "74"
60
Baza8>

[edit] 5 .Cum se redefineste, operatorul plus ca sa faca inmultiri ?

Baza8> let (+) = (*) in 2 + 3
6

[edit] 6 . Cum transform o cifra in caracterul corespunzator ?

Baza8> head $ show 1
'1'
Baza8>


Nota: figurina de mai sus este simbolul unui generator de parsere care produce surse Haskell, numit Happy. Il puteti privi pe Happy ca pe un fel de Yacc sau Bison care produce surse in Haskell. Sunt totusi unele deosebiri intre Bison (sau Yacc ) si Happy. De fapt sunt chiar imbunatatiri:
- Happy va permite sa produceti mai multe parsere din acelasi fisier cu specificatii.
- Happy va da un control bun asupra arborilor generati, iar codul pe care l-aveti de scris e mai scurt.
[Pagina originala despre Happy o gasiti aici (eng.)]

Happy.gif


Pagina indexata la indexul Categories:Ro


<= Inapoi la pagina principala Ro/Haskell.

<- Inapoi la inceputul paginii 'Intrebarile incepatorului Ro/Haskell'.