Differences

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

Link to this comparison view

pp:26:teme:racket-supermarket [2026/03/26 08:44]
mihaela.balint
pp:26:teme:racket-supermarket [2026/03/26 08:55] (current)
mihaela.balint
Line 53: Line 53:
 Exemplu pentru ''​ITEMS = 5'':​ Exemplu pentru ''​ITEMS = 5'':​
 <code scheme> <code scheme>
-(serve '((ana 7) (mia 2) 5 (ion 8) (dan 6) (close 2) (delay 1 15) (ema 2) (open 2) (geo 5) (close 1) (ensure 7))+(serve '((ana 7) (mia 2) 5 (ion 8) (dan 6) (close 2) (delay 1 15) (ema 2) (open 2) (geo 5) (close 1) (ensure 7))
        (list (empty-counter 1))        (list (empty-counter 1))
        (list (empty-counter 2) (empty-counter 3)))        (list (empty-counter 2) (empty-counter 3)))
Line 72: Line 72:
     * ''​ion''​ la ''​C3''​ => ''​%%C3 = (counter 3 8 8 (queue {(ion . 8)} '() 1 0))%%''​     * ''​ion''​ la ''​C3''​ => ''​%%C3 = (counter 3 8 8 (queue {(ion . 8)} '() 1 0))%%''​
     * ''​dan''​ la ''​C2''​ => ''​%%C2 = (counter 2 8 2 (queue {(ana . 7)} '((dan . 6)) 1 1))%%''​     * ''​dan''​ la ''​C2''​ => ''​%%C2 = (counter 2 8 2 (queue {(ana . 7)} '((dan . 6)) 1 1))%%''​
-  * ''​C2''​ se închide => '​ana'​ rămâne la '​C2',​ iar ''​dan''​ se mută la ''​C3''​+  * ''​C2''​ se închide => ''ana'' rămâne la ''C2'', iar ''​dan''​ se mută la ''​C3''​
     * => ''​%%C2 = (counter 2 2 2 (queue {(ana . 7)} '() 1 0))%%''​ și nu mai primește clienți     * => ''​%%C2 = (counter 2 2 2 (queue {(ana . 7)} '() 1 0))%%''​ și nu mai primește clienți
     * => ''​%%C3 = (counter 3 14 8 (queue {(ion . 8)} '((dan . 6)) 1 1))%%''​     * => ''​%%C3 = (counter 3 14 8 (queue {(ion . 8)} '((dan . 6)) 1 1))%%''​
Line 79: Line 79:
     * ''​C2''​ are ''​tt''​ mai mic, însă ''​C2''​ este închisă, deci se alege între ''​C1''​ și ''​C3''​     * ''​C2''​ are ''​tt''​ mai mic, însă ''​C2''​ este închisă, deci se alege între ''​C1''​ și ''​C3''​
   * ''​C2''​ se deschide, fără să producă alte modificări   * ''​C2''​ se deschide, fără să producă alte modificări
-  * apoi trece ''​1'' ​minut, după care situația este: +  * apoi trec ''​2'' ​minute, după care situația este: 
-    * întârzierea de la ''​C1''​ s-a consumat parțial => ''​%%C1 = (counter 1 14 14 (queue {} '() 0 0))%%''​ +    * întârzierea de la ''​C1''​ s-a consumat parțial => ''​%%C1 = (counter 1 13 13 (queue {} '() 0 0))%%''​ 
-    * la ''​C2''​ a trecut ​''​1'' ​minut => ''​%%C2 = (counter 2 1 1 (queue {(ana . 7)} '​() ​0))%%''​ +    * ''​ana''​ a ieșit de la ''​C2''​ => ''​%%C2 = (counter 2 0 0 (queue {} '​() ​0))%%''​ 
-    * la ''​C3'' ​trecut ''​1'' ​minut => ''​%%C3 = (counter 3 15 7 (queue {(ion . 8) <​flux...>​} '() 3 0))%%''​ +    * la ''​C3'' ​au trecut ''​2'' ​minute ​=> ''​%%C3 = (counter 3 14 6 (queue {(ion . 8) <​flux...>​} '() 3 0))%%''​ 
-  * ''​geo''​ se așază la ''​C2''​ => ''​%%C2 = (counter 2 6 1 (queue {(ana 7)} '((geo . 5)) 1 1))%%''​+  * ''​geo''​ se așază la ''​C2''​ => ''​%%C2 = (counter 2 5 5 (queue {(geo 5)} '() 1 0))%%''​
   * ''​C1''​ se închide, fără să producă alte modificări   * ''​C1''​ se închide, fără să producă alte modificări
   * ''​ensure''​ compară media timpilor totali ai caselor deschise cu ''​7''​   * ''​ensure''​ compară media timpilor totali ai caselor deschise cu ''​7''​
-    * ''​tt2''​ + ''​tt3''​ = ''​6''​ + ''​15''​ = ''​21''​ => ''​tt-mediu = 21 / 2 > 7''​+    * ''​tt2''​ + ''​tt3''​ = ''​5''​ + ''​14''​ = ''​19''​ => ''​tt-mediu = 19 / 2 > 7''​
     * ''​tt1''​ nu participă la medie întrucât ''​C1''​ este închisă     * ''​tt1''​ nu participă la medie întrucât ''​C1''​ este închisă
-    * se adaugă o casă slow goală (''​C4''​) => ''​tt-mediu = 21 / 3 ≤ 7''​ (deci ne oprim aici cu adăugarea)+    * se adaugă o casă slow goală (''​C4''​) => ''​tt-mediu = 19 / 3 ≤ 7''​ (deci ne oprim aici cu adăugarea) 
 +Rezultat final: 
 +<code scheme>​ 
 +(list 
 + '​((1 . mia) (2 . ana)) 
 + (cons 2 (queue #<​stream>​ '() 1 0)) 
 + (cons 3 (queue #<​stream>​ '() 3 0))) 
 +</​code>​
  
pp/26/teme/racket-supermarket.1774507481.txt.gz · Last modified: 2026/03/26 08:44 by mihaela.balint
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