Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Dzień dobry
- 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).
- W związku z czym przesyłam poprawny kod.
- import scala.annotation.tailrec
- object Main {
- def main(args: Array[String]) ={
- def reverse(str: String): String = {
- @tailrec
- def reverse2(str:String, n:Int, acc:String): String = {
- if (n<0) acc
- else reverse2(str,n-1, acc+str(n))
- }
- reverse2(str,str.length()-1, "")
- }
- println(reverse("napis"))
- }
- }
- 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 :).
- Przepraszam za całe zamieszanie.
- 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