Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pp:22:laboratoare:racket:functionale [2022/03/11 11:53]
bot.pp created
pp:22:laboratoare:racket:functionale [2022/03/11 14:06] (current)
bot.pp
Line 1: Line 1:
 ====== Racket: Funcții ca valori. Funcționale ====== ====== Racket: Funcții ca valori. Funcționale ======
  
-  * Data publicării: ​15.03.2021 +  * Data publicării: ​11.03.2022 
-  * Data ultimei modificări: ​15.03.2021+  * Data ultimei modificări: ​11.03.2022
  
 ===== Obiective ===== ===== Obiective =====
Line 51: Line 51:
 ==== Transformarea funcțiilor curry în funcții uncurry și invers ==== ==== Transformarea funcțiilor curry în funcții uncurry și invers ====
  
-<​HTML><​ol></​HTML>​ +=== Funcție curry -> uncurry ​=== 
-<​HTML><​li></​HTML><​HTML><​p></​HTML>​Funcție curry -> uncurry Dacă vrem să transmitem odată toți parametrii unei funcții curry atunci vom primi o eroare de tip "arity mismatch"​.<​HTML></​p></​HTML>​ + 
-<​HTML><​p></​HTML>​De exemplu, apelul ''​%%(add-curry 1 2)%%''​ va genera eroarea "​add-curry:​ arity mismatch; expected: 1; given: 2" pentru că add-curry este o funcție care primește un singur parametru x și întoarce o altă funcție. Un apel corect este de forma:<​HTML></​p></​HTML><​HTML></​li></​HTML><​HTML></​ol></​HTML>​+Dacă vrem să transmitem odată toți parametrii unei funcții curry atunci vom primi o eroare de tip "arity mismatch"​. 
 + 
 +De exemplu, apelul ''​%%(add-curry 1 2)%%''​ va genera eroarea "​add-curry:​ arity mismatch; expected: 1; given: 2" pentru că add-curry este o funcție care primește un singur parametru x și întoarce o altă funcție. Un apel corect este de forma:
  
 <code lisp> <code lisp>
Line 59: Line 61:
  
 </​code>​ </​code>​
-<​code>​ +Un mod de rezolvare a acestei probleme este prin transformarea funcției add-curry într-o funcție uncurry:
-Un mod de rezolvare a acestei probleme este prin transformarea +
-funcției add-curry într-o funcție uncurry:+
  
-</​code>​ 
 <code lisp> <code lisp>
 (define converted-add-curry (define converted-add-curry
Line 72: Line 71:
  
 </​code>​ </​code>​
-<​HTML><​ol start="​2"></​HTML>​ +=== Funcție uncurry -> curry === 
-<​HTML><​li></​HTML>​Funcție uncurry -> curry Orice funcție uncurry poate fi transformată ușor într-o funcție curry prin intercalarea de funcții anonime care să primească treptat fiecare parametru în parte. De exemplu pentru add-uncurry:​<​HTML></​li></​HTML><​HTML></​ol></​HTML>​+ 
 +Orice funcție uncurry poate fi transformată ușor într-o funcție curry prin intercalarea de funcții anonime care să primească treptat fiecare parametru în parte. De exemplu pentru add-uncurry:​
  
 <code lisp> <code lisp>
Line 304: Line 304:
 Citiți exercițiile **rezolvate**;​ apoi, rezolvați exercițiile **propuse**. Citiți exercițiile **rezolvate**;​ apoi, rezolvați exercițiile **propuse**.
  
-  * [[https://​ocw.cs.pub.ro/​courses/​_media/​pp/​21/​laboratoare/​racket/​functionale-skel.zip|Exerciții rezolvate și propuse]] +  * [[https://​ocw.cs.pub.ro/​courses/​_media/​pp/​22/​laboratoare/​racket/​functionale-skel.zip|Exerciții rezolvate și propuse]] 
-  * [[https://​ocw.cs.pub.ro/​courses/​_media/​pp/​21/​laboratoare/​racket/​functionale-sol.zip|Soluții]]+  * [[https://​ocw.cs.pub.ro/​courses/​_media/​pp/​22/​laboratoare/​racket/​functionale-solutii.zip|Soluții]]
   * [[https://​github.com/​cs-pub-ro/​PP-laboratoare/​raw/​master/​racket/​functionale/​functionale-cheatsheet.pdf|Cheatsheet Laboratorul 3]]   * [[https://​github.com/​cs-pub-ro/​PP-laboratoare/​raw/​master/​racket/​functionale/​functionale-cheatsheet.pdf|Cheatsheet Laboratorul 3]]
  
pp/22/laboratoare/racket/functionale.1646992393.txt.gz · Last modified: 2022/03/11 11:53 by bot.pp
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0