-
Data: 2011-02-11 10:15:07
Temat: Re: jak zmusić funkcję rekurencyjną bo bycia ogonową (F#)
Od: Andrzej Jarzabek <a...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On Feb 10, 8:10 pm, Jakub Owczarski <j...@g...com> wrote:
> Witam.
> Próbuję zrozumieć rekurencję ogonową.
> Kiedy patrzę na najprostsze przykłady (z użyciem akumulatora), to niby
> to rozumiem, ale kiedy próbuję z funkcją troszkę bardziej
> skomplikowaną niż silnia to wymiękam.
> Konkretnie wymiękłem na takiej prostej implementacji insert sorta, czy
> da się to zmusić do bycia tail-recursive?
> Gdyby ktoś zechciał mi to jakoś opisowo wytłumaczyć na tym przykładzie
> to będę bardzo wdzięczny
>
> let rec insertSort l =
> let rec insert elem lst =
> match lst with
> | [] -> [elem]
> | head::tail -> if elem < head then elem::head::tail else
> head::(insert elem tail)
> match l with
> | [] -> []
> | f::r -> insert f <| insertSort r
Nie znam F# więc może źle to odczytuję, ale wygląda, jakbyś
przekazywał wynik rekurencyjnie wywoływanego insertSort jako argument
- czy się mylę? Jeśli tak, to to nie jest rekurencja ogonowa, tylko
zwykła rekurencja.
Następne wpisy z tego wątku
- 11.02.11 10:39 Jakub Owczarski
- 11.02.11 15:22 Andrzej Jarzabek
Najnowsze wątki z tej grupy
- Alg. kompresji LZW
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
Najnowsze wątki
- 2025-02-19 Żerniki => Dyspozytor Międzynarodowy <=
- 2025-02-19 Łódź => NodeJS Developer <=
- 2025-02-19 Wow...
- 2025-02-17 EPS12V
- 2025-02-18 Kraków => Spedytor Międzynarodowy <=
- 2025-02-18 Policja nie może się dowiedzieć komu administrator wynajmowal garaż.
- 2025-02-18 Bursztyn się znalazł
- 2025-02-18 Ruski samolot z turystami nielegalnie internowany po awaryjnym lądowaniu w Poznaniu. Czemu o tym nic nie piszecie pieniacze?!?
- 2025-02-18 Obcokrajowcy w bankach
- 2025-02-17 Kraków => MS Dynamics 365BC/NAV Developer <=
- 2025-02-17 Chrzanów => Programista NodeJS <=
- 2025-02-17 Warszawa => Node.js / Fullstack Developer <=
- 2025-02-17 Białystok => System Architect (Java background) <=
- 2025-02-17 Białystok => Solution Architect (Java background) <=
- 2025-02-17 Gliwice => Team Lead / Tribe Lead FrontEnd <=