Structuri de date funcționale - sugestii corectare

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ă

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?
pp/23/teme/haskell-sugestii-corectare.txt · Last modified: 2023/05/01 15:37 by mihnea.muraru
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