Pabl0o0

Untitled

Nov 20th, 2017
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.13 KB | None | 0 0
  1.  
  2.  
  3.  
  4.  
  5.  
  6. def ldzialanie(s1:Stream[Int],s2:Stream[Int],mark:String):Stream[Int]=
  7. {
  8. mark match {
  9. case "+" => (s1,s2) match {
  10. case (_,Stream.Empty) => val h1#::t1 = s1; h1#::(ldzialanie(t1,Stream(),"+"))
  11. case (Stream.Empty,_) => val h2#::t2 = s2; h2#::(ldzialanie(Stream(),t2,"+"))
  12. case (_,_) => val h1#::t1 = s1; val h2#::t2=s2;(h1+h2)#::(ldzialanie(t1,t2,"+"))
  13. }
  14. case "-" => (s1,s2) match {
  15. case (_,Stream.Empty) => val h1#::t1 = s1; h1#::(ldzialanie(t1,Stream(),"-"))
  16. case (Stream.Empty,_) => val h2#::t2 = s2; ((-1)*h2)#::(ldzialanie(Stream(),t2,"-"))
  17. case (_,_) => val h1#::t1 = s1; val h2#::t2=s2;(h1-h2)#::(ldzialanie(t1,t2,"-"))
  18. }
  19. case "*" => (s1,s2) match {
  20. case (_,Stream.Empty) => val h1#::t1 = s1; h1#::(ldzialanie(t1,Stream(),"*"))
  21. case (Stream.Empty,_) => val h2#::t2 = s2; h2#::(ldzialanie(Stream(),t2,"*"))
  22. case (_,_) => val h1#::t1 = s1; val h2#::t2=s2;(h1*h2)#::(ldzialanie(t1,t2,"*"))
  23. }
  24. case "/" => (s1,s2) match {
  25. case (_,Stream.Empty) => val h1#::t1 = s1; h1#::(ldzialanie(t1,Stream(),"/"))
  26. case (Stream.Empty,_) => val h2#::t2 = s2; (0)#::(ldzialanie(Stream(),t2,"/"))
  27. case (_,_) => val h1#::t1 = s1; val h2#::t2=s2;(h1/h2)#::(ldzialanie(t1,t2,"/"))
  28. }
  29. }
  30. }
  31.  
  32.  
  33.  
  34. val l1 = Stream.cons(10,Stream.cons(7,Stream.cons(3,Stream.cons(10,Stream.empty))))
  35. val l2 = Stream.cons(4,Stream.cons(8,Stream.cons(3,Stream.empty)))
  36.  
  37. val l3 = ldzialanie(l1,l2,"+")
  38. l3.take(4).toList
  39.  
  40. val l4 = ldzialanie(l1,l2,"-")
  41. l4.take(4).toList
  42.  
  43. val l5 = ldzialanie(l1,l2,"*")
  44. l5.take(4).toList
  45.  
  46. val l6 = ldzialanie(l1,l2,"/")
  47. l6.take(4).toList
Advertisement
Add Comment
Please, Sign In to add comment