Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def ldzialanie(s1:Stream[Int],s2:Stream[Int],mark:String):Stream[Int]=
- {
- mark match {
- case "+" => (s1,s2) match {
- case (_,Stream.Empty) => val h1#::t1 = s1; h1#::(ldzialanie(t1,Stream(),"+"))
- case (Stream.Empty,_) => val h2#::t2 = s2; h2#::(ldzialanie(Stream(),t2,"+"))
- case (_,_) => val h1#::t1 = s1; val h2#::t2=s2;(h1+h2)#::(ldzialanie(t1,t2,"+"))
- }
- case "-" => (s1,s2) match {
- case (_,Stream.Empty) => val h1#::t1 = s1; h1#::(ldzialanie(t1,Stream(),"-"))
- case (Stream.Empty,_) => val h2#::t2 = s2; ((-1)*h2)#::(ldzialanie(Stream(),t2,"-"))
- case (_,_) => val h1#::t1 = s1; val h2#::t2=s2;(h1-h2)#::(ldzialanie(t1,t2,"-"))
- }
- case "*" => (s1,s2) match {
- case (_,Stream.Empty) => val h1#::t1 = s1; h1#::(ldzialanie(t1,Stream(),"*"))
- case (Stream.Empty,_) => val h2#::t2 = s2; h2#::(ldzialanie(Stream(),t2,"*"))
- case (_,_) => val h1#::t1 = s1; val h2#::t2=s2;(h1*h2)#::(ldzialanie(t1,t2,"*"))
- }
- case "/" => (s1,s2) match {
- case (_,Stream.Empty) => val h1#::t1 = s1; h1#::(ldzialanie(t1,Stream(),"/"))
- case (Stream.Empty,_) => val h2#::t2 = s2; (0)#::(ldzialanie(Stream(),t2,"/"))
- case (_,_) => val h1#::t1 = s1; val h2#::t2=s2;(h1/h2)#::(ldzialanie(t1,t2,"/"))
- }
- }
- }
- val l1 = Stream.cons(10,Stream.cons(7,Stream.cons(3,Stream.cons(10,Stream.empty))))
- val l2 = Stream.cons(4,Stream.cons(8,Stream.cons(3,Stream.empty)))
- val l3 = ldzialanie(l1,l2,"+")
- l3.take(4).toList
- val l4 = ldzialanie(l1,l2,"-")
- l4.take(4).toList
- val l5 = ldzialanie(l1,l2,"*")
- l5.take(4).toList
- val l6 = ldzialanie(l1,l2,"/")
- l6.take(4).toList
Advertisement
Add Comment
Please, Sign In to add comment