Komentarze (18)

30 lat nie programowałem, może temu nie rozumiem. Ma zwracać prawdę, lub fałsz, ale na koniec i tak ma zwrócić n-2? Kto mi to wytłumaczy?

@Fly_agaric

  • is_odd(1) zwraca true

  • is_odd(2) zwraca is_odd(0) które zwraca false

  • is_odd(3) zwraca is_odd(1) które zwraca true

  • is_odd(4) zwraca is_odd(2) które zwraca is_odd(0) które zwraca true

Czas i liczba obliczeń do odpowiedzi rośnie gdy przekazujemy większą liczbę.


Poprawna implementacja by miała: return n % 2 == 1;.

Jeśli reszta z dzielenia to 1 to nieparzysta.

Na obrazku mamy absurdalnie niewydajną rekurencje.

@Fly_agaric do tego jeszcze nie ma typu więc nawet papieża możesz do tej funkcji przekazać a js będzie to procesował xD (jeśli to js a tak mi się wydaje)

@Fly_agaric Ahh rekurencja xD. Mój ulubiony koncept w programowaniu którego zawsze uczą cię na starcie i którego nigdy potem nie używasz bo w sumie nie ma sensu i tylko niepotrzebnie utrudnia czytanie kodu xd.

fcbe0d07-338d-465d-b5a0-23c5249d1c83

@Catharsis @Czokowoko rekrurecja jest najlepszy do pisania parserów, wystarczy mieć obiekt do zmapowania z zagnieżdżeniami. To nie jest koncept bez zastosowania.

@Deykun Nie twierdzę, że jest totalnie bezużyteczna tylko że ciężko podczas normalnego kodowania znaleźć dla niej praktyczne zastosowanie. Takie parsery to się raczej nie pisze zbyt często a do klepania CRUDów to rekurencji raczej nie użyjesz. Nawet jeśli w jakimś miejscu faktycznie warto by było jej użyć to i tak tego nie zauważysz bo zbyt rzadko z tego korzystasz.

Zaloguj się aby komentować