Advertisement
Guest User

Inginious error

a guest
Dec 6th, 2016
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Oz 0.76 KB | None | 0 0
  1.  
  2. local Producer Consumer Filter in
  3.     fun {Producer N}
  4.         fun {Aux X}
  5.             if X==N then X|nil
  6.             else X|{Aux X+1}
  7.             end
  8.         end
  9.     in
  10.         {Aux 1}
  11.     end
  12.  
  13.     fun {Consumer S}
  14.         fun {Aux S Sum}
  15.             case S
  16.             of H|T then {Aux T Sum+H}
  17.             [] nil then Sum
  18.             end
  19.         end
  20.     in
  21.         {Aux S 0}
  22.     end
  23.  
  24.     fun {Filter S}
  25.         case S
  26.         of H|T then
  27.             if H mod 2 == 0 then {Filter T}
  28.             else H|{Filter T}
  29.             end
  30.         [] nil then nil
  31.         end
  32.     end
  33.  
  34.     local S I R in
  35.         thread S = {Producer 20} end
  36.         thread I = {Filter S} end
  37.         thread R = {Consumer I} end
  38.         {Browse R}
  39.     end
  40. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement