-
1. Data: 2009-09-20 17:29:22
Temat: [Haskell] branie od tyłu ;)
Od: Michal <n...@d...com>
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
Czy jest rowniez jakas operacja bioraca n-ty element z listy w czasie O
(1)?
--
-
2. Data: 2009-09-20 21:35:23
Temat: Re: branie od tyłu ;)
Od: "Marcin 'Qrczak' Kowalczyk" <q...@k...org.pl>
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.
-
3. Data: 2009-09-21 16:02:56
Temat: Re: branie od tyłu ;)
Od: Michal <n...@d...com>
On Sun, 20 Sep 2009 14:35:23 -0700 (PDT)
"Marcin 'Qrczak' Kowalczyk" <q...@k...org.pl> wrote:
> > 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).
a moze wiesz czym kierowali sie tworcy nie udostepniajac tej operacji?
Rozumiem, ze elementy listy sa czesto obliczane w sposob leniwy ale to
chyba nie jest wielka przeszkoda, jezeli lista ma stkonczony rozmiar i
jest znana w czasie kompilacji np.: a = [1, 2, 3]
--
-
4. Data: 2009-09-21 17:42:21
Temat: Re: branie od tyłu ;)
Od: "Mariusz Marszałkowski" <b...@g...SKASUJ-TO.pl>
Michal <n...@d...com> napisał(a):
> On Sun, 20 Sep 2009 14:35:23 -0700 (PDT)
> "Marcin 'Qrczak' Kowalczyk" <q...@k...org.pl> wrote:
>
> > > Czy jest rowniez jakas operacja bioraca n-ty element z listy w czasie O
> > > (1)?
> >=20
> > Nie. Je=B6li potrzebujesz dost=EApu do dalszych element=F3w w czasie sta=
> =B3ym,
> > to zamiast listy trzeba u=BFy=E6 czego=B6 innego, np. typu Array albo
> > kt=F3rej=B6 z imperatywnych wersji tablic (STArray, IOArray).
>
> a moze wiesz czym kierowali sie tworcy nie udostepniajac tej operacji?
> Rozumiem, ze elementy listy sa czesto obliczane w sposob leniwy ale to
> chyba nie jest wielka przeszkoda, jezeli lista ma stkonczony rozmiar i
> jest znana w czasie kompilacji np.: a =3D [1, 2, 3]
Do jakich zadan najlepiej nadaje sie ten jezyk?
Pozdrawiam
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
-
5. Data: 2009-09-21 18:13:05
Temat: Re: branie od tyłu ;)
Od: A.L. <a...@a...com>
On Mon, 21 Sep 2009 17:42:21 +0000 (UTC), "Mariusz Marszałkowski"
<b...@g...SKASUJ-TO.pl> wrote:
>Michal <n...@d...com> napisał(a):
>
>> On Sun, 20 Sep 2009 14:35:23 -0700 (PDT)
>> "Marcin 'Qrczak' Kowalczyk" <q...@k...org.pl> wrote:
>>
>> > > Czy jest rowniez jakas operacja bioraca n-ty element z listy w czasie O
>> > > (1)?
>> >=20
>> > Nie. Je=B6li potrzebujesz dost=EApu do dalszych element=F3w w czasie sta=
>> =B3ym,
>> > to zamiast listy trzeba u=BFy=E6 czego=B6 innego, np. typu Array albo
>> > kt=F3rej=B6 z imperatywnych wersji tablic (STArray, IOArray).
>>
>> a moze wiesz czym kierowali sie tworcy nie udostepniajac tej operacji?
>> Rozumiem, ze elementy listy sa czesto obliczane w sposob leniwy ale to
>> chyba nie jest wielka przeszkoda, jezeli lista ma stkonczony rozmiar i
>> jest znana w czasie kompilacji np.: a =3D [1, 2, 3]
>
>Do jakich zadan najlepiej nadaje sie ten jezyk?
>
Do wszystkich
A.L.
-
6. Data: 2009-09-21 18:25:08
Temat: Re: branie od tyłu ;)
Od: Michal <n...@d...com>
On Mon, 21 Sep 2009 17:42:21 +0000 (UTC)
"Mariusz Marszałkowski" <b...@g...SKASUJ-TO.pl> wrote:
>
> Do jakich zadan najlepiej nadaje sie ten jezyk?
>
Jest to jezyk ogolnego przeznaczenia. Jednak zapewne, jak ze wszystkimi
narzedziami, pewne zadania realiuje sie w sposob funkcyjny prosciej niz
imperatywny i vice-versa.
-
7. Data: 2009-09-22 07:27:18
Temat: Re: branie od tyłu ;)
Od: Roman Werpachowski <r...@g...com>
On 21 Sep, 20:13, A.L. <a...@a...com> wrote:
> On Mon, 21 Sep 2009 17:42:21 +0000 (UTC), "Mariusz Marszałkowski"
>
>
>
>
>
> <b...@g...SKASUJ-TO.pl> wrote:
> >Michal <n...@d...com> napisał(a):
>
> >> On Sun, 20 Sep 2009 14:35:23 -0700 (PDT)
> >> "Marcin 'Qrczak' Kowalczyk" <q...@k...org.pl> wrote:
>
> >> > > Czy jest rowniez jakas operacja bioraca n-ty element z listy w czasie O
> >> > > (1)?
> >> >=20
> >> > Nie. Je=B6li potrzebujesz dost=EApu do dalszych element=F3w w czasie sta=
> >> =B3ym,
> >> > to zamiast listy trzeba u=BFy=E6 czego=B6 innego, np. typu Array albo
> >> > kt=F3rej=B6 z imperatywnych wersji tablic (STArray, IOArray).
>
> >> a moze wiesz czym kierowali sie tworcy nie udostepniajac tej operacji?
> >> Rozumiem, ze elementy listy sa czesto obliczane w sposob leniwy ale to
> >> chyba nie jest wielka przeszkoda, jezeli lista ma stkonczony rozmiar i
> >> jest znana w czasie kompilacji np.: a =3D [1, 2, 3]
>
> >Do jakich zadan najlepiej nadaje sie ten jezyk?
>
> Do wszystkich
>
W praktyce mało kto go używa, więc głównie do marnowania czasu i
tworzenia publikacji naukowych.
RW
-
8. Data: 2009-09-22 07:58:24
Temat: Re: branie od tyłu ;)
Od: Krzysiek Kowaliczek <k...@g...com>
Użytkownik Michal napisał:
> On Sun, 20 Sep 2009 14:35:23 -0700 (PDT)
> "Marcin 'Qrczak' Kowalczyk" <q...@k...org.pl> wrote:
>
>>> Czy jest rowniez jakas operacja bioraca n-ty element z listy w czasie O
>>> (1)?
> a moze wiesz czym kierowali sie tworcy nie udostepniajac tej operacji?
> Rozumiem, ze elementy listy sa czesto obliczane w sposob leniwy ale to
> chyba nie jest wielka przeszkoda, jezeli lista ma stkonczony rozmiar i
> jest znana w czasie kompilacji np.: a = [1, 2, 3]
W jakim to języku masz listę o dostępie O(1)?
Pozdrawiam
KK
-
9. Data: 2009-09-22 08:01:36
Temat: Re: branie od tyłu ;)
Od: Krzysiek Kowaliczek <k...@g...com>
Użytkownik Roman Werpachowski napisał:
>
> W praktyce mało kto go używa, więc głównie do marnowania czasu i
> tworzenia publikacji naukowych.
Uczenie się nowych rzeczy *nie jest stratą czasu*.
Pozdrawiam
KK
-
10. Data: 2009-09-22 11:19:55
Temat: Re: branie od tyłu ;)
Od: Roman Werpachowski <r...@g...com>
On Sep 22, 10:01 am, Krzysiek Kowaliczek
<k...@g...com> wrote:
> Użytkownik Roman Werpachowski napisał:
>
>
>
> > W praktyce mało kto go używa, więc głównie do marnowania czasu i
> > tworzenia publikacji naukowych.
>
> Uczenie się nowych rzeczy *nie jest stratą czasu*.
OK, to jest również używany do uczenia się Haskella.
RW