Advertisement
Guest User

Untitled

a guest
Mar 26th, 2019
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.16 KB | None | 0 0
  1. Dzień dobry
  2.  
  3. Informuję, że dzisiaj dostałem informację odnośnie tego, że przykład pokazany przeze mnie na tablicy był błędnie zaimplementowaną rekurencją ogonową. Rekurencja ogonowa polega na wywołaniu funkcji na końcu funkcji, jak się okazało nie można nawet wykonywać żadnych operacji na wartości zwracanej przez funkcję (w moim przypadku była to konkatenacja).
  4.  
  5. W związku z czym przesyłam poprawny kod.
  6.  
  7. import scala.annotation.tailrec
  8. object Main {
  9. def main(args: Array[String]) ={
  10. def reverse(str: String): String = {
  11. @tailrec
  12. def reverse2(str:String, n:Int, acc:String): String = {
  13. if (n<0) acc
  14. else reverse2(str,n-1, acc+str(n))
  15. }
  16. reverse2(str,str.length()-1, "")
  17. }
  18. println(reverse("napis"))
  19. }
  20. }
  21.  
  22. Polecam również bibliotekę: scala.annotation.tailrec, która była pokazana na wykładzie. Sposób użycie umieściłem już na mojej stronie :).
  23.  
  24. Przepraszam za całe zamieszanie.
  25.  
  26. Poprawiłem też treści zadań. Przypominam, że na kolokwium nie będą mieć Państwo dostępu do internetu, dlatego zachęcam do wykonywania ćwiczeń bez szukania czegokolwiek w sieci :).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement