eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming[Haskell] branie od tyłu ;)Re: branie od tyłu ;)
  • Data: 2009-09-20 21:35:23
    Temat: Re: branie od tyłu ;)
    Od: "Marcin 'Qrczak' Kowalczyk" <q...@k...org.pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    On Sep 20, 7:29 pm, Michal <n...@d...com> wrote:
    > Czy jest w haskellu jakis wzorzec(pattern) na wziecie ostatniego
    > elementu z listy oraz doklejanie elementu do tylu listy. Chodzi mi o
    > konstrukcje analogiczne do (x:xs) np. w wyrazeniu
    >
    > fun (x:xs) = x:5:xs

    Nie. Reprezentacja listy jest asymetryczna. Gdyby nie lukier
    składniowy, to definicja typu listowego wyglądałaby tak:
    data List a = Nil | Cons a (List a)
    i jedyną metodą dostania się do ostatniego elementu jest
    przeiterowanie po liście.

    > Czy jest rowniez jakas operacja bioraca n-ty element z listy w czasie O
    > (1)?

    Nie. Jeśli potrzebujesz dostępu do dalszych elementów w czasie stałym,
    to zamiast listy trzeba użyć czegoś innego, np. typu Array albo
    którejś z imperatywnych wersji tablic (STArray, IOArray).

    Często można obyć się bez potrzeby dostępu do dalszych elementów w
    czasie stałym. Na przykład kolejkę można zrobić z dwóch list: logiczna
    zawartość kolejki to pierwsza lista skonkatenowana z odwróconą drugą.
    Operacje mają amortyzowany koszt stały.

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

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: