This shows you the differences between two versions of the page.
pp:23:teme:haskell-sugestii-corectare [2023/04/24 17:08] mihnea.muraru created |
pp:23:teme:haskell-sugestii-corectare [2023/05/01 15:37] (current) mihnea.muraru [Etapa 2] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Structuri de date funcționale - sugestii corectare ====== | ====== Structuri de date funcționale - sugestii corectare ====== | ||
- | * Etapa 1 | + | ===== Etapa 1 ===== |
- | * Ce înseamnă stilul point-free? | + | |
- | * (Bonus) Ce face funcționala unfoldr și cum ai utilizat-o? | + | |
- | * Cum ai gestionat transportul la incrementare? | + | |
- | * Cum ai gestionat împrumutul la decrementare? | + | |
- | * (Bonus) Ce face funcționala mapAccumL și cum ai utilizat-o? | + | |
- | * Pt ce a fost util list comprehension-ul la funcția stack? | + | |
- | * Cum ai deplasat numerele spre dreapta la funcția stack? | + | |
- | * Ce face funcționala scanl și cum ai utilizat-o? | + | |
- | * **Întrebarea de reflecție din ultimul TODO**, de la sfârșitul scheletului, legată de filtrarea pt păstrarea biților 1 | + | |
- | * R: Există pericolul ciclării, întrucât e posibil să se tot caute următorul bit 1, deși acesta nu mai există | + | |
+ | * Ce înseamnă stilul point-free? | ||
+ | * (Bonus) Ce face funcționala unfoldr și cum ai utilizat-o? | ||
+ | * Cum ai gestionat transportul la incrementare? | ||
+ | * Cum ai gestionat împrumutul la decrementare? | ||
+ | * (Bonus) Ce face funcționala mapAccumL și cum ai utilizat-o? | ||
+ | * Pt ce a fost util list comprehension-ul la funcția stack? | ||
+ | * Cum ai deplasat numerele spre dreapta la funcția stack? | ||
+ | * Ce face funcționala scanl și cum ai utilizat-o? | ||
+ | * **Întrebarea de reflecție din ultimul TODO**, de la sfârșitul scheletului, legată de filtrarea pt păstrarea biților 1 | ||
+ | * R: Există pericolul ciclării, întrucât e posibil să se tot caute următorul bit 1, deși acesta nu mai există | ||
+ | |||
+ | ===== Etapa 2 ===== | ||
+ | |||
+ | * Cum funcționează attach? | ||
+ | * Cum funcționează insertTree și cărei operații pe numere binare îi corespunde? | ||
+ | * Care a fost utilitatea construcției case în insertTree? | ||
+ | * Cum arată heap-ul vid? | ||
+ | * Cum se folosește insert de insertTree? | ||
+ | * Cum ai folosit list comprehensions și minimumBy în findMin? | ||
+ | * Cum funcționează mergeTrees și cărei operații pe numere binare îi corespunde? | ||
+ | * Care a fost utilitatea lui zipExtend în mergeTrees și ce altă funcțională ai folosit pentru a evita recursivitatea explicită? | ||
+ | * Cum se folosește merge de mergeTrees? | ||
+ | * De ce au toate operațiile complexitate logaritmică? | ||
+ | |||
+ | ===== Etapa 3 ===== | ||
+ | |||
+ | * Cum funcționează isolate? | ||
+ | * Cum se folosește removeMin de isolate? | ||
+ | * Avea vreo importanță dacă scoteai arborii vizi din listă în vederea sortării, înainte sau după aplicarea lui isolate? | ||
+ | * R: Da, vedeți comentariul din soluția de pe github | ||
+ | * **Întrebarea de reflecție din comentariile lui removeMin**: Care este contribuția evaluării leneșe la utilizarea eficientă a funcției isolate? | ||
+ | * R: În timpul determinării primei rădăcini de prioritate minimă, se utilizează doar primele componente ale perechilor întoarse de isolate, după care se evaluează doar cât este necesar pt a construi componenta a doua a perechii din care provine rădăcina de interes. | ||
+ | * Ce fac intercalate și replicate în show? | ||
+ | * De ce trebuie aplicați parțial constructorii BinomialTree și BinomialHeap în instanțele de Functor și Foldable, spre deosebire de instanța de Show? | ||
+ | * De ce variază doar tipul cheilor, nu și al priorităților, în tipul lui fmap? | ||
+ | * (bonus) Cum ai compus toate funcțiile din lista de funcții obținută în implementarea lui foldr? |