eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingjak zmusić funkcję rekurencyjną bo bycia ogonową (F#)Re: jak zmusić funkcję rekurencyjną do bycia ogonową (F# byćmoże i OCaml)
  • Data: 2011-02-11 15:22:26
    Temat: Re: jak zmusić funkcję rekurencyjną do bycia ogonową (F# byćmoże i OCaml)
    Od: Andrzej Jarzabek <a...@g...com> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    On Feb 11, 10:39 am, Jakub Owczarski <j...@g...com>
    wrote:
    > On Feb 11, 10:15 am, Andrzej Jarzabek <a...@g...com>
    > wrote:
    >
    > Wiem, że to jest zwykła rekurencja, i bardzo chciałbym zobaczyć jak da
    > się to przerobić, żeby była ogonowa :)
    >
    > Wiem, że F# nie jest jakiś super popularny, ale może ktoś zna OCamla,
    > podobno są bardzo zbliżone.

    Nie znam też zbytnio OCamla, więc nie bij jak coś jest nie tak ze
    składnią, ale intencja mam nadzieję będzie czytelna:
    let insertSort l =
    let rec iter_sort sorted unsorted =
    let rec insert lst_less elem lst_rest =
    match lst_rest with
    | [] -> lst_less:elem
    | head::tail -> if head<elem then
    insert lst_less:head elem tail
    else lst_less::elem::lst_rest
    match unsorted with
    | [] -> sorted
    | head::tail iter_sort (insert [] head sorted) tail
    iter_sort [] l

    Ogólnie jeśli chodzi o tego typu problemy problemy, to przeczytaj
    http://mitpress.mit.edu/sicp/full-text/book/book-Z-H
    -11.html#%_sec_1.2.1

    W ogóle polecam całą tę książkę jak się chce nauczyć technik
    programowania funkcyjnego.

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: