Aktywne Wpisy

wojtek-polki +425
Czyli mężczyzna który:
-ma ciągłość zatrudnienia
-nie był na L4 w ciąży
-nie był na macierzyńskim
-nie pobiera świadczeń na dziecko (800+ itp)
-nie korzysta z opieki nad chorym dzieckiem
-ma ciągłość zatrudnienia
-nie był na L4 w ciąży
-nie był na macierzyńskim
-nie pobiera świadczeń na dziecko (800+ itp)
-nie korzysta z opieki nad chorym dzieckiem
źródło: temp_file1429150910024872164
Pobierz
Mjut93 +89





I nie za bardzo ogarniam co jest zwracane tutaj
function sharedDNA(person, fromMother, fromFather) {
if (person.name == "Pauwels van Haverbeke")
return 1;
else
return (fromMother + fromFather) / 2;
}
To dalej leci do valueFor, i tam jest pobierana matka i ojciec. Tylko, że matka i ojciec to imię i nazwisko, więc nie rozumiem co tu jest dodawane i dzielone. Co zwraca ten return?
http://eloquentjavascript.net/05_higher_order.html w "Great-great-great-great-..."
#naukaprogramowania #javascript #eloquentjavascript
reduceAncestors przy pomocy valueFor, dzięki rekurencji tworzy drzewo wywołań funkcji sharedDNA (dla każdej osoby spokrewnionej z osobą z wywołania valueFor(person) w reduceAncestors. Czyli:
sharedDNA(byName["Philibert Haverbeke"], sharedDNA(byName["Emma de Milliano"]....
Przy wykonywaniu ("zwijaniu drzewa") tych wywołań sharedDNA przekazuje "sam sobie" albo 1 albo tę średnią z poprzednich wywołań.
Bo to chyba leci tak (nie zwracaj uwagi na klamry itp. bo pogubiłem kopiując)
sharedDNA(person, valueFor("Emma de Milliano") {
if (person == null)
Po drugie najpierw tworzysz drzewo wywołań od góry w dół, następnie "zwijasz" je wywołując te funkcje. sharedDNA w parametrach fromMother i fromFather będzie miało wynik "niższych" wywołań sharedDNA itd. Spróbuj to sobie rozrysować.
https://blog.jayway.com/2011/03/20/the-substitution-model-a-tool-for-understanding-recursion/