Diskuze: Nepřímá rekurze - dvě funkce se navzájem využívají
Tvůrce
Zobrazeno 8 zpráv z 8.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
Ne, problém je hlavně v tom, že každá rekurze musí mít nějakou
ukončující podmínku. Kde ji máš ty?
Tvoje funkce vrací ke všemu ještě dvě různé hodnoty: Tu záhadu, co
vracíš, když splníš podmínku, a pak nic, pokud podmínku nesplníš.
použij konstrukci return neco if podmínka else neco_jiného.
>>> def todle(vstup, cislo):
if cislo > 0:
return tamto(vstup, cislo - 1) + "todle, "
else:
return vstup
>>> def tamto(vstup, cislo):
if cislo > 0:
return todle(vstup, cislo - 1) + "tamto, "
else:
return vstup
Funguje to. Tiše se stydím. Příště se radši se zamyslím, než sem něco napíšu
Jo a díky za konstrukci, kterou jsem dosud neviděl, je to elegantní
Kdo se nezeptá, nic se nedozví
Tady si můžeš přečíst, v čem jsou výhody té konstrukce té běžné, kterou jsi použil ty. Pokud nebudu počítat, že vynecháš jeden return:
http://fsharpforfunandprofit.com/…-statements/
Pokud budeš číst ten článek pozorně, zjistíš, proč by se ti tohle nikdy nestalo, kdybys použil tu konstrukci, co ti radím
"todle" "tamto"?
Nechceš se naučit Ostrou javu?
https://github.com/…ut/OSTRAJava
Zobrazeno 8 zpráv z 8.