-
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
- 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??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
- Ada 2022 Language Reference Manual to be Published by Springer
Najnowsze wątki
- 2024-11-08 Belka
- 2024-11-09 pierdolec na punkcie psa
- 2024-11-09 Warszawa => Sales Executive <=
- 2024-11-09 Wrocław => SAP BTP Consultant (mid/senior) <=
- 2024-11-09 Warszawa => ECM Specialist / Consultant <=
- 2024-11-09 Warszawa => Senior Frontend Developer (React + React Native) <=
- 2024-11-10 TVN donosi: Obywatelskie zatrzymanie policjanta (nie na służbie)
- 2024-11-08 Warszawa => Head of International Freight Forwarding Department <=
- 2024-11-08 Warszawa => Key Account Manager <=
- 2024-11-08 Szczecin => Key Account Manager (ERP) <=
- 2024-11-08 Białystok => Full Stack web developer (obszar .Net Core, Angular6+) <
- 2024-11-08 Wrocław => Senior PHP Symfony Developer <=
- 2024-11-08 Warszawa => QA Engineer <=
- 2024-11-08 Warszawa => QA Inżynier <=
- 2024-11-08 Warszawa => Key Account Manager <=