Pabl0o0

Untitled

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